Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-2831

hudson.remoting.Which makes protocol assumptions, incompatible w/ JBossAS 5.0.0.GA

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • core
    • None
    • Platform: All, OS: All

      The following:

      public static File jarFile(Class clazz) throws IOException {
      URL res = jarURL(clazz);
      String resURL = res.toExternalForm();
      String originalURL = resURL;
      if(resURL.startsWith("jar:"))
      return fromJarUrlToFile(resURL);
      if(resURL.startsWith("wsjar:"))
      return fromJarUrlToFile(resURL);

      if(resURL.startsWith("code-source:/"))

      { // OC4J apparently uses this. See http://www.nabble.com/Hudson-on-OC4J-tt16702113.html resURL = resURL.substring("code-source:/".length(), resURL.lastIndexOf('!')); // cut off jar: and the file name portion return new File(decode(new URL("file:/"+resURL).getPath())); }

      if(resURL.startsWith("file:")) {
      // unpackaged classes
      int n = clazz.getName().split("
      .").length; // how many slashes do
      wo need to cut?
      for( ; n>0; n-- )

      { int idx = Math.max(resURL.lastIndexOf('/'), resURL.lastIndexOf('\\')); if(idx<0) throw new IllegalArgumentException(originalURL + " - " + resURL); resURL = resURL.substring(0,idx); }

      // won't work if res URL contains ' '
      // return new File(new URI(null,new URL(res).toExternalForm(),null));
      // won't work if res URL contains '%20'
      // return new File(new URL(res).toURI());

      return new File(decode(new URL(resURL).getPath()));
      }

      throw new IllegalArgumentException(originalURL + " - " + resURL);
      }

      ...makes assumptions about the presence of protocols used. JBossAS (and other
      projects based upon JBoss Microcontainer Virtual File System) employs a file
      abstraction layer, leading to errors such as:

      java.lang.IllegalArgumentException:
      vfszip:/home/alrubinger/business/jboss/wc/jbossas/trunk/build/output/jboss-6.0.0.Alpha1/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.274-SNAPSHOT.jar/hudson/maven/agent/Main.class
      -
      vfszip:/home/alrubinger/business/jboss/wc/jbossas/trunk/build/output/jboss-6.0.0.Alpha1/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.274-SNAPSHOT.jar/hudson/maven/agent/Main.class
      at hudson.remoting.Which.jarFile(Which.java:74)
      at hudson.maven.MavenProcessFactory.buildMavenCmdLine(MavenProcessFactory.java:261)
      at hudson.maven.MavenProcessFactory.newProcess(MavenProcessFactory.java:172)
      at hudson.maven.ProcessCache.get(ProcessCache.java:169)
      at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:328)
      at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:244)
      at hudson.model.Run.run(Run.java:831)
      at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:204)
      at hudson.model.ResourceController.execute(ResourceController.java:70)
      at hudson.model.Executor.run(Executor.java:90)

      I've set this issue to "www" subcomponent in absence of "remoting" or "main",
      please adjust as necessary.

          [JENKINS-2831] hudson.remoting.Which makes protocol assumptions, incompatible w/ JBossAS 5.0.0.GA

          alrubinger added a comment -

          An example of Ales' similar handling for Facelets, compatible w/out requiring
          VFS dependencies:

          http://anonsvn.jboss.org/repos/jbossas/projects/jboss-deployers/trunk/deployers-
          vfs/src/test/java/org/jboss/test/deployers/vfs/deployer/facelets/support/Classpath.java

          alrubinger added a comment - An example of Ales' similar handling for Facelets, compatible w/out requiring VFS dependencies: http://anonsvn.jboss.org/repos/jbossas/projects/jboss-deployers/trunk/deployers- vfs/src/test/java/org/jboss/test/deployers/vfs/deployer/facelets/support/Classpath.java

          alrubinger added a comment -

          alrubinger added a comment - Similar issue in Facelets: https://facelets.dev.java.net/issues/show_bug.cgi?id=315

          This fix is in 1.276, not 1.274.

          Kohsuke Kawaguchi added a comment - This fix is in 1.276, not 1.274.

          Code changed in hudson
          User: : kohsuke
          Path:
          trunk/hudson/main/remoting/src/main/java/hudson/remoting/Which.java
          trunk/www/changelog.html
          http://fisheye4.cenqua.com/changelog/hudson/?cs=14554
          Log:
          [FIXED JENKINS-2831] Added a handling for a jar name detection based on URLConnection. Will be in 1.274.

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : kohsuke Path: trunk/hudson/main/remoting/src/main/java/hudson/remoting/Which.java trunk/www/changelog.html http://fisheye4.cenqua.com/changelog/hudson/?cs=14554 Log: [FIXED JENKINS-2831] Added a handling for a jar name detection based on URLConnection. Will be in 1.274.

          jaikiran added a comment -

          Downloaded the latest 1.276 version. Still fails in the same "Which" class:

          started
          Updating http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/trunk
          At revision 83078
          no change for http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/trunk since
          the previous build
          Parsing POMs
          ERROR: Processing failed due to a bug in the code. Please report thus to
          users@hudson.dev.java.net
          java.lang.IllegalArgumentException:
          vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class
          -
          vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class
          at hudson.remoting.Which.jarFile(Which.java:86)
          at hudson.maven.MavenProcessFactory.buildMavenCmdLine(MavenProcessFactory.java:261)
          at hudson.maven.MavenProcessFactory.newProcess(MavenProcessFactory.java:172)
          at hudson.maven.ProcessCache.get(ProcessCache.java:169)
          at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:328)
          at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:244)
          at hudson.model.Run.run(Run.java:842)
          at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:204)
          at hudson.model.ResourceController.execute(ResourceController.java:70)
          at hudson.model.Executor.run(Executor.java:90)
          project=hudson.maven.MavenModuleSet@cdd62[EJB3 Trunk]
          project.getModules()=[hudson.maven.MavenModule@b21dcb[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-api], hudson.maven.MavenModule@1c201f6[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-as-int], hudson.maven.MavenModule@ee662[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-build], hudson.maven.MavenModule@3751ea[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-cache], hudson.maven.MavenModule@1e2e611[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-common], hudson.maven.MavenModule@16e932a[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-core], hudson.maven.MavenModule@7fe494[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-deployers], hudson.maven.MavenModule@77ba09[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-embedded], hudson.maven.MavenModule@56aa3d[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-ext-api], hudson.maven.MavenModule@1c2a8b7[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-ext-api-impl],
          hudson.maven.MavenModule@d28e76[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-injection],
          hudson.maven.MavenModule@1870011[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-installer], hudson.maven.MavenModule@15933d[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-interceptors],
          hudson.maven.MavenModule@75c13a[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-mc-int],
          hudson.maven.MavenModule@e106ac[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-metadata],
          hudson.maven.MavenModule@17d11f0[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-parent],
          hudson.maven.MavenModule@24ab81[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-plugin],
          hudson.maven.MavenModule@177d169[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-pool],
          hudson.maven.MavenModule@1557b9e[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-proxy],
          hudson.maven.MavenModule@126c5d4[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-proxy-clustered],
          hudson.maven.MavenModule@86217c[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-security],
          hudson.maven.MavenModule@93c2[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-test],
          hudson.maven.MavenModule@1e4cb82[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-transactions]]
          project.getRootModule()=hudson.maven.MavenModule@17d11f0[EJB3
          Trunk/org.jboss.ejb3:jboss-ejb3-parent]
          FATAL:
          vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class
          -
          vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class
          java.lang.IllegalArgumentException:
          vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class
          -
          vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class
          at hudson.remoting.Which.jarFile(Which.java:86)
          at hudson.maven.MavenProcessFactory.buildMavenCmdLine(MavenProcessFactory.java:261)
          at hudson.maven.MavenProcessFactory.newProcess(MavenProcessFactory.java:172)
          at hudson.maven.ProcessCache.get(ProcessCache.java:169)
          at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:328)
          at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:244)
          at hudson.model.Run.run(Run.java:842)
          at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:204)
          at hudson.model.ResourceController.execute(ResourceController.java:70)
          at hudson.model.Executor.run(Executor.java:90)

          jaikiran added a comment - Downloaded the latest 1.276 version. Still fails in the same "Which" class: started Updating http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/trunk At revision 83078 no change for http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/trunk since the previous build Parsing POMs ERROR: Processing failed due to a bug in the code. Please report thus to users@hudson.dev.java.net java.lang.IllegalArgumentException: vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class - vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class at hudson.remoting.Which.jarFile(Which.java:86) at hudson.maven.MavenProcessFactory.buildMavenCmdLine(MavenProcessFactory.java:261) at hudson.maven.MavenProcessFactory.newProcess(MavenProcessFactory.java:172) at hudson.maven.ProcessCache.get(ProcessCache.java:169) at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:328) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:244) at hudson.model.Run.run(Run.java:842) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:204) at hudson.model.ResourceController.execute(ResourceController.java:70) at hudson.model.Executor.run(Executor.java:90) project=hudson.maven.MavenModuleSet@cdd62 [EJB3 Trunk] project.getModules()=[hudson.maven.MavenModule@b21dcb[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-api], hudson.maven.MavenModule@1c201f6[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-as-int], hudson.maven.MavenModule@ee662[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-build], hudson.maven.MavenModule@3751ea[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-cache], hudson.maven.MavenModule@1e2e611[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-common], hudson.maven.MavenModule@16e932a[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-core], hudson.maven.MavenModule@7fe494[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-deployers], hudson.maven.MavenModule@77ba09[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-embedded], hudson.maven.MavenModule@56aa3d[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-ext-api], hudson.maven.MavenModule@1c2a8b7[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-ext-api-impl], hudson.maven.MavenModule@d28e76 [EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-injection] , hudson.maven.MavenModule@1870011[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-installer], hudson.maven.MavenModule@15933d[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-interceptors], hudson.maven.MavenModule@75c13a [EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-mc-int] , hudson.maven.MavenModule@e106ac [EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-metadata] , hudson.maven.MavenModule@17d11f0 [EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-parent] , hudson.maven.MavenModule@24ab81 [EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-plugin] , hudson.maven.MavenModule@177d169 [EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-pool] , hudson.maven.MavenModule@1557b9e [EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-proxy] , hudson.maven.MavenModule@126c5d4[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-proxy-clustered], hudson.maven.MavenModule@86217c [EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-security] , hudson.maven.MavenModule@93c2 [EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-test] , hudson.maven.MavenModule@1e4cb82 [EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-transactions] ] project.getRootModule()=hudson.maven.MavenModule@17d11f0[EJB3 Trunk/org.jboss.ejb3:jboss-ejb3-parent] FATAL: vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class - vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class java.lang.IllegalArgumentException: vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class - vfszip:/home/jpai/jboss-5.0.0.GA/server/default/deploy/hudson.war/WEB-INF/lib/maven-agent-1.276.jar/hudson/maven/agent/Main.class at hudson.remoting.Which.jarFile(Which.java:86) at hudson.maven.MavenProcessFactory.buildMavenCmdLine(MavenProcessFactory.java:261) at hudson.maven.MavenProcessFactory.newProcess(MavenProcessFactory.java:172) at hudson.maven.ProcessCache.get(ProcessCache.java:169) at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:328) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:244) at hudson.model.Run.run(Run.java:842) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:204) at hudson.model.ResourceController.execute(ResourceController.java:70) at hudson.model.Executor.run(Executor.java:90)

          jaikiran added a comment -

          If someone wants to reproduce this issue on JBossAS-5.0 GA, you first have to
          follow the steps mentioned at https://www.jboss.org/community/docs/DOC-13233

          jaikiran added a comment - If someone wants to reproduce this issue on JBossAS-5.0 GA, you first have to follow the steps mentioned at https://www.jboss.org/community/docs/DOC-13233

          Code changed in hudson
          User: : kohsuke
          Path:
          trunk/hudson/main/remoting/src/main/java/hudson/remoting/Which.java
          trunk/www/changelog.html
          http://fisheye4.cenqua.com/changelog/hudson/?cs=14857
          Log:
          [FIXED JENKINS-2831] Added handling for vfszip:/ protocol handler for JBoss5. This is ugly hack, but this was the best I was able to come up with.

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : kohsuke Path: trunk/hudson/main/remoting/src/main/java/hudson/remoting/Which.java trunk/www/changelog.html http://fisheye4.cenqua.com/changelog/hudson/?cs=14857 Log: [FIXED JENKINS-2831] Added handling for vfszip:/ protocol handler for JBoss5. This is ugly hack, but this was the best I was able to come up with.

          Code changed in hudson
          User: : kohsuke
          Path:
          trunk/hudson/plugins/pom.xml
          http://fisheye4.cenqua.com/changelog/hudson/?cs=14859
          Log:
          JENKINS-2831 use the latested Maven stapler plugin to avoid generating exported.beans which prevents JBoss deployment

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : kohsuke Path: trunk/hudson/plugins/pom.xml http://fisheye4.cenqua.com/changelog/hudson/?cs=14859 Log: JENKINS-2831 use the latested Maven stapler plugin to avoid generating exported.beans which prevents JBoss deployment

          Code changed in hudson
          User: : kohsuke
          Path:
          trunk/hudson/main/core/pom.xml
          http://fisheye4.cenqua.com/changelog/hudson/?cs=15010
          Log:
          JENKINS-2831 winp had a simliar assumption about the protocol.

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : kohsuke Path: trunk/hudson/main/core/pom.xml http://fisheye4.cenqua.com/changelog/hudson/?cs=15010 Log: JENKINS-2831 winp had a simliar assumption about the protocol.

            alrubinger alrubinger
            alrubinger alrubinger
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: