Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-31725

Broken Equality Comparators in Assignments / Announcements

    Details

    • Type: Bug
    • Status: OPEN
    • Priority: Critical
    • Resolution: Unresolved
    • Affects Version/s: 11.1, 12.0
    • Fix Version/s: None
    • Component/s: Announcements, Assignments
    • Labels:

      Description

      Assignments:

      org.sakaiproject.portal.api.PortalHandlerException: org.sakaiproject.tool.api.ToolException: java.lang.reflect.InvocationTargetException
      at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:835)
      caused by: org.sakaiproject.tool.api.ToolException: java.lang.reflect.InvocationTargetException
      at org.sakaiproject.cheftool.ToolServlet.doGet(ToolServlet.java:236)
      caused by: java.lang.reflect.InvocationTargetException
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!
      at java.util.TimSort.mergeHi(TimSort.java:899)
      at java.util.TimSort.mergeAt(TimSort.java:516)
      at java.util.TimSort.mergeCollapse(TimSort.java:441)
      at java.util.TimSort.sort(TimSort.java:245)
      at java.util.Arrays.sort(Arrays.java:1512)
      at java.util.Vector.sort(Vector.java:1319)
      at java.util.Collections.sort(Collections.java:175)
      at org.sakaiproject.util.SortedIterator.<init>(SortedIterator.java:60)
      at org.sakaiproject.announcement.tool.AnnouncementAction.readResourcesPage(AnnouncementAction.java:5071)
      at org.sakaiproject.announcement.tool.AnnouncementAction.buildMainPanelContext(AnnouncementAction.java:1083)
      at sun.reflect.GeneratedMethodAccessor2118.invoke(null:-1)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:497)
      at org.sakaiproject.cheftool.VelocityPortletPaneledAction.toolModeDispatch(VelocityPortletPaneledAction.java:466)
      at org.sakaiproject.cheftool.ToolServlet.doGet(ToolServlet.java:236)
      at org.sakaiproject.cheftool.VelocityPortletPaneledAction.doGet(VelocityPortletPaneledAction.java:1215)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
      at org.sakaiproject.vm.ComponentServlet.service(ComponentServlet.java:56)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:399)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:719)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:465)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:357)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:317)
      at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:513)
      at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1459)
      at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:204)
      at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:100)
      at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:835)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:460)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
      at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
      at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:676)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
      at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:676)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      at java.lang.Thread.run(Thread.java:745)
      

      I believe this exception is caused as the equality comparators are broken.

      This should be resolved.

      A workaround is to use the legacy mergesort in JavaOpts -Djava.util.Arrays.useLegacyMergeSort=true.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  maintenanceteam Core Team
                  Reporter:
                  lcanessa Leonardo Canessa
                • Votes:
                  1 Vote for this issue
                  Watchers:
                  6 Start watching this issue

                  Dates

                  • Created:
                    Updated:

                    Git Source Code