PersistenceManager.java edited online with Bitbucket
parent
18c251ca18
commit
63f2053579
|
@ -192,12 +192,33 @@ public class PersistenceManager {
|
||||||
specificUpdateStateForStartElement(rObjs, (RStartElement) activity, txInfo, state);
|
specificUpdateStateForStartElement(rObjs, (RStartElement) activity, txInfo, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateState(ReceiveUnitImpl unit, RequiredObjects rObjs, TransactionInfo txInfo, MutableState state, long branchInvokeCounter, String messageExchangeId) {
|
||||||
|
RActivity activity = unit.getStaticModelActivity();
|
||||||
|
state.updatePCWithBranchInvokeCounter(unit.getBranchId(), activity.getUniqueId(), branchInvokeCounter);
|
||||||
|
|
||||||
|
String crmpInvId = (String) rObjs.removeValue(RequiredObjects.CRMP_INVOKE_ID);
|
||||||
|
if (crmpInvId != null) {
|
||||||
|
RStartElement startElement = (RStartElement)activity;
|
||||||
|
|
||||||
|
String partnerLink = startElement.getRPartner().getName();
|
||||||
|
String operation = ((OperationReference) startElement).getOperation();
|
||||||
|
|
||||||
|
state.updateCRMPState(crmpInvId, partnerLink, operation, messageExchangeId);
|
||||||
|
}
|
||||||
|
|
||||||
|
StateManager mgr = mEng.getStateManager();
|
||||||
|
mgr.persistState((State) state, txInfo, mBPInstance);
|
||||||
|
}
|
||||||
|
|
||||||
private void specificUpdateStateForStartElement(RequiredObjects rObjs, RStartElement startElement,
|
private void specificUpdateStateForStartElement(RequiredObjects rObjs, RStartElement startElement,
|
||||||
TransactionInfo txInfo, MutableState state) {
|
TransactionInfo txInfo, MutableState state) {
|
||||||
String crmpInvId = (String) rObjs.removeValue(RequiredObjects.CRMP_INVOKE_ID);
|
String crmpInvId = (String) rObjs.removeValue(RequiredObjects.CRMP_INVOKE_ID);
|
||||||
if (crmpInvId != null) {
|
if (crmpInvId != null) {
|
||||||
String partnerLink = startElement.getRPartner().getName();
|
String partnerLink = startElement.getRPartner().getName();
|
||||||
String operation = ((OperationReference) startElement).getOperation();
|
String operation = ((OperationReference) startElement).getOperation();
|
||||||
|
//TODO: (BB) It seems that next line contains error, because startElement is a class of bpelmodel project,
|
||||||
|
//which contains setMessageExchange method but doesn't provide it through any interfaces and never uses (Make "find usages" setMessageExchange of com.sun.bpel.model.impl.* classes).
|
||||||
|
//so, the messageExchange will be null in any case. Please see where is a bug.
|
||||||
String bpelMesgExchange = startElement.getMessageExchange();
|
String bpelMesgExchange = startElement.getMessageExchange();
|
||||||
|
|
||||||
state.updateCRMPState(crmpInvId, partnerLink, operation, bpelMesgExchange);
|
state.updateCRMPState(crmpInvId, partnerLink, operation, bpelMesgExchange);
|
||||||
|
|
Loading…
Reference in New Issue