Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-2091

CommandIdUniquenessTest fails when running the test suite with private maven repo that contains "infinispan" in its name

    XMLWordPrintable

Details

    • Bug
    • Resolution: Obsolete
    • Minor
    • None
    • 5.1.5.FINAL
    • Test Suite
    • Workaround Exists
    • Hide

      Do not place your private maven repo in a folder containing "infinispan" anywhere in its absolute path.

      Show
      Do not place your private maven repo in a folder containing "infinispan" anywhere in its absolute path.

    Description

      I recently tried to run the test suite with private maven repo and it failed with

      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)
      

      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/edg-60-infinispan-testsuite-rhel/jdk=java16_default,label=RHEL5_x86_64/ws/private-maven-repo 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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            mgencur Martin Gencur
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: