[jbpm-commits] JBoss JBPM SVN: r4766 - in jbpm3/branches/jbpm-3.2.5.SP/modules/core/src: test/java/org/jbpm/optimisticlocking and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu May 7 17:19:13 EDT 2009
Author: alex.guizar at jboss.com
Date: 2009-05-07 17:19:13 -0400 (Thu, 07 May 2009)
New Revision: 4766
Modified:
jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/main/java/org/jbpm/instantiation/ProcessClassLoader.java
jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/optimisticlocking/LockingTest.java
Log:
[JBPM-2202] do not assume that process definition reference is always present in process class loader
Modified: jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/main/java/org/jbpm/instantiation/ProcessClassLoader.java
===================================================================
--- jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/main/java/org/jbpm/instantiation/ProcessClassLoader.java 2009-05-07 20:20:07 UTC (rev 4765)
+++ jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/main/java/org/jbpm/instantiation/ProcessClassLoader.java 2009-05-07 21:19:13 UTC (rev 4766)
@@ -130,7 +130,8 @@
}
public Class findClass(String className) throws ClassNotFoundException {
- FileDefinition fileDefinition = getProcessDefinition().getFileDefinition();
+ ProcessDefinition processDefinition = getProcessDefinition();
+ FileDefinition fileDefinition = processDefinition.getFileDefinition();
if (fileDefinition != null) {
String fileName = "classes/" + className.replace('.', '/') + ".class";
byte[] classBytes = fileDefinition.getBytes(fileName);
@@ -144,7 +145,11 @@
String packageName = className.substring(0, packageIndex);
if (getPackage(packageName) == null) {
- definePackage(packageName, null, null, null, processDefinition.getName(), Integer.toString(processDefinition.getVersion()), null, null);
+ Package jbpmPackage = ProcessClassLoader.class.getPackage();
+ definePackage(packageName, processDefinition.getName(),
+ Integer.toString(processDefinition.getVersion()), null,
+ jbpmPackage.getImplementationTitle(), jbpmPackage.getImplementationVersion(),
+ jbpmPackage.getImplementationVersion(), null);
}
}
return defineClass(className, classBytes, 0, classBytes.length);
Modified: jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/optimisticlocking/LockingTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/optimisticlocking/LockingTest.java 2009-05-07 20:20:07 UTC (rev 4765)
+++ jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/optimisticlocking/LockingTest.java 2009-05-07 21:19:13 UTC (rev 4766)
@@ -4,14 +4,14 @@
import java.util.Iterator;
import java.util.List;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
import org.jbpm.JbpmContext;
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.Comment;
import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.persistence.JbpmPersistenceException;
-import org.jbpm.persistence.db.DbPersistenceService;
-import org.jbpm.persistence.db.StaleObjectLogConfigurer;
import org.jbpm.util.Semaphore;
/**
@@ -127,35 +127,30 @@
// after a thread is released (=notified), it will try to load the process instance,
// signal it and then commit the transaction
- JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
+ JbpmContext jbpmContext = getJbpmConfiguration().createJbpmContext();
try {
ProcessInstance processInstance = jbpmContext.loadProcessInstance(processInstanceId);
processInstance.signal();
jbpmContext.save(processInstance);
- // add a comment in the same transaction so that we can see which thread won
+ // add a comment to see which thread won
Comment comment = new Comment(getName() + " committed");
jbpmContext.getSession().save(comment);
}
catch (RuntimeException e) {
jbpmContext.setRollbackOnly();
- throw e;
+ log.debug(getName() + " rolled back", e);
}
finally {
try {
jbpmContext.close();
}
- catch (JbpmPersistenceException e) {
- // if this is a stale object exception, keep it quiet
- if (DbPersistenceService.isStaleStateException(e)) {
- StaleObjectLogConfigurer.getStaleObjectExceptionsLog()
- .error(getName() + " rolled back");
- }
- else {
- throw e;
- }
+ catch (RuntimeException e) {
+ log.debug(getName() + " failed to close its jbpm context", e);
}
}
}
}
+
+ private static final Log log = LogFactory.getLog(LockingTest.class);
}
More information about the jbpm-commits
mailing list