Clearing a list used by Contains causes subsequent queries to fail

Description

If you clear a list that has been used in a linq query subsequent similar queries can fail.

The linq provider appears to be caching the list as if it were a constant, subsequent queries then see this list as empty at NHibernate.Linq.Visitors.ResultOperatorProcessers.ProcessContains.IsEmptyList and output the query as "WHERE 1 = 0".

Environment

None

Attachments

4

Activity

Show:

Alex Zaytsev 
September 8, 2014 at 11:31 AM

Close issues resolved in 3.3.3

Alex Zaytsev 
March 7, 2013 at 2:05 PM

Fixed in 3.3.x as d212c6bdeb33639e5ef602d0a7cf85e33d986248

Chris Chilvers 
March 7, 2013 at 1:16 AM

Git bisect suggests that the change for (9a6e87f0) introduced/revealed the bug.

Reverting that commit from 3.3.3CR1 does make the test pass, though I'm not sure how changing the caching key actually caused the error. So I suspect the actual error might be elsewhere and that change revealed it.

Chris Chilvers 
March 6, 2013 at 11:35 PM

Oh wait, just double checking and it did work in 3.3.1GA, stops working in 3.3.2GA, now to see if I can work out git bisect

Chris Chilvers 
March 6, 2013 at 11:18 PM

No, I tried it on 3.3.2, 3.3.1, 3.3.x and master

Fixed

Details

Assignee

Reporter

Labels

Components

Fix versions

Affects versions

Priority

Who's Looking?

Open Who's Looking?
Created March 6, 2013 at 4:40 PM
Updated September 8, 2014 at 11:31 AM
Resolved March 7, 2013 at 2:05 PM
Who's Looking?