[jira] [Commented] (ISIS-3315) Apache Isis sorting fails with Comparison method violates its general contract!

2022-12-20 Thread Miroslav Holubec (Jira)


[ 
https://issues.apache.org/jira/browse/ISIS-3315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17650012#comment-17650012
 ] 

Miroslav Holubec commented on ISIS-3315:


btw. I was able to fix this by adding
{noformat}
if (qPojo == null) {
return 1;
} else if (pPojo == null) {
return -1;
}
{noformat}
after
{noformat}
if (Objects.equals(pPojo, qPojo)) { return 0; }
{noformat}

> Apache Isis sorting fails with Comparison method violates its general 
> contract!
> ---
>
> Key: ISIS-3315
> URL: https://issues.apache.org/jira/browse/ISIS-3315
> Project: Isis
>  Issue Type: Bug
>  Components: Isis Core
>Affects Versions: 2.0.0-M7
> Environment: OpenJDK 64-Bit Server VM (build 18.0.2.1+1-1, mixed 
> mode, sharing)
> OpenJDK 64-Bit Server VM Temurin-18+36 (build 18+36, mixed mode, sharing)
>Reporter: Miroslav Holubec
>Priority: Major
>
> Apache ISIS own comparator fails with IllegalArgumentException sorting our 
> data. I've created a [sample 
> snippet|https://gist.github.com/myroch/c26b97ec83e9168176e43b2ced4f9a08] to 
> proof this.
> The comparator used in the snippet is that one from 
> ManagedObjects.NATURAL_NULL_FIRST, I've just put for simplicity the 
> complexity of ManagedObject away.
> Occured on 2.0.0-M7, but as I checked the code this affects propably all 
> 2.0.0 versions
> Stacktrace:
> {noformat}
> Caused by: java.lang.IllegalArgumentException: Comparison method violates its 
> general contract!
>   at java.util.TimSort.mergeLo(TimSort.java:781) ~[?:?]
>   at java.util.TimSort.mergeAt(TimSort.java:518) ~[?:?]
>   at java.util.TimSort.mergeCollapse(TimSort.java:448) ~[?:?]
>   at java.util.TimSort.sort(TimSort.java:245) ~[?:?]
>   at java.util.Arrays.sort(Arrays.java:1307) ~[?:?]
>   at java.util.ArrayList.sort(ArrayList.java:1721) ~[?:?]
>   at 
> org.apache.isis.commons.collections.Can_Multiple.sorted(Can_Multiple.java:121)
>  ~[isis-commons-2.0.0-M7.jar:2.0.0-M7]
>   at 
> org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.CollectionContentsSortableDataProvider.sorted(CollectionContentsSortableDataProvider.java:83)
>  ~[isis-viewer-wicket-ui-2.0.0-M7.jar:2.0.0-M7]
>   at 
> org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.CollectionContentsSortableDataProvider.iterator(CollectionContentsSortableDataProvider.java:73)
>  ~[isis-viewer-wicket-ui-2.0.0-M7.jar:2.0.0-M7]
>   at 
> org.apache.wicket.markup.repeater.data.DataViewBase$ModelIterator.(DataViewBase.java:107)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.markup.repeater.data.DataViewBase.getItemModels(DataViewBase.java:74)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.markup.repeater.AbstractPageableView.getItemModels(AbstractPageableView.java:99)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.markup.repeater.RefreshingView.onPopulate(RefreshingView.java:93)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:124)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.markup.repeater.AbstractPageableView.onBeforeRender(AbstractPageableView.java:113)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at org.apache.wicket.Component.beforeRender(Component.java:947) 
> ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1741)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   ... 107 more
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (ISIS-3315) Apache Isis sorting fails with: Comparison method violates its general contract!

2022-12-21 Thread Andi Huber (Jira)


[ 
https://issues.apache.org/jira/browse/ISIS-3315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17650191#comment-17650191
 ] 

Andi Huber commented on ISIS-3315:
--

It seems we already fixed this one: 
https://github.com/apache/isis/commit/ecb6676879f894da2da0dd3240e47ffecccd704d


> Apache Isis sorting fails with: Comparison method violates its general 
> contract!
> 
>
> Key: ISIS-3315
> URL: https://issues.apache.org/jira/browse/ISIS-3315
> Project: Isis
>  Issue Type: Bug
>  Components: Isis Core
>Affects Versions: 2.0.0-M7
> Environment: OpenJDK 64-Bit Server VM (build 18.0.2.1+1-1, mixed 
> mode, sharing)
> OpenJDK 64-Bit Server VM Temurin-18+36 (build 18+36, mixed mode, sharing)
>Reporter: Miroslav Holubec
>Assignee: Andi Huber
>Priority: Major
> Fix For: 2.0.0-RC1
>
>
> Apache ISIS own comparator fails with IllegalArgumentException sorting our 
> data. I've created a [sample 
> snippet|https://gist.github.com/myroch/c26b97ec83e9168176e43b2ced4f9a08] to 
> proof this.
> The comparator used in the snippet is that one from 
> ManagedObjects.NATURAL_NULL_FIRST, I've just put for simplicity the 
> complexity of ManagedObject away.
> Occured on 2.0.0-M7, but as I checked the code this affects propably all 
> 2.0.0 versions
> Stacktrace:
> {noformat}
> Caused by: java.lang.IllegalArgumentException: Comparison method violates its 
> general contract!
>   at java.util.TimSort.mergeLo(TimSort.java:781) ~[?:?]
>   at java.util.TimSort.mergeAt(TimSort.java:518) ~[?:?]
>   at java.util.TimSort.mergeCollapse(TimSort.java:448) ~[?:?]
>   at java.util.TimSort.sort(TimSort.java:245) ~[?:?]
>   at java.util.Arrays.sort(Arrays.java:1307) ~[?:?]
>   at java.util.ArrayList.sort(ArrayList.java:1721) ~[?:?]
>   at 
> org.apache.isis.commons.collections.Can_Multiple.sorted(Can_Multiple.java:121)
>  ~[isis-commons-2.0.0-M7.jar:2.0.0-M7]
>   at 
> org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.CollectionContentsSortableDataProvider.sorted(CollectionContentsSortableDataProvider.java:83)
>  ~[isis-viewer-wicket-ui-2.0.0-M7.jar:2.0.0-M7]
>   at 
> org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.CollectionContentsSortableDataProvider.iterator(CollectionContentsSortableDataProvider.java:73)
>  ~[isis-viewer-wicket-ui-2.0.0-M7.jar:2.0.0-M7]
>   at 
> org.apache.wicket.markup.repeater.data.DataViewBase$ModelIterator.(DataViewBase.java:107)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.markup.repeater.data.DataViewBase.getItemModels(DataViewBase.java:74)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.markup.repeater.AbstractPageableView.getItemModels(AbstractPageableView.java:99)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.markup.repeater.RefreshingView.onPopulate(RefreshingView.java:93)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:124)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.markup.repeater.AbstractPageableView.onBeforeRender(AbstractPageableView.java:113)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   at org.apache.wicket.Component.beforeRender(Component.java:947) 
> ~[wicket-core-8.13.0.jar:8.13.0]
>   at 
> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1741)
>  ~[wicket-core-8.13.0.jar:8.13.0]
>   ... 107 more
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)