[jboss-svn-commits] JBL Code SVN: r17751 - in labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm: cmd and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jan 11 16:08:55 EST 2008
Author: kevin.conner at jboss.com
Date: 2008-01-11 16:08:55 -0500 (Fri, 11 Jan 2008)
New Revision: 17751
Modified:
labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java
labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommand.java
Log:
Fix callback variable name and instance/task validation: JBESB-1443, JBESB-1466
Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java 2008-01-11 20:52:44 UTC (rev 17750)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java 2008-01-11 21:08:55 UTC (rev 17751)
@@ -148,7 +148,8 @@
if (globalProcessScope!=null) {
portReference.addExtension(Constants.PROCESS_SCOPE_ATTR, globalProcessScope.toString());
}
- portReference.addExtension(Constants.TOKEN_ID, String.valueOf(executionContext.getToken().getId()));
+ final long tokenId = executionContext.getToken().getId();
+ portReference.addExtension(Constants.TOKEN_ID, String.valueOf(tokenId));
String nodeId = "";
if (executionContext.getNode()!=null) {
nodeId = String.valueOf(executionContext.getNode().getId());
@@ -157,7 +158,7 @@
}
portReference.addExtension(Constants.PROCESS_INSTANCE_ID, String.valueOf(executionContext.getProcessInstance().getId()));
- String counterName = Constants.PROCESS_NODE_VERSION_COUNTER + nodeId;
+ String counterName = Constants.PROCESS_NODE_VERSION_COUNTER + nodeId + '_' + tokenId;
Long counter = Long.getLong(String.valueOf(executionContext.getVariable(counterName)));
if (counter!=null) {
counter = counter + 1;
Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommand.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommand.java 2008-01-11 20:52:44 UTC (rev 17750)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommand.java 2008-01-11 21:08:55 UTC (rev 17751)
@@ -74,45 +74,39 @@
long nodeId = Long.parseLong(callbackEpr.getAddr().getExtensionValue(Constants.NODE_ID));
long tokenId = Long.parseLong(callbackEpr.getAddr().getExtensionValue(Constants.TOKEN_ID));
long processInstanceId = Long.parseLong(callbackEpr.getAddr().getExtensionValue(Constants.PROCESS_INSTANCE_ID));
- String counterName = Constants.PROCESS_NODE_VERSION_COUNTER + nodeId;
+ String counterName = Constants.PROCESS_NODE_VERSION_COUNTER + nodeId + '_' + tokenId;
long processNodeVersion = Long.parseLong(callbackEpr.getAddr().getExtensionValue(counterName));
if (logger.isDebugEnabled()) logger.debug("Expected nodeId=" + nodeId +
", tokenId=" + tokenId + ", processNodeVersion=" + processNodeVersion);
//get update on current state of things.
ProcessInstance instance = jbpmContext.getProcessInstance(processInstanceId);
- Long currentTokenId = null;
- Long currentNodeId = null;
+ if (instance == null) {
+ throw new CallbackException("Process instance " + processInstanceId + " is no longer active") ;
+ }
List tokens = instance.findAllTokens();
+ boolean discovered = false ;
for (Object object : tokens) {
Token token = (Token) object;
if (token.getId()==tokenId) {
- currentTokenId = token.getId();
- currentNodeId = token.getNode().getId();
+ if (nodeId != token.getNode().getId()) {
+ throw new CallbackException("Token id " + tokenId + " from process instance " + processInstanceId + " is no longer on expected node") ;
+ }
+ discovered = true ;
break;
}
}
- //Compare current with expected
- StringBuilder unExpected = new StringBuilder();
- if (nodeId!=currentNodeId) {
- unExpected.append("A timeout occured or something else signaled the node, " + currentNodeId +
- "causing it to move away from the expected node with id= ").append(nodeId).append(". ");
+ if (!discovered) {
+ throw new CallbackException("Token id " + tokenId + " from process instance " + processInstanceId + " is no longer active") ;
}
- if (tokenId!=currentTokenId) {
- unExpected.append("The process is at the expected Node, but the current Token (id=" + currentTokenId +
- ") is not the expected Token (").append(tokenId).append("), ");
- }
- if (logger.isDebugEnabled()) logger.debug("Current state nodeId=" + currentNodeId);
+ //Compare current with expected
//get the current processNode Version
Long currentProcessNodeVersion = Long.parseLong(String.valueOf(
instance.getContextInstance().getVariable(counterName)));
if (logger.isDebugEnabled()) logger.debug("ProcessNodeVersion=" + currentProcessNodeVersion);
if (processNodeVersion!=currentProcessNodeVersion) {
- unExpected.append("The current processNodeVersion (id=" + currentProcessNodeVersion +
- ") is not the expected version (version=").append(processNodeVersion).append("). ");
+ throw new CallbackException("The current processNodeVersion (id=" + currentProcessNodeVersion +
+ ") is not the expected version (version=" + processNodeVersion + ").");
}
- if (!"".equals(unExpected.toString())) {
- throw new CallbackException(unExpected.toString());
- }
return tokenId;
}
More information about the jboss-svn-commits
mailing list