Jurgen Doll created CAY-2841: -------------------------------- Summary: Multi column ColumnSelect with SHARED_CACHE fails after 1st select Key: CAY-2841 URL: https://issues.apache.org/jira/browse/CAY-2841 Project: Cayenne Issue Type: Bug Affects Versions: 4.2 Reporter: Jurgen Doll
Adding the following test case to {color:#000000}{color:#000000}ColumnSelectIT{color}{color} shows the problem: {color:#000000} {color}{color:#646464}@{color}{color:#000000}Test{color} {color:#000000} {color}{color:#7f0055}public{color}{color:#000000} {color}{color:#7f0055}void{color}{color:#000000} testSharedCache() {color}{color:#7f0055}throws{color}{color:#000000} Exception {{color} {color:#000000} ColumnSelect colQry = ObjectSelect.query( Artist.{color}{color:#7f0055}class{color}{color:#000000} ){color} {color:#000000} .columns( Artist.ARTIST_NAME, Artist.DATE_OF_BIRTH ){color} {color:#000000} .cacheStrategy( QueryCacheStrategy.SHARED_CACHE );{color} {color:#000000} {color} {color:#000000} List<Object[]> result = colQry.select(context);{color} {color:#000000} assertEquals(20, result.size());{color} {color:#000000} {color}{color:#3f7f5f}// Next line fails with UnsupportedOperationException{color} {color:#000000} List<Object[]> result2 = colQry.select(context);{color} {color:#000000} assertEquals(20, result.size());{color} {color:#000000} }{color} Stacktrace: {color:#ff0000}Exception in thread "JavaFX Application Thread" {color}{color:#0066cc}java.lang.UnsupportedOperationException{color} {color:#ff0000} at java.base/java.util.Collections$UnmodifiableCollection.removeIf({color}{color:#0066cc}Collections.java:1120{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.access.DataDomainQueryAction$MixedConversionStrategy.convert({color}{color:#0066cc}DataDomainQueryAction.java:818{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.access.DataDomainQueryAction.interceptObjectConversion({color}{color:#0066cc}DataDomainQueryAction.java:507{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.access.DataDomainQueryAction.execute({color}{color:#0066cc}DataDomainQueryAction.java:135{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.access.DataDomain.onQueryNoFilters({color}{color:#0066cc}DataDomain.java:570{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.access.DataDomain$DataDomainQueryFilterChain.onQuery({color}{color:#0066cc}DataDomain.java:819{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.access.DataDomain.onQuery({color}{color:#0066cc}DataDomain.java:562{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.util.ObjectContextQueryAction.runQuery({color}{color:#0066cc}ObjectContextQueryAction.java:406{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.util.ObjectContextQueryAction.executePostCache({color}{color:#0066cc}ObjectContextQueryAction.java:107{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.util.ObjectContextQueryAction.execute({color}{color:#0066cc}ObjectContextQueryAction.java:94{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.access.DataContext.onQuery({color}{color:#0066cc}DataContext.java:960{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.access.DataContext.performQuery({color}{color:#0066cc}DataContext.java:949{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.BaseContext.select({color}{color:#0066cc}BaseContext.java:307{color}{color:#ff0000}){color} {color:#ff0000} at org.apache.cayenne.query.FluentSelect.select({color}{color:#0066cc}FluentSelect.java:160{color}{color:#ff0000}){color} Workaround: Add {color:#000000}{color:#000000}.suppressDistinct(){color}{color} to the query. -- This message was sent by Atlassian Jira (v8.20.10#820010)