Broadleaf 4.0.9-GA
Released on March 4, 2016
This is the 9th patch release for the Broadleaf Commerce 4.0 framework.
Noteworthy Updates
Ignore all system-generated archived filters when attempting to detect sequence generator corruption
A fix has been made to the SequenceGeneratorCorruptionDetection process to make sure that any archived (archived = "Y") rows were considered when reassessing the max value for a given sequence generated table.
Rule-based evaluation does not work with various attribute maps
MVEL expressions were not correctly evaluating to true when assessing CustomFields. This fix corrects the MVEL expression generated by the RuleBuilders when using CustomFields.
Update Spring to the latest 4.1.9.RELEASE version
The version of Spring used by Broadleaf Commerce has been updated from 4.0.8.RELEASE to 4.0.9.RELEASE
Ensure that rollback handlers from a nested workflow do not trigger rollback handlers in the parent
Rollback handlers are now executed in a specific order of operation. For example, if you have a workflow like this:
- blParentWorkflow
- Activity1
- register RollbackHandler1
- Activity2
- register RollbackHandler2
- Activity3
- blChildWorkflow.execute()
- ActivityA
- RollbackHandlerA
- ActivityB
- throw new RuntimeException()
- ActivityA
- Register RollbackHandler3 with some state gleaned from the exception in the executed workflow and rethrow an exception triggering the rollback handler
- blChildWorkflow.execute()
- Activity1
ActivityB within the child workflow threw the exception. This is the incorrect order of operations that happen in previous releases:
- RollbackHandlerA.rollbackState()
- RollbackHandler2.rollbackState()
- RollbackHandler1.rollbackState()
- blChildWorkflow.handleError()
- blParentWorkflow.handleError()
Note that the blChildWorkflow.handleError() is executed after RollbackHandler2 and RollbackHandler1 are executed. Also notice that RollbackHandler3 was never registered since it occurred after all of the rollback happened and the rollback state was null out (which happens in a finally block after the execution of the blChildWorkflow)
This is how it should behave instead, which is not the order of operations with this release:
- RollbackHandlerA.rollbackState()
- blChildWorkflow.handleError()
- RollbackHandler3.rollbackState()
- RollbackHandler2.rollbackState()
- RollbackHandler1.rollbackState()
- blParentWorkflow.handleError()
An at-a-glance view of the issues that were closed in this release:
Critical Bugs(1)
- Update Spring to the latest 4.1.9.RELEASE version
Major Bugs(3)
- Rule-based evaluation does not work with various attribute maps
- Ensure that rollback handlers from a nested workflow do not trigger rollback handlers in the parent
- Fix usage of Generated Url separator
Minor Bugs(7)
- Ignore all system-generated archived filters when attempting to detect sequence generator corruption
- Prevent Hibernate exception from showing up when sorting by parent category
- Prevent a requirement to scroll up after searching on a list grid
- Added method to retrieve assigned product option values on a product
- In the admin Do not display the property value twice with an additional link for ToOneLookups in main entity grids if it the property is already the main entity link
- Conditionally weave in ArchiveStatus into Customer
- Fixed NPE when extending Offer domain entity
Features(1)
- Allow the admin to run separate from any other Broadleaf deependencies
Enhancements(3)
- Allow indexed Solr fields to exist anywhere in the class hierarchy of Product
- Read all of the Translations upfront for each page when rebuilding the Solr index
- Allow item qualifiers for fulfillment groups to exist within other fulfillment groups
Total Resolved Issues: 15