From 65fba0451d6c83c06db8f570296eae41f54f1e56 Mon Sep 17 00:00:00 2001 From: Yonik Seeley Date: Fri, 26 Oct 2012 02:02:46 +0000 Subject: [PATCH] SOLR-3938: prepareCommit command omits commitData git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/branches/branch_4x@1402374 13f79535-47bb-0310-9956-ffa450edef68 (cherry picked from commit 6ff52997fe4430255ff6a16615e520bf5ad981f8) Conflicts: solr/CHANGES.txt --- .../solr/update/DirectUpdateHandler2.java | 6 +++++- .../solr/handler/TestReplicationHandler.java | 17 ++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java index d6906146d75..18654d63f39 100644 --- a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java +++ b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java @@ -447,7 +447,11 @@ public void prepareCommit(CommitUpdateCommand cmd) throws IOException { log.info("start "+cmd); RefCounted iw = solrCoreState.getIndexWriter(core); try { - iw.get().prepareCommit(); + final Map commitData = new HashMap(); + commitData.put(SolrIndexWriter.COMMIT_TIME_MSEC_KEY, + String.valueOf(System.currentTimeMillis())); + + iw.get().prepareCommit(commitData); } finally { iw.decref(); } diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java index 1df858caafc..39ada38b249 100644 --- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java +++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java @@ -522,6 +522,17 @@ private void doTestSnapPullWithMasterUrl() throws Exception { for (int i = 0; i < nDocs; i++) index(masterClient, "id", i, "name", "name = " + i); + // make sure prepareCommit doesn't mess up commit (SOLR-3938) + // todo: make SolrJ easier to pass arbitrary params to + String masterUrl = "http://127.0.0.1:" + masterJetty.getLocalPort() + "/solr/update?prepareCommit=true"; + URL url = new URL(masterUrl); + InputStream stream = url.openStream(); + try { + stream.close(); + } catch (IOException e) { + //e.printStackTrace(); + } + masterClient.commit(); NamedList masterQueryRsp = rQuery(nDocs, "*:*", masterClient); @@ -529,10 +540,10 @@ private void doTestSnapPullWithMasterUrl() throws Exception { assertEquals(nDocs, masterQueryResult.getNumFound()); // snappull - String masterUrl = "http://127.0.0.1:" + slaveJetty.getLocalPort() + "/solr/replication?command=fetchindex&masterUrl="; + masterUrl = "http://127.0.0.1:" + slaveJetty.getLocalPort() + "/solr/replication?command=fetchindex&masterUrl="; masterUrl += "http://127.0.0.1:" + masterJetty.getLocalPort() + "/solr/replication"; - URL url = new URL(masterUrl); - InputStream stream = url.openStream(); + url = new URL(masterUrl); + stream = url.openStream(); try { stream.close(); } catch (IOException e) {