Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.3.6
-
Win7x64, Java 1.8.0_111, Tomcat 7.0.73
Description
Compensation doesn't work appropriately, there is no guarantee that it will be processed on execution. It doesn't matter which BPEL version is used either 1.1 or 2.0 and which method is used to provide the compensation (either "compensate" or "compensateScope").
If there are several scopes to compensate the most big chance to work out its compensation handler has the last scope - it fails rarely but scopes defined prior to the last scope have much bigger chances to fail. When compensation fails nothing is seen in the log, it just doesn't work.
Attaching the FlightReservationProcess application to reproduce the bug.
Specify "all" in the input to execute compensation for all scopes, call it many times and check how scopes are compensated. Each result 4, 5, 6 must contain "1" if the corresponding scope "car", "hotel" , "asbstract" has been compensated. But in reality the most big probability "abstract" scope has to include "1", it fails having the "0" pretty rarely. But other scopes "car" and "hotel" fail oftenly, only in rare cases they contain "1" as being compensated. You can also play including "car", "hotel", "abs" instead of all to compensate only specified scopes. E.g. use "car hotel" in the input to compensate these 2 scopes only.