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

James Dyer updated SOLR-2933:
-----------------------------

    Attachment: SOLR-2933.patch

Mikhail,

I appreciate your being persistent with this one.  I apologize for not 
understanding what you were getting at the first couple times you tried to 
explain, but I think I finally have a fix.  See SOLR-2933.patch, attached.

The problem was caused by my not copying code properly from EntityProcessorBase 
to DIHCacheSupport.  This broke support for the "where" parameter for cached 
entity processors.  ("cachePk" & "cacheLookup" still work and can be used 
instead of "where" as a workaround).

Further, a shortcoming in TestCachedSqlEntityProcessor masked the problem.  
Although the primary key was not being picked up from the "where" property, the 
primary key was the first property being passed in. DIH then assumed (correctly 
in this case) the first column must be the primary key.  So the test 
(#withKeyAndLookup) would pass even though by accident.

This patch:
1. Fixes the bug in DIHCacheSupport.
2. Modifies TestCachedSqlEntityProcessor to reverse the order of one of the 
incoming documents so that the primary key is not first.
3. Changes AbstractDataImportHandlerTestCas#createMap to use a LinkedHashMap so 
that the tested order will be preserved.  The HashMap that was used prior would 
always put the primary key column before the others, even if the test specifies 
a different order, further masking the failure.

Mikhail, thank you for both pointing out my error and also the prior problems 
with the test.
                
> DIHCacheSupport ignores left side of where="xid=x.id" attribute
> ---------------------------------------------------------------
>
>                 Key: SOLR-2933
>                 URL: https://issues.apache.org/jira/browse/SOLR-2933
>             Project: Solr
>          Issue Type: Sub-task
>          Components: contrib - DataImportHandler
>    Affects Versions: 4.0
>            Reporter: Mikhail Khludnev
>            Priority: Minor
>              Labels: noob, random
>         Attachments: 
> AbstractDataImportHandlerTestCase.java-choose-map-randomly.patch, 
> SOLR-2933.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> DIHCacheSupport introduced at SOLR-2382 uses new config attributes cachePk 
> and cacheLookup. But support old one where="xid=x.id" is broken by 
> [DIHCacheSupport.<init>|http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DIHCacheSupport.java?view=markup]
>  - it never put where="" sides into the context, but it revealed by 
> [SortedMapBackedCache.<init>|http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SortedMapBackedCache.java?view=markup],
>  which takes just first column as a primary key. That's why all tests are 
> green.
> To reproduce the issue I need just reorder entry at [line 
> 219|http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestCachedSqlEntityProcessor.java?revision=1201659&view=markup]
>  and make desc first and picked up as a primary key. 
> To do that I propose to chose concrete map class randomly for all DIH test 
> cases at 
> [createMap()|http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/AbstractDataImportHandlerTestCase.java?revision=1149600&view=markup].
>  
> I'm attaching test breaking patch and seed.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to