You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Andrus Adamchik (JIRA)" <ji...@apache.org> on 2016/12/25 13:05:58 UTC
[jira] [Comment Edited] (CAY-1551) orderings with "+." in the path
fail when performing in memory sort
[ https://issues.apache.org/jira/browse/CAY-1551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15776452#comment-15776452 ]
Andrus Adamchik edited comment on CAY-1551 at 12/25/16 1:05 PM:
----------------------------------------------------------------
Still broken as of 12/2016 (both ordering and in-memory evaluation of expressions). E.g. you may add this to OrderingTest to reproduce:
{noformat}
@Test
public void testOrderList_Related() {
List<B1> unordered = asList(
new B1().setName("three").setB2(new B2().setName("Z")),
new B1().setName("one").setB2(new B2().setName("A")),
new B1().setName("two").setB2(new B2().setName("M"))
);
List<B1> ordered = new Ordering("b2+.name", SortOrder.ASCENDING).orderedList(unordered);
assertEquals("one", ordered.get(0).getName());
assertEquals("two", ordered.get(1).getName());
assertEquals("three", ordered.get(2).getName());
}
{noformat}
was (Author: andrus):
Still broken as of 12/2016 (both ordering and in-memory evaluation of expressions). E.g. you may add this to OrderingTest to reproduce:
{noformat}
@Test
public void testOrderList_Related() throws Exception {
List<B1> unordered = asList(
new B1().setName("three").setB2(new B2().setName("Z")),
new B1().setName("one").setB2(new B2().setName("A")),
new B1().setName("two").setB2(new B2().setName("M"))
);
List<B1> ordered = new Ordering("b2+.name", SortOrder.ASCENDING).orderedList(unordered);
assertEquals("one", ordered.get(0).getName());
assertEquals("two", ordered.get(1).getName());
assertEquals("three", ordered.get(2).getName());
}
{noformat}
> orderings with "+." in the path fail when performing in memory sort
> -------------------------------------------------------------------
>
> Key: CAY-1551
> URL: https://issues.apache.org/jira/browse/CAY-1551
> Project: Cayenne
> Issue Type: Bug
> Components: Core Library
> Affects Versions: 3.1M1
> Reporter: Marcin Skladaniec
>
> Example stack:
> Exception in thread "AWT-EventQueue-0" org.apache.cayenne.exp.ExpressionException: [v.3.0.1 Sep 06 2010 15:09:38] Error evaluating expression 'invoiceLine+.invoice.invoiceNumber'
> at org.apache.cayenne.exp.parser.SimpleNode.evaluate(SimpleNode.java:339)
> at org.apache.cayenne.query.Ordering.compare(Ordering.java:336)
> at java.util.Arrays.mergeSort(Arrays.java:1270)
> at java.util.Arrays.sort(Arrays.java:1210)
> at java.util.Collections.sort(Collections.java:159)
> at org.apache.cayenne.query.Ordering.orderList(Ordering.java:324)
> ....
> Caused by: java.beans.IntrospectionException: No property 'invoiceLine+' found in class ish.oncourse.cayenne.Enrolment
> at org.apache.cayenne.reflect.PropertyUtils.getSimpleProperty(PropertyUtils.java:203)
> at org.apache.cayenne.reflect.PropertyUtils.getProperty(PropertyUtils.java:116)
> at org.apache.cayenne.exp.parser.ASTObjPath.evaluateNode(ASTObjPath.java:54)
> at org.apache.cayenne.exp.parser.SimpleNode.evaluate(SimpleNode.java:335)
> ... 52 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)