You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Grigorov (JIRA)" <ji...@apache.org> on 2013/01/08 09:34:13 UTC

[jira] [Resolved] (WICKET-4955) SessionData violates comparison contract

     [ https://issues.apache.org/jira/browse/WICKET-4955?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov resolved WICKET-4955.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 6.5.0
                   1.5.10
         Assignee: Martin Grigorov
    
> SessionData violates comparison contract
> ----------------------------------------
>
>                 Key: WICKET-4955
>                 URL: https://issues.apache.org/jira/browse/WICKET-4955
>             Project: Wicket
>          Issue Type: Bug
>    Affects Versions: 6.4.0
>         Environment: java 7
>            Reporter: Sverre Boschman
>            Assignee: Martin Grigorov
>            Priority: Minor
>              Labels: requestlogger
>             Fix For: 1.5.10, 6.5.0
>
>
> AbstractRequestLogger.getLiveSessions sorts the SessionData objects, this sort 'sometimes' (most likely load/concurrency) results in a contract violation:
> Caused by: org.apache.wicket.WicketRuntimeException: Error calling method: public final java.lang.Integer org.apache.wicket.proxy.$Proxy200.getLiveSessions() on object: org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler@438532d0
>         at org.apache.wicket.core.util.lang.PropertyResolver$MethodGetAndSet.getValue(PropertyResolver.java:1148)
>         at org.apache.wicket.core.util.lang.PropertyResolver$ObjectAndGetSetter.getValue(PropertyResolver.java:649)
>         at org.apache.wicket.core.util.lang.PropertyResolver.getValue(PropertyResolver.java:103)
>         at org.apache.wicket.model.AbstractPropertyModel.getObject(AbstractPropertyModel.java:86)
>         at org.apache.wicket.Component.getDefaultModelObject(Component.java:1615)
>         ... 75 more
> Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!
>         at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835)
>         at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:453)
>         at java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:392)
>         at java.util.ComparableTimSort.sort(ComparableTimSort.java:191)
>         at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
>         at java.util.Arrays.sort(Arrays.java:472)
>         at org.apache.wicket.protocol.http.AbstractRequestLogger.getLiveSessions(AbstractRequestLogger.java:135)
>         at nl.topicus.cobra.monitoring.BaseApplicationInfo.getLiveSessions(BaseApplicationInfo.java:103)
>         at sun.reflect.GeneratedMethodAccessor256.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:601)
>         at org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:434)
>         at org.apache.wicket.proxy.$Proxy200.getLiveSessions(Unknown Source)
>         at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:601)
>         at org.apache.wicket.core.util.lang.PropertyResolver$MethodGetAndSet.getValue(PropertyResolver.java:1144)
>         ... 79 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira