Sorry for the false alarm. Closer inspection of the text file I now see
that the throw is outside the looped scope.
Bill McCusker wrote:
From inspecting the bpel process the reason not all scopes are
compensated when the throw is inside the while loops is because an
exception is now being thrown from inside a scope intended to be
compensated. According to section 12.4.3 in the BPEL 2.0 specification
a compensation handler is only available when a scope completes
successfully. This is why moving the throw out of the loops results in
expected compensation since all of scopes now complete successfully.
Bill McCusker