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

classloading issue with xerces lib

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      Create a pipeline job with "Pipeline script from SCM"
      SCM: Subversion

      Jenkinsfile
      def content = readTrusted('somefile')
      
      node('mynode') {
          echo content
      }
      

      This leads to

      [Pipeline] readTrusted
      Updating http://... at revision '2016-08-19T07:47:29.338 +0200'
      At revision 5146
      
      No changes for http://... since the previous build
      [Pipeline] End of Pipeline
      javax.xml.parsers.FactoryConfigurationError: Provider for class javax.xml.parsers.SAXParserFactory cannot be created
      	at javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:311)
      	at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:267)
      	at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:127)
      	at org.apache.commons.digester.Digester.getFactory(Digester.java:537)
      	at org.apache.commons.digester.Digester.getParser(Digester.java:791)
      	at org.apache.commons.digester.Digester.getXMLReader(Digester.java:1068)
      	at org.apache.commons.digester.Digester.parse(Digester.java:1871)
      	at hudson.scm.SubversionChangeLogParser.parse(SubversionChangeLogParser.java:76)
      	at hudson.scm.SubversionChangeLogParser.parse(SubversionChangeLogParser.java:43)
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun.onCheckout(WorkflowRun.java:652)
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun.access$1300(WorkflowRun.java:112)
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun$SCMListenerImpl.onCheckout(WorkflowRun.java:842)
      	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:123)
      	at org.jenkinsci.plugins.workflow.multibranch.ReadTrustedStep$Execution.run(ReadTrustedStep.java:119)
      	at org.jenkinsci.plugins.workflow.multibranch.ReadTrustedStep$Execution.run(ReadTrustedStep.java:78)
      	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousStepExecution.start(AbstractSynchronousStepExecution.java:40)
      	at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:178)
      	at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:124)
      	at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:117)
      	at groovy.lang.GroovyObject$invokeMethod$0.call(Unknown Source)
      	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
      	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151)
      	at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21)
      	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115)
      	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:103)
      	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
      	at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
      	at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16)
      	at WorkflowScript.run(WorkflowScript:1)
      	at ___cps.transform___(Native Method)
      	at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:48)
      	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)
      	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
      	at sun.reflect.GeneratedMethodAccessor527.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
      	at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
      	at com.cloudbees.groovy.cps.Next.step(Next.java:58)
      	at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30)
      	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30)
      	at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:164)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:361)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:80)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:236)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:226)
      	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:47)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
      	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.RuntimeException: Provider for class javax.xml.parsers.SAXParserFactory cannot be created
      	at javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:308)
      	at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:267)
      	at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:127)
      	at org.apache.commons.digester.Digester.getFactory(Digester.java:537)
      	at org.apache.commons.digester.Digester.getParser(Digester.java:791)
      	at org.apache.commons.digester.Digester.getXMLReader(Digester.java:1068)
      	at org.apache.commons.digester.Digester.parse(Digester.java:1871)
      	at hudson.scm.SubversionChangeLogParser.parse(SubversionChangeLogParser.java:76)
      	at hudson.scm.SubversionChangeLogParser.parse(SubversionChangeLogParser.java:43)
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun.onCheckout(WorkflowRun.java:652)
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun.access$1300(WorkflowRun.java:112)
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun$SCMListenerImpl.onCheckout(WorkflowRun.java:842)
      	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:123)
      	at org.jenkinsci.plugins.workflow.multibranch.ReadTrustedStep$Execution.run(ReadTrustedStep.java:119)
      	at org.jenkinsci.plugins.workflow.multibranch.ReadTrustedStep$Execution.run(ReadTrustedStep.java:78)
      	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousStepExecution.start(AbstractSynchronousStepExecution.java:40)
      	at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:178)
      	at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:124)
      	at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:117)
      	at groovy.lang.GroovyObject$invokeMethod$0.call(Unknown Source)
      	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
      	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151)
      	at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21)
      	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115)
      	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:103)
      	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
      	at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
      	at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16)
      	... 29 more
      Caused by: java.util.ServiceConfigurationError: javax.xml.parsers.SAXParserFactory: Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not a subtype
      	at java.util.ServiceLoader.fail(ServiceLoader.java:239)
      	at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
      	at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376)
      	at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
      	at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
      	at javax.xml.parsers.FactoryFinder$1.run(FactoryFinder.java:294)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:289)
      	... 57 more
      Finished: FAILURE
      

        Attachments

          Issue Links

            Activity

            Hide
            nachevn Nikolay Nachev added a comment - - edited

            Hi Martin Vehovsky,

            I was able to find the cause of my issue and created a new bug, see https://issues.jenkins-ci.org/browse/JENKINS-41515 . My workaround is to read the XML with bash till the bug is fixed. Please let me know if you have the same issue.

            Best
            Nikolay

            Show
            nachevn Nikolay Nachev added a comment - - edited Hi Martin Vehovsky , I was able to find the cause of my issue and created a new bug, see https://issues.jenkins-ci.org/browse/JENKINS-41515 . My workaround is to read the XML with bash till the bug is fixed. Please let me know if you have the same issue. Best Nikolay
            Hide
            vehovmar Martin Vehovsky added a comment - - edited

            Thank you very much Nikolay! You saved me a lot of time investigating the cause. I can confirm disabling the jacoco plugin helped.

            I'll be watching the linked issue for the fix.

            Best regards
            Martin

            Show
            vehovmar Martin Vehovsky added a comment - - edited Thank you very much Nikolay! You saved me a lot of time investigating the cause. I can confirm disabling the jacoco plugin helped. I'll be watching the linked issue for the fix. Best regards Martin
            Hide
            jglick Jesse Glick added a comment -

            My workaround is to read the XML with bash till the bug is fixed.

            This is the proper approach to begin with. Do not use XmlSlurper, URLConnection, etc. from Pipeline script. Write a download/parsing script in the language of your choice and call it from some node using sh/bat.

            Show
            jglick Jesse Glick added a comment - My workaround is to read the XML with bash till the bug is fixed. This is the proper approach to begin with. Do not use XmlSlurper , URLConnection , etc. from Pipeline script. Write a download/parsing script in the language of your choice and call it from some node using sh / bat .
            Hide
            vehovmar Martin Vehovsky added a comment -

            Hi Jesse Glick, can you please elaborate why such common utilities from Groovy shouldn't be used? Besides possible serialization issues that can be avoided if used right.

            For me, having these utilities is one of the main reasons why I use pipelines.

            Show
            vehovmar Martin Vehovsky added a comment - Hi Jesse Glick , can you please elaborate why such common utilities from Groovy shouldn't be used? Besides possible serialization issues that can be avoided if used right. For me, having these utilities is one of the main reasons why I use pipelines.
            Hide
            jglick Jesse Glick added a comment -

            (a) Class loading hell; (b) dynamic method invocation hell.

            Show
            jglick Jesse Glick added a comment - (a) Class loading hell; (b) dynamic method invocation hell.

              People

              • Assignee:
                Unassigned
                Reporter:
                scddev Dietmar Scheidl
              • Votes:
                1 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: