[jbpm-commits] JBoss JBPM SVN: r6366 - in jbpm4/trunk/modules: test-db/src/test/java/org/jbpm/test/migration and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri May 21 02:03:10 EDT 2010


Author: rebody
Date: 2010-05-21 02:03:10 -0400 (Fri, 21 May 2010)
New Revision: 6366

Modified:
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/InstanceMigrator.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/migration/InstanceMigratorTest.java
Log:
JBPM-2677 when there is no process definition for migration, we will meet a IndexOutOfBoundsException

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/InstanceMigrator.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/InstanceMigrator.java	2010-05-21 03:26:59 UTC (rev 6365)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/migration/InstanceMigrator.java	2010-05-21 06:03:10 UTC (rev 6366)
@@ -100,7 +100,9 @@
         .list();
     int startIndex = calculateStartIndex(processDefinitions.size() - 1, migrationDescriptor);
     int endIndex = calculateEndIndex(processDefinitions.size() - 1, migrationDescriptor);
-    if (startIndex > endIndex) startIndex = endIndex;
+    if (startIndex > endIndex || startIndex < 0) {
+      startIndex = endIndex;
+    }
     return processDefinitions.subList(startIndex, endIndex);
   }
   

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/migration/InstanceMigratorTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/migration/InstanceMigratorTest.java	2010-05-21 03:26:59 UTC (rev 6365)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/migration/InstanceMigratorTest.java	2010-05-21 06:03:10 UTC (rev 6366)
@@ -240,8 +240,12 @@
     }
     return result;
   }
-    
 
+  public void testNoProcessInstanceForMigration() {
+    ProcessDefinition pd2 = deployProcessDefinition("foobar", versionWithWildcardVersionRange);
+    repositoryService.deleteDeploymentCascade(pd2.getDeploymentId());
+  }
+
   public void testNoMigration() {    
     ProcessDefinition pd1 = deployProcessDefinition("foobar", originalVersion);
     ProcessInstance pi1 = startAndSignal(pd1, "a");



More information about the jbpm-commits mailing list