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)

Reply via email to