jenkinsci / audit2db-plugin

Jenkins plugin to record build audit information to database.
https://plugins.jenkins.io/audit2db/
5 stars 24 forks source link

Unable to redeploy customized audit2db plugin ... #8

Open raghav4192 opened 10 years ago

raghav4192 commented 10 years ago

Had to customize the plugin as one of the build parameters in my job was a password and it was gettng logged in the db.. also wanted to have some parameters as table headers..

I imported the source made changes in eclipse juno and ran the goal clean install -DskipTests=true generated the hpi and manually uploaded the hpi to install my version of the plugin...

When I tried test connection in master config page I got the exception below.

Has there been new additions to the library ??? Please help

Stack trace javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: when resolving method "org.dom4j.io.SAXReader.setEntityResolver(Lorg/xml/sax/EntityResolver;)V" the class loader (instance of hudson/PluginFirstClassLoader) of the current class, org/hibernate/util/XMLHelper, and the class loader (instance of winstone/classLoader/WebappClassLoader) for resolved class, org/dom4j/io/SAXReader, have different Class objects for the type setEntityResolver used in the signature                 at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:726)                 at org.kohsuke.stapler.Stapler.invoke(Stapler.java:777)                 at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:239)                 at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)                 at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:684)                 at org.kohsuke.stapler.Stapler.invoke(Stapler.java:777)                 at org.kohsuke.stapler.Stapler.invoke(Stapler.java:586)                 at org.kohsuke.stapler.Stapler.service(Stapler.java:217)                 at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)                 at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)                 at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)                 at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)                 at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)                 at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:203)                 at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:181)                 at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86)                 at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:90)                 at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99)                 at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)                 at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)                 at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)                 at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)                 at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)                 at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)                 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)                 at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)                 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)                 at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118)                 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)                 at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)                 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)                 at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)                 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)                 at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)                 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)                 at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)                 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)                 at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)                 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)                 at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)                 at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)                 at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)                 at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)                 at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)                 at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)                 at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)                 at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:47)                 at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)                 at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)                 at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)                 at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)                 at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)                 at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)                 at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:227)                 at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)                 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)                 at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)                 at java.util.concurrent.FutureTask.run(FutureTask.java:166)                 at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)                 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)                 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)                 at java.lang.Thread.run(Thread.java:724) Caused by: java.lang.LinkageError: loader constraint violation: when resolving method "org.dom4j.io.SAXReader.setEntityResolver(Lorg/xml/sax/EntityResolver;)V" the class loader (instance of hudson/PluginFirstClassLoader) of the current class, org/hibernate/util/XMLHelper, and the class loader (instance of winstone/classLoader/WebappClassLoader) for resolved class, org/dom4j/io/SAXReader, have different Class objects for the type setEntityResolver used in the signature                 at org.hibernate.util.XMLHelper.createSAXReader(XMLHelper.java:58)                 at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1576)                 at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1212)                 at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:107)                 at org.hibernate.cfg.Configuration.configure(Configuration.java:1520)                 at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1194)                 at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:107)                 at org.hibernate.cfg.Configuration.configure(Configuration.java:1506)                 at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1188)                 at org.jenkins.plugins.audit2db.internal.data.HibernateUtil.getConfig(HibernateUtil.java:31)                 at org.jenkins.plugins.audit2db.internal.data.HibernateUtil.getSessionFactory(HibernateUtil.java:45)                 at org.jenkins.plugins.audit2db.internal.DbAuditPublisherDescriptorImpl.doTestJdbcConnection(DbAuditPublisherDescriptorImpl.java:243)                 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)                 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)                 at java.lang.reflect.Method.invoke(Method.java:606)                 at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:297)                 at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:160)                 at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:95)                 at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)                 at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)                 at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:684)                 ... 61 more

raghav4192 commented 10 years ago

The issue resolved after making the pluginFirstClassLoader config set to False in the maven-hpi-plugin.

The issue was the hibernate dom4j jar was loading before the jenkins core saxparser class which was causing the problem

Thanks to Jenkins-Ci wiki which explained a bit about this setting .. this setting is dangerous and might not behave like this in all scenarios ..

mrandhikpurwala commented 9 years ago

It's not resolving even after I made the settings as false in the pom. Any other way to solve the issue.

sergueik commented 9 years ago

Hello mrandhikpurwala

Sorry for slow followup  - was busy with other tasks.  Can you provide with sample config.xml of the bombing project and other inputs  needed to reproduce Thanks, Serguei Kouzmine

  From: mrandhikpurwala <notifications@github.com>

To: jenkinsci/audit2db-plugin audit2db-plugin@noreply.github.com Sent: Tuesday, March 3, 2015 6:13 AM Subject: Re: [audit2db-plugin] Unable to redeploy customized audit2db plugin ... (#8)

It's not resolving even after I made the settings as false in the pom. Any other way to solve the issue.— Reply to this email directly or view it on GitHub.