]
Tristan Tarrant closed ISPN-2091.
---------------------------------
Resolution: Out of Date
CommandIdUniquenessTest fails when running the test suite with
private maven repo that contains "infinispan" in its name
------------------------------------------------------------------------------------------------------------------------
Key: ISPN-2091
URL:
https://issues.jboss.org/browse/ISPN-2091
Project: Infinispan
Issue Type: Bug
Components: Test Suite - Core
Affects Versions: 5.1.5.FINAL
Reporter: Martin Gencur
Priority: Minor
Labels: testsuite_stability
I recently tried to run the test suite with private maven repo and it failed with
{code}
WARN [ClassFinder] (testng-CommandIdUniquenessTest) From jar path
javax/transaction/RollbackException.class could not load class null
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1931)
at org.infinispan.util.ClassFinder.toClassName(ClassFinder.java:194)
at org.infinispan.util.ClassFinder.findClassesOnPath(ClassFinder.java:155)
at org.infinispan.util.ClassFinder.infinispanClasses(ClassFinder.java:112)
at org.infinispan.util.ClassFinder.infinispanClasses(ClassFinder.java:94)
at org.infinispan.util.ClassFinder.isAssignableFrom(ClassFinder.java:90)
at
org.infinispan.commands.CommandIdUniquenessTest.testCommandIdUniqueness(CommandIdUniquenessTest.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:74)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:673)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:846)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1170)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.runWorkers(TestRunner.java:1147)
at org.testng.TestRunner.privateRun(TestRunner.java:749)
at org.testng.TestRunner.run(TestRunner.java:600)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
at org.testng.SuiteRunner.access$000(SuiteRunner.java:34)
at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:351)
at
org.testng.internal.thread.ThreadUtil$CountDownLatchedRunnable.run(ThreadUtil.java:147)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
{code}
After few hours I figured out the cause. I had the private repo located in
https://hudson.qa.jboss.com/hudson/view/EDG6/view/EDG-REPORTS-FUNC/job/ed...
and the ClassFinder class was trying to parse all jars that contained
"infinispan" in its name. The method toClassName then tried to find last index
of "org" which was not there for some libraries in the private repo.
As a results, I cannot have a jenkins job (or my private repo) that contains
"infinispan" in its name. I think this parsing could be done better.