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

Nikita Timofeev reassigned CAY-2841:
------------------------------------

    Assignee: Nikita Timofeev

> 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
>            Assignee: Nikita Timofeev
>            Priority: Minor
>             Fix For: 4.2.1, 5.0-M1
>
>
> 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