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");
Show replies by date