Tim Smith created JENKINS-13285:
-----------------------------------

             Summary: customtools-plugin does not delegate the 
Launcher.isUnix() call in DecoratedLauncher
                 Key: JENKINS-13285
                 URL: https://issues.jenkins-ci.org/browse/JENKINS-13285
             Project: Jenkins
          Issue Type: Bug
          Components: customtools-plugin
         Environment: customtools-plugin version 1.0
            Reporter: Tim Smith
            Assignee: recampbell
            Priority: Critical


When launching a Maven build from a Jenkins Unix master to a remote Windows 
slave the command line is incorrectly built because the customtools-plugin 
decorates the Launcher and fails to pass through the Launcher.isUnix() call to 
the decoratee. The result is that the classpath uses a path separator of ':' 
rather than ';' and Maven fails to load with a NoClassDefFoundError.

The fix is simple. In 
{{com.cloudbees.jenkins.plugins.customtools.DecoratedLauncher}} just override 
the isUnix() call:

{code:title=com.cloudbees.jenkins.plugins.customtools.DecoratedLauncher}
    @Override
    public boolean isUnix() {
        return inner.isUnix();
    }
{code}

I'm not sure if there is a better way to do this in Jenkins. Decorating 
Launcher by subclassing in this way looks prone to this error if plugins fail 
to decorate all public methods. Perhaps Jenkins core offers a better approach?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to