Hi, your commit is likely to fail when we start to restructure directory layouts. Tests should (whenever possible) always use the classpath to find the files in test-files (which is part of the classpath). Attached is a patch with the "recommended way". I suggest to fix this. ExternalPaths.SOURCE_HOME is unused in Solr test, the constant is just a relict and only used internally on setup of test infrastructure. Real tests should not use it.
There are more usages of this constant in test with "absolute" paths (including "contrib/foobar/src/test-files" to the contrib modules, I will open issue to fix those. Uwe ----- Uwe Schindler H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de eMail: u...@thetaphi.de > -----Original Message----- > From: no...@apache.org [mailto:no...@apache.org] > Sent: Saturday, February 22, 2014 7:19 AM > To: comm...@lucene.apache.org > Subject: svn commit: r1570793 - in /lucene/dev/trunk/solr/solrj/src: > java/org/apache/solr/client/solrj/request/JavaBinUpdateRequestCodec.java > test-files/solrj/updateReq_4_5.bin > test/org/apache/solr/client/solrj/request/TestUpdateRequestCodec.java > > Author: noble > Date: Sat Feb 22 06:19:16 2014 > New Revision: 1570793 > > URL: http://svn.apache.org/r1570793 > Log: > SOLR-5762 broke backward compatibility of Javabin format > > Added: > lucene/dev/trunk/solr/solrj/src/test-files/solrj/updateReq_4_5.bin (with > props) > Modified: > > lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/Ja > vaBinUpdateRequestCodec.java > > lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/T > estUpdateRequestCodec.java > > Modified: > lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/Ja > vaBinUpdateRequestCodec.java > URL: > http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apa > che/solr/client/solrj/request/JavaBinUpdateRequestCodec.java?rev=157079 > 3&r1=1570792&r2=1570793&view=diff > ========================================================== > ==================== > --- > lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/request/Ja > vaBinUpdateRequestCodec.java (original) > +++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/re > +++ quest/JavaBinUpdateRequestCodec.java Sat Feb 22 06:19:16 2014 > @@ -184,7 +184,13 @@ public class JavaBinUpdateRequestCodec { > delByIdMap = (Map<String,Map<String,Object>>) > namedList[0].get("delByIdMap"); > delByQ = (List<String>) namedList[0].get("delByQ"); > doclist = (List) namedList[0].get("docs"); > - docMap = (List<Entry<SolrInputDocument,Map<Object,Object>>>) > namedList[0].get("docsMap"); > + Object docsMapObj = namedList[0].get("docsMap"); > + > + if (docsMapObj instanceof Map) {//SOLR-5762 > + docMap = new ArrayList(((Map)docsMapObj).entrySet()); > + } else { > + docMap = (List<Entry<SolrInputDocument, Map<Object, Object>>>) > docsMapObj; > + } > > > // we don't add any docs, because they were already processed > > Added: lucene/dev/trunk/solr/solrj/src/test-files/solrj/updateReq_4_5.bin > URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test- > files/solrj/updateReq_4_5.bin?rev=1570793&view=auto > ========================================================== > ==================== > Binary file - no diff available. > > Modified: > lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/T > estUpdateRequestCodec.java > URL: > http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apa > che/solr/client/solrj/request/TestUpdateRequestCodec.java?rev=1570793&r > 1=1570792&r2=1570793&view=diff > ========================================================== > ==================== > --- > lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/T > estUpdateRequestCodec.java (original) > +++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/re > +++ quest/TestUpdateRequestCodec.java Sat Feb 22 06:19:16 2014 > @@ -18,6 +18,9 @@ package org.apache.solr.client.solrj.req > > import java.io.ByteArrayInputStream; > import java.io.ByteArrayOutputStream; > +import java.io.File; > +import java.io.FileInputStream; > +import java.io.FileOutputStream; > import java.io.IOException; > import java.util.ArrayList; > import java.util.Collection; > @@ -31,6 +34,7 @@ import junit.framework.Assert; import > org.apache.lucene.util.LuceneTestCase; > import org.apache.solr.common.SolrInputDocument; > import org.apache.solr.common.SolrInputField; > +import org.apache.solr.util.ExternalPaths; > import org.junit.Test; > > /** > @@ -160,6 +164,75 @@ public class TestUpdateRequestCodec exte > > > > + public void testBackCompat4_5() throws IOException { > + > + UpdateRequest updateRequest = new UpdateRequest(); > + updateRequest.deleteById("*:*"); > + updateRequest.deleteById("id:5"); > + updateRequest.deleteByQuery("2*"); > + updateRequest.deleteByQuery("1*"); > + updateRequest.setParam("a", "b"); > + SolrInputDocument doc = new SolrInputDocument(); > + doc.addField("id", 1); > + doc.addField("desc", "one", 2.0f); > + doc.addField("desc", "1"); > + updateRequest.add(doc); > + > + doc = new SolrInputDocument(); > + doc.addField("id", 2); > + doc.setDocumentBoost(10.0f); > + doc.addField("desc", "two", 3.0f); > + doc.addField("desc", "2"); > + updateRequest.add(doc); > + > + doc = new SolrInputDocument(); > + doc.addField("id", 3); > + doc.addField("desc", "three", 3.0f); > + doc.addField("desc", "3"); > + updateRequest.add(doc); > + > + doc = new SolrInputDocument(); > + Collection<String> foobar = new HashSet<String>(); > + foobar.add("baz1"); > + foobar.add("baz2"); > + doc.addField("foobar",foobar); > + updateRequest.add(doc); > + > + updateRequest.deleteById("2"); > + updateRequest.deleteByQuery("id:3"); > + > + > + > + FileInputStream is = new FileInputStream(new > File(ExternalPaths.SOURCE_HOME, "solrj/src/test- > files/solrj/updateReq_4_5.bin")); > + UpdateRequest updateUnmarshalled = new > JavaBinUpdateRequestCodec().unmarshal(is, new > JavaBinUpdateRequestCodec.StreamingUpdateHandler() { > + @Override > + public void update(SolrInputDocument document, UpdateRequest req, > Integer commitWithin, Boolean override) { > + if(commitWithin == null ){ > + req.add(document); > + } > + System.err.println("Doc" + document + " > ,commitWithin:"+commitWithin+ " , override:"+ override); > + } > + }); > + > + System.err.println(updateUnmarshalled.getDocumentsMap()); > + System.err.println(updateUnmarshalled.getDocuments()); > + > + for (int i = 0; i < updateRequest.getDocuments().size(); i++) { > + SolrInputDocument inDoc = updateRequest.getDocuments().get(i); > + SolrInputDocument outDoc = > updateUnmarshalled.getDocuments().get(i); > + compareDocs("doc#"+i, inDoc, outDoc); > + } > + Assert.assertEquals(updateUnmarshalled.getDeleteById().get(0) , > + updateRequest.getDeleteById().get(0)); > + Assert.assertEquals(updateUnmarshalled.getDeleteQuery().get(0) , > + updateRequest.getDeleteQuery().get(0)); > + > + assertEquals("b", updateUnmarshalled.getParams().get("a")); > + is.close(); > + } > + > + > + > private void compareDocs(String m, > SolrInputDocument expectedDoc, > SolrInputDocument actualDoc) {
useClassloader-SOLR-5762.patch
Description: Binary data
--------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org