javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: file:/D:/JenkinsHome/plugins/xfpanel/WEB-INF/classes/maps/hudson/plugin/xfpanel/XFPanelView/maindisplay.jelly:23:53: <j:invoke> method sort threw exception: Comparison method violates its general contract!

Jenkins JIRA | Tobias Tobiasen | 3 years ago
  1. 0

    [JENKINS-20768] Comparison method violates its general contract exception - Jenkins JIRA

    jenkins-ci.org | 3 months ago
    javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: <j:invoke> method sort threw exception: Comparison method violates its general contract!
  2. 0

    It get the stacktrace below sometimes. I have not found a clear pattern in when it happens. However I have seen similar errors in other code running on JDK 7. I am running 1.2.2 To me it looks like the selectComparator.compare in XFPanelView is wrong. It contains. // if build is null, show it on bottom of its class if ( buildA == null || buildB == null ){ return ( buildA == null ) ? 1 : 0; } // if building atm -> show build on top of its class if ( buildA.isBuilding() || buildB.isBuilding() ){ return ( buildA.isBuilding() ) ? 0 : 1; } It does not follow the contract that says: "The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y. " It should be changed to: // if build is null, show it on bottom of its class if ( buildA == null || buildB == null ){ if (buildA == buildB) { return 0; } return ( buildA == null ) ? 1 : 0; } // if building atm -> show build on top of its class if ( buildA.isBuilding() || buildB.isBuilding() ){ if (buildA.isBuilding() == buildB.isBuilding()) { return 0; } return ( buildA.isBuilding() ) ? 0 : 1; } Status Code: 500 Exception: org.apache.commons.jelly.JellyTagException: file:/D:/JenkinsHome/plugins/xfpanel/WEB-INF/classes/maps/hudson/plugin/xfpanel/XFPanelView/maindisplay.jelly:23:53: <j:invoke> method sort threw exception: Comparison method violates its general contract! Stacktrace: javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: file:/D:/JenkinsHome/plugins/xfpanel/WEB-INF/classes/maps/hudson/plugin/xfpanel/XFPanelView/maindisplay.jelly:23:53: <j:invoke> method sort threw exception: Comparison method violates its general contract! at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:103) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:583) at org.kohsuke.stapler.Stapler.service(Stapler.java:214) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179) at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86) at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 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 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) 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 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 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:722) Caused by: org.apache.commons.jelly.JellyTagException: file:/D:/JenkinsHome/plugins/xfpanel/WEB-INF/classes/maps/hudson/plugin/xfpanel/XFPanelView/maindisplay.jelly:23:53: <j:invoke> method sort threw exception: Comparison method violates its general contract! at org.apache.commons.jelly.tags.core.InvokeTag.doTag(InvokeTag.java:109) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:41) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:41) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53) at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:95) ... 69 more Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:747) at java.util.TimSort.mergeAt(TimSort.java:483) at java.util.TimSort.mergeCollapse(TimSort.java:410) at java.util.TimSort.sort(TimSort.java:214) at java.util.TimSort.sort(TimSort.java:173) at java.util.Arrays.sort(Arrays.java:659) at java.util.Collections.sort(Collections.java:217) at maps.hudson.plugin.xfpanel.XFPanelView.sort(XFPanelView.java:374) at sun.reflect.GeneratedMethodAccessor2240.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:282) at org.apache.commons.jelly.tags.core.InvokeTag.doTag(InvokeTag.java:97) ... 102 more

    Jenkins JIRA | 3 years ago | Tobias Tobiasen
    javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: file:/D:/JenkinsHome/plugins/xfpanel/WEB-INF/classes/maps/hudson/plugin/xfpanel/XFPanelView/maindisplay.jelly:23:53: <j:invoke> method sort threw exception: Comparison method violates its general contract!
  3. 0

    It get the stacktrace below sometimes. I have not found a clear pattern in when it happens. However I have seen similar errors in other code running on JDK 7. I am running 1.2.2 To me it looks like the selectComparator.compare in XFPanelView is wrong. It contains. // if build is null, show it on bottom of its class if ( buildA == null || buildB == null ){ return ( buildA == null ) ? 1 : 0; } // if building atm -> show build on top of its class if ( buildA.isBuilding() || buildB.isBuilding() ){ return ( buildA.isBuilding() ) ? 0 : 1; } It does not follow the contract that says: "The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y. " It should be changed to: // if build is null, show it on bottom of its class if ( buildA == null || buildB == null ){ if (buildA == buildB) { return 0; } return ( buildA == null ) ? 1 : 0; } // if building atm -> show build on top of its class if ( buildA.isBuilding() || buildB.isBuilding() ){ if (buildA.isBuilding() == buildB.isBuilding()) { return 0; } return ( buildA.isBuilding() ) ? 0 : 1; } Status Code: 500 Exception: org.apache.commons.jelly.JellyTagException: file:/D:/JenkinsHome/plugins/xfpanel/WEB-INF/classes/maps/hudson/plugin/xfpanel/XFPanelView/maindisplay.jelly:23:53: <j:invoke> method sort threw exception: Comparison method violates its general contract! Stacktrace: javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: file:/D:/JenkinsHome/plugins/xfpanel/WEB-INF/classes/maps/hudson/plugin/xfpanel/XFPanelView/maindisplay.jelly:23:53: <j:invoke> method sort threw exception: Comparison method violates its general contract! at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:103) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:583) at org.kohsuke.stapler.Stapler.service(Stapler.java:214) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179) at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86) at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 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 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) 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 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 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:722) Caused by: org.apache.commons.jelly.JellyTagException: file:/D:/JenkinsHome/plugins/xfpanel/WEB-INF/classes/maps/hudson/plugin/xfpanel/XFPanelView/maindisplay.jelly:23:53: <j:invoke> method sort threw exception: Comparison method violates its general contract! at org.apache.commons.jelly.tags.core.InvokeTag.doTag(InvokeTag.java:109) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:41) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:41) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53) at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:95) ... 69 more Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:747) at java.util.TimSort.mergeAt(TimSort.java:483) at java.util.TimSort.mergeCollapse(TimSort.java:410) at java.util.TimSort.sort(TimSort.java:214) at java.util.TimSort.sort(TimSort.java:173) at java.util.Arrays.sort(Arrays.java:659) at java.util.Collections.sort(Collections.java:217) at maps.hudson.plugin.xfpanel.XFPanelView.sort(XFPanelView.java:374) at sun.reflect.GeneratedMethodAccessor2240.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:282) at org.apache.commons.jelly.tags.core.InvokeTag.doTag(InvokeTag.java:97) ... 102 more

    Jenkins JIRA | 3 years ago | Tobias Tobiasen
    javax.servlet.ServletException: org.apache.commons.jelly.JellyTagException: file:/D:/JenkinsHome/plugins/xfpanel/WEB-INF/classes/maps/hudson/plugin/xfpanel/XFPanelView/maindisplay.jelly:23:53: <j:invoke> method sort threw exception: Comparison method violates its general contract!
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    Convert libs repo to Java 7

    GitHub | 3 years ago | jtesser
    java.lang.IllegalArgumentException: Comparison method violates its general contract!

    15 unregistered visitors
    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.IllegalArgumentException

      Comparison method violates its general contract!

      at java.util.TimSort.mergeLo()
    2. Java RT
      Collections.sort
      1. java.util.TimSort.mergeLo(TimSort.java:747)
      2. java.util.TimSort.mergeAt(TimSort.java:483)
      3. java.util.TimSort.mergeCollapse(TimSort.java:410)
      4. java.util.TimSort.sort(TimSort.java:214)
      5. java.util.TimSort.sort(TimSort.java:173)
      6. java.util.Arrays.sort(Arrays.java:659)
      7. java.util.Collections.sort(Collections.java:217)
      7 frames
    3. maps.hudson.plugin
      XFPanelView.sort
      1. maps.hudson.plugin.xfpanel.XFPanelView.sort(XFPanelView.java:374)
      1 frame
    4. Java RT
      Method.invoke
      1. sun.reflect.GeneratedMethodAccessor2240.invoke(Unknown Source)
      2. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      3. java.lang.reflect.Method.invoke(Method.java:601)
      3 frames
    5. Apache Commons BeanUtils
      MethodUtils.invokeMethod
      1. org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:282)
      1 frame
    6. commons-jelly
      ScriptBlock.run
      1. org.apache.commons.jelly.tags.core.InvokeTag.doTag(InvokeTag.java:97)
      2. org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      3. org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      3 frames
    7. Stapler Jelly
      ReallyStaticTagLibrary$1.run
      1. org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      1 frame
    8. commons-jelly
      CoreTagLibrary$2.run
      1. org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      2. org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:41)
      3. org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      4. org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      5. org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      6. org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
      7. org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      8. org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      8 frames
    9. Stapler Jelly
      IncludeTag.doTag
      1. org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
      2. org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
      2 frames
    10. commons-jelly
      ScriptBlock.run
      1. org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      2. org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      2 frames
    11. Stapler Jelly
      CallTagLibScript$1.run
      1. org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
      1 frame
    12. commons-jelly-tags-define
      InvokeBodyTag.doTag
      1. org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
      1 frame
    13. commons-jelly
      CoreTagLibrary$2.run
      1. org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      2. org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      3. org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      4. org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:41)
      5. org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      6. org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      7. org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      8. org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
      9. org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      10. org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      10 frames
    14. Stapler Jelly
      CallTagLibScript.run
      1. org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
      1 frame
    15. commons-jelly
      CoreTagLibrary$2.run
      1. org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      1 frame
    16. Stapler Jelly
      JellyFacet$1.dispatch
      1. org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
      2. org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
      3. org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
      4. org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:95)
      4 frames
    17. Stapler
      Stapler.service
      1. org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
      2. org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
      3. org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
      4. org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      5. org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
      6. org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
      7. org.kohsuke.stapler.Stapler.invoke(Stapler.java:583)
      8. org.kohsuke.stapler.Stapler.service(Stapler.java:214)
      8 frames
    18. JavaServlet
      HttpServlet.service
      1. javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      1 frame
    19. Glassfish Core
      ApplicationFilterChain.doFilter
      1. org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      2. org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      2 frames
    20. Hudson
      PluginServletFilter$1.doFilter
      1. hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
      1 frame
    21. net.bull.javamelody
      PluginMonitoringFilter.doFilter
      1. net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
      2. net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
      3. net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86)
      3 frames
    22. org.jvnet.hudson
      HudsonMonitoringFilter.doFilter
      1. org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84)
      1 frame
    23. Hudson
      PluginServletFilter$1.doFilter
      1. hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      1 frame
    24. hudson.plugins.greenballs
      GreenBallFilter.doFilter
      1. hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
      1 frame
    25. Hudson
      PluginServletFilter$1.doFilter
      1. hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      1 frame
    26. hudson.plugins.audit_trail
      AuditTrailFilter.doFilter
      1. hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66)
      1 frame
    27. Hudson
      PluginServletFilter.doFilter
      1. hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      2. hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
      2 frames
    28. Glassfish Core
      ApplicationFilterChain.doFilter
      1. org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      2. org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      2 frames
    29. Hudson
      CrumbFilter.doFilter
      1. hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      1 frame
    30. Glassfish Core
      ApplicationFilterChain.doFilter
      1. org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      2. org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      2 frames
    31. Hudson
      ChainedServletFilter$1.doFilter
      1. hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      2. hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
      3. hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      3 frames
    32. Acegi Security Core
      ExceptionTranslationFilter.doFilter
      1. org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
      1 frame
    33. Hudson
      ChainedServletFilter$1.doFilter
      1. hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      1 frame
    34. Acegi Security Core
      AnonymousProcessingFilter.doFilter
      1. org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
      1 frame
    35. Hudson
      ChainedServletFilter$1.doFilter
      1. hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      1 frame
    36. Acegi Security Core
      RememberMeProcessingFilter.doFilter
      1. org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
      1 frame
    37. Hudson
      ChainedServletFilter$1.doFilter
      1. hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      1 frame
    38. Acegi Security Core
      AbstractProcessingFilter.doFilter
      1. org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
      1 frame
    39. Hudson
      ChainedServletFilter$1.doFilter
      1. hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      1 frame
    40. Acegi Security Core
      BasicProcessingFilter.doFilter
      1. org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
      1 frame
    41. Hudson
      ChainedServletFilter$1.doFilter
      1. hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      1 frame
    42. jenkins.security
      ApiTokenFilter.doFilter
      1. jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
      1 frame
    43. Hudson
      ChainedServletFilter$1.doFilter
      1. hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      1 frame
    44. Acegi Security Core
      HttpSessionContextIntegrationFilter.doFilter
      1. org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      1 frame
    45. Hudson
      HudsonFilter.doFilter
      1. hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
      2. hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      3. hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      4. hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
      4 frames
    46. Glassfish Core
      ApplicationFilterChain.doFilter
      1. org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      2. org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      2 frames
    47. Stapler
      CompressionFilter.doFilter
      1. org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
      1 frame
    48. Glassfish Core
      ApplicationFilterChain.doFilter
      1. org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      2. org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      2 frames
    49. Hudson
      CharacterEncodingFilter.doFilter
      1. hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      1 frame
    50. Glassfish Core
      CoyoteAdapter.service
      1. org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      2. org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      3. org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
      4. org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
      5. org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
      6. org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
      7. org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
      8. org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
      9. org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      10. org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      10 frames
    51. Grizzly HTTP
      JIoEndpoint$SocketProcessor.run
      1. org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
      2. org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
      3. org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
      3 frames
    52. Java RT
      Thread.run
      1. java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      2. java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      3. java.lang.Thread.run(Thread.java:722)
      3 frames