You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2016/06/21 13:27:54 UTC

[1/2] lucene-solr:branch_5_5: SOLR-9234: srcField parameter works only when all fields are captured in the /update/json/docs endpoint

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_5_5 cfb792be2 -> adaeb490e


SOLR-9234: srcField parameter works only when all fields are captured in the /update/json/docs endpoint


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/0db382e9
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/0db382e9
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/0db382e9

Branch: refs/heads/branch_5_5
Commit: 0db382e96a3e12e073c96b3dfc8bb7b0c69c8bbd
Parents: cb42e6d
Author: Noble Paul <no...@apache.org>
Authored: Tue Jun 21 18:50:49 2016 +0530
Committer: Noble Paul <no...@apache.org>
Committed: Tue Jun 21 18:54:54 2016 +0530

----------------------------------------------------------------------
 .../apache/solr/util/RecordingJSONParser.java   | 79 ++++++++++++--------
 .../solr/common/util/TestJsonRecordReader.java  | 52 +++++++++++++
 2 files changed, 100 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0db382e9/solr/core/src/java/org/apache/solr/util/RecordingJSONParser.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/RecordingJSONParser.java b/solr/core/src/java/org/apache/solr/util/RecordingJSONParser.java
index 02ff03c..c2ec2ba 100644
--- a/solr/core/src/java/org/apache/solr/util/RecordingJSONParser.java
+++ b/solr/core/src/java/org/apache/solr/util/RecordingJSONParser.java
@@ -22,56 +22,73 @@ import java.io.Reader;
 import org.noggit.CharArr;
 import org.noggit.JSONParser;
 
-public class RecordingJSONParser extends JSONParser{
-  public RecordingJSONParser(Reader in) { super(in); }
+public class RecordingJSONParser extends JSONParser {
+  static ThreadLocal<char[]> buf = new ThreadLocal<>();
+  private final char[] bufCopy;
+  //global position is the global position at the beginning of my buffer
+  private long globalPosition = 0;
 
-  private StringBuilder sb = new StringBuilder() ;
-  private long position;
-  private boolean objectStarted =false;
+  private StringBuilder sb = new StringBuilder();
+  private boolean objectStarted = false;
+  public long lastMarkedPosition = 0;
 
 
+  public RecordingJSONParser(Reader in) {
+    super(in, getChars());
+    bufCopy = buf.get();
+    buf.remove();
+  }
 
-  @Override
-  protected int getChar() throws IOException {
-    int aChar = super.getChar();
-    if(aChar == '{') objectStarted =true;
-    if(getPosition() >position) recordChar((char) aChar); // check before adding if a pushback happened ignore
-    position= getPosition();
-    return aChar;
+  static char[] getChars() {
+    buf.set(new char[8192]);
+    return buf.get();
   }
 
   private void recordChar(int aChar) {
-    if(objectStarted)
+    if (objectStarted) {
       sb.append((char) aChar);
+    } else if (aChar == '{') {
+      sb.append((char) aChar);
+      objectStarted = true;
+    }
   }
-  private void recordStr(String s) {
-    if(objectStarted) sb.append(s);
+
+  public void resetBuf() {
+    sb = new StringBuilder();
+    objectStarted = false;
   }
 
   @Override
-  public CharArr getStringChars() throws IOException {
-    CharArr chars = super.getStringChars();
-    recordStr(chars.toString());
-    position = getPosition();
-    // if reading a String , the getStringChars do not return the closing single quote or double quote
-    //so, try to capture that
-    if(chars.getArray().length >chars.getStart()+chars.size()) {
-      char next = chars.getArray()[chars.getStart() + chars.size()];
-      if(next =='"' || next == '\'') {
-        recordChar(next);
+  public int nextEvent() throws IOException {
+    captureMissing();
+    return super.nextEvent();
+  }
+
+  private void captureMissing() {
+    long currPosition = getPosition() - globalPosition;
+    if(currPosition < 0){
+      System.out.println("ERROR");
+    }
+    if (currPosition > lastMarkedPosition) {
+      for (long i = lastMarkedPosition; i < currPosition; i++) {
+        recordChar(bufCopy[(int) i]);
       }
     }
-    return chars;
+    lastMarkedPosition = currPosition;
   }
 
-  public void resetBuf(){
-    sb = new StringBuilder();
-    objectStarted=false;
-  }
 
+  @Override
+  protected void fill() throws IOException {
+    captureMissing();
+    super.fill();
+    this.globalPosition = getPosition();
+
+  }
 
   public String getBuf() {
-    if(sb != null) return sb.toString();
+    captureMissing();
+    if (sb != null) return sb.toString();
     return null;
   }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0db382e9/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java b/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java
index 328d7b3..0677903 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java
@@ -18,9 +18,12 @@ package org.apache.solr.common.util;
 
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.util.RecordingJSONParser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.io.StringReader;
+import java.lang.invoke.MethodHandles;
 import java.lang.ref.WeakReference;
 import java.util.Arrays;
 import java.util.Collections;
@@ -30,6 +33,8 @@ import java.util.concurrent.atomic.AtomicReference;
 
 
 public class TestJsonRecordReader extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
   public void testOneLevelSplit() throws IOException {
     String json = "{\n" +
         " \"a\":\"A\" ,\n" +
@@ -117,6 +122,53 @@ public class TestJsonRecordReader extends SolrTestCaseJ4 {
 
   }
 
+  public void testSrcField() throws Exception {
+    String json = "{\n" +
+        "  \"id\" : \"123\",\n" +
+        "  \"description\": \"Testing /json/docs srcField 1\",\n" +
+        "\n" +
+        "  \"nested_data\" : {\n" +
+        "    \"nested_inside\" : \"check check check 1\"\n" +
+        "  }\n" +
+        "}";
+    String json2 =
+        " {\n" +
+            "  \"id\" : \"345\",\n" +
+            "  \"description\": \"Testing /json/docs srcField 2\",\n" +
+            "\n" +
+            "  \"nested_data\" : {\n" +
+            "    \"nested_inside\" : \"check check check 2\"\n" +
+            "  }\n" +
+            "}";
+    JsonRecordReader streamer = JsonRecordReader.getInst("/", Arrays.asList("id:/id"));
+    RecordingJSONParser parser = new RecordingJSONParser(new StringReader(json + json2));
+
+
+    streamer.streamRecords(parser, new JsonRecordReader.Handler() {
+      int count = 0;
+
+      @Override
+      public void handle(Map<String, Object> record, String path) {
+        count++;
+        String buf = parser.getBuf();
+        parser.resetBuf();
+
+        Map m = (Map) Utils.fromJSONString(buf);
+        if (count == 1) {
+          assertEquals(m.get("id"), "123");
+          assertEquals(m.get("description"), "Testing /json/docs srcField 1");
+          assertEquals(((Map) m.get("nested_data")).get("nested_inside"), "check check check 1");
+        }
+        if (count++ == 2) {
+          assertEquals(m.get("id"), "345");
+          assertEquals(m.get("description"), "Testing /json/docs srcField 2");
+          assertEquals(((Map) m.get("nested_data")).get("nested_inside"), "check check check 2");
+        }
+      }
+    });
+
+  }
+
   public void testRecursiveWildCard() throws IOException {
     String json = "{\n" +
         " \"a\":\"A\" ,\n" +


[2/2] lucene-solr:branch_5_5: Merge remote-tracking branch 'origin/branch_5_5' into branch_5_5

Posted by no...@apache.org.
Merge remote-tracking branch 'origin/branch_5_5' into branch_5_5


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/adaeb490
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/adaeb490
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/adaeb490

Branch: refs/heads/branch_5_5
Commit: adaeb490e70f656e998101c4aa9acc8fea3f874b
Parents: 0db382e cfb792b
Author: Noble Paul <no...@apache.org>
Authored: Tue Jun 21 18:56:39 2016 +0530
Committer: Noble Paul <no...@apache.org>
Committed: Tue Jun 21 18:56:39 2016 +0530

----------------------------------------------------------------------
 .../test-framework/lucene-test-framework.iml    |   1 +
 dev-tools/scripts/addVersion.py                 |  77 ++-
 dev-tools/scripts/buildAndPushRelease.py        |  93 +--
 dev-tools/scripts/scriptutil.py                 |  12 +-
 dev-tools/scripts/smokeTestRelease.py           |  19 +-
 lucene/CHANGES.txt                              |  50 +-
 .../lucene/analysis/ja/JapaneseTokenizer.java   |  11 +-
 .../analysis/ja/TestJapaneseTokenizer.java      |   9 +
 .../lucene/index/BufferedUpdatesStream.java     |  28 +-
 .../apache/lucene/index/CoalescedUpdates.java   |  14 +-
 .../apache/lucene/index/DocValuesUpdate.java    |   2 +-
 .../org/apache/lucene/search/BooleanScorer.java |   6 +-
 .../lucene/search/FilterLeafCollector.java      |   7 +-
 .../lucene/search/spans/SpanNearQuery.java      |   2 +-
 .../index/TestNumericDocValuesUpdates.java      | 112 +++-
 .../org/apache/lucene/search/TestBoolean2.java  | 155 ++++-
 .../lucene/search/TestSimpleExplanations.java   |  27 +-
 .../TestSimpleExplanationsWithFillerDocs.java   | 126 ++++
 .../search/spans/TestNearSpansOrdered.java      |  24 +-
 .../highlight/WeightedSpanTermExtractor.java    |  33 +-
 .../search/highlight/HighlighterTest.java       |  28 +
 lucene/ivy-versions.properties                  |   2 +-
 .../lucene/search/join/GlobalOrdinalsQuery.java |  27 +-
 .../join/GlobalOrdinalsWithScoreQuery.java      |  35 +-
 .../search/join/ToChildBlockJoinQuery.java      |   4 +-
 .../search/join/ToParentBlockJoinQuery.java     |   6 +-
 .../lucene/search/join/TestBlockJoin.java       |  32 +-
 .../apache/lucene/search/join/TestJoinUtil.java | 103 ++++
 .../xml/builders/NumericRangeFilterBuilder.java |  36 +-
 .../xml/builders/NumericRangeQueryBuilder.java  |  36 +-
 .../NumericRangeFilterQueryWithoutLowerTerm.xml |  37 ++
 .../xml/NumericRangeFilterQueryWithoutRange.xml |  37 ++
 .../NumericRangeFilterQueryWithoutUpperTerm.xml |  37 ++
 .../xml/NumericRangeQueryWithoutLowerTerm.xml   |  31 +
 .../xml/NumericRangeQueryWithoutRange.xml       |  31 +
 .../xml/NumericRangeQueryWithoutUpperTerm.xml   |  31 +
 .../lucene/queryparser/xml/TestCoreParser.java  |  30 +
 .../replicator/http/ReplicationService.java     |   1 +
 .../lucene/search/DocValuesRangeQuery.java      |   6 +
 .../lucene/search/TestDocValuesRangeQuery.java  |  34 ++
 lucene/site/changes/changes2html.pl             |   4 +-
 .../spatial/prefix/HeatmapFacetCounter.java     |  24 +-
 .../spatial/prefix/HeatmapFacetCounterTest.java |   9 +
 .../spatial/spatial4j/geo3d/GeoPointTest.java   |  13 +
 .../org/apache/lucene/geo3d/PlanetModel.java    |  96 +--
 .../lucene/search/BaseExplanationTestCase.java  |  43 +-
 .../search/TestBaseExplanationTestCase.java     | 131 +++++
 solr/CHANGES.txt                                | 103 ++++
 solr/bin/post                                   |   9 +-
 solr/bin/solr                                   |   2 +-
 solr/bin/solr.cmd                               |  21 +-
 solr/bin/solr.in.cmd                            |   7 +
 solr/bin/solr.in.sh                             |   7 +
 .../solrconfig.snippet.randomindexconfig.xml    |   2 +-
 .../clustering/src/test-files/log4j.properties  |   2 +-
 .../solr/handler/dataimport/JdbcDataSource.java | 117 ++--
 .../src/test-files/log4j.properties             |   2 +-
 .../handler/dataimport/TestJdbcDataSource.java  | 175 ++++++
 .../solr/client/solrj/embedded/SSLConfig.java   |   4 +-
 .../src/java/org/apache/solr/cloud/Assign.java  |   2 +-
 .../org/apache/solr/cloud/DistributedQueue.java |  96 +--
 .../org/apache/solr/cloud/LeaderElector.java    |   3 +-
 .../java/org/apache/solr/cloud/Overseer.java    |   3 +-
 .../solr/cloud/OverseerTaskProcessor.java       |   6 +-
 .../apache/solr/cloud/OverseerTaskQueue.java    |  66 +--
 .../org/apache/solr/cloud/RecoveryStrategy.java |   6 +-
 .../org/apache/solr/cloud/ZkController.java     |   3 +-
 .../solr/cloud/overseer/ZkStateWriter.java      |   6 +-
 .../src/java/org/apache/solr/core/Config.java   |   2 +-
 .../org/apache/solr/core/CoreContainer.java     |   3 +-
 .../org/apache/solr/core/ImplicitPlugins.java   |   2 +-
 .../java/org/apache/solr/core/InitParams.java   |   4 +-
 .../java/org/apache/solr/core/SolrConfig.java   |   6 +-
 .../src/java/org/apache/solr/core/SolrCore.java |  20 +
 .../java/org/apache/solr/core/SolrCores.java    |  11 -
 .../java/org/apache/solr/core/package-info.java |   2 +-
 .../handler/AnalysisRequestHandlerBase.java     |   4 +-
 .../org/apache/solr/handler/IndexFetcher.java   |  17 +-
 .../solr/handler/NestedRequestHandler.java      |   2 +-
 .../apache/solr/handler/ReplicationHandler.java |   4 +-
 .../solr/handler/StandardRequestHandler.java    |   2 +-
 .../handler/admin/ZookeeperInfoHandler.java     |   4 +
 .../handler/component/RealTimeGetComponent.java |   2 +-
 .../handler/component/ShardHandlerFactory.java  |   2 +-
 .../solr/handler/component/StatsField.java      |   2 +-
 .../handler/component/StatsValuesFactory.java   |   4 +-
 .../apache/solr/highlight/SolrHighlighter.java  |   2 +-
 .../org/apache/solr/highlight/package-info.java |   2 +-
 .../org/apache/solr/internal/csv/CSVParser.java |   2 +-
 .../internal/csv/ExtendedBufferedReader.java    |   2 +-
 .../org/apache/solr/logging/LoggerInfo.java     |   2 +-
 .../org/apache/solr/request/SimpleFacets.java   | 109 ++--
 .../response/BinaryQueryResponseWriter.java     |   2 +-
 .../solr/response/BinaryResponseWriter.java     |   5 +-
 .../solr/response/QueryResponseWriter.java      |   2 +-
 .../solr/response/QueryResponseWriterUtil.java  |   2 +-
 .../org/apache/solr/response/package-info.java  |   2 +-
 .../java/org/apache/solr/rest/RestManager.java  |   8 +-
 .../org/apache/solr/schema/CurrencyField.java   |   2 +-
 .../solr/schema/ExchangeRateProvider.java       |   2 +-
 .../org/apache/solr/schema/TrieDoubleField.java |   2 +-
 .../java/org/apache/solr/schema/TrieField.java  |   2 +-
 .../org/apache/solr/schema/TrieFloatField.java  |   2 +-
 .../org/apache/solr/schema/TrieIntField.java    |   2 +-
 .../org/apache/solr/schema/TrieLongField.java   |   2 +-
 .../java/org/apache/solr/schema/UUIDField.java  |   2 +-
 .../solr/search/CollapsingQParserPlugin.java    |   4 +-
 .../java/org/apache/solr/search/CursorMark.java |  13 +-
 .../src/java/org/apache/solr/search/DocSet.java |   2 +-
 .../java/org/apache/solr/search/DocSetBase.java |   2 +-
 .../solr/search/ExtendedDismaxQParser.java      |  37 +-
 .../apache/solr/search/HashQParserPlugin.java   |   1 +
 .../java/org/apache/solr/search/LFUCache.java   |  10 +-
 .../org/apache/solr/search/QueryResultKey.java  |   8 +-
 .../apache/solr/search/SolrIndexSearcher.java   |  18 +-
 .../apache/solr/search/SolrReturnFields.java    |  17 +-
 .../org/apache/solr/search/SortedIntDocSet.java |   4 +-
 .../apache/solr/search/ValueSourceParser.java   |   6 +-
 .../solr/search/function/FileFloatSource.java   |   2 +-
 .../TopGroupsShardRequestFactory.java           |   2 +-
 .../TopGroupsShardResponseProcessor.java        |   2 +-
 .../TopGroupsResultTransformer.java             |   2 +-
 .../solr/security/AuthenticationPlugin.java     |   3 +-
 .../org/apache/solr/servlet/HttpSolrCall.java   |  10 +-
 .../apache/solr/servlet/LoadAdminUiServlet.java |   9 +-
 .../solr/servlet/ServletInputStreamWrapper.java | 105 ++++
 .../servlet/ServletOutputStreamWrapper.java     | 140 +++++
 .../apache/solr/servlet/SolrDispatchFilter.java |  92 +++
 .../apache/solr/servlet/SolrRequestParsers.java |  40 +-
 .../solr/spelling/IndexBasedSpellChecker.java   |   2 +-
 .../solr/spelling/SpellCheckCollator.java       |   3 +
 .../org/apache/solr/update/HdfsUpdateLog.java   |  13 +-
 .../org/apache/solr/update/TransactionLog.java  |   4 +-
 .../apache/solr/update/UpdateShardHandler.java  |   4 +-
 ...aluesOrNoneFieldMutatingUpdateProcessor.java |   2 +-
 .../ConcatFieldUpdateProcessorFactory.java      |   2 +-
 ...BasedVersionConstraintsProcessorFactory.java |   4 +-
 .../DocExpirationUpdateProcessorFactory.java    |  16 +-
 .../processor/RunUpdateProcessorFactory.java    |   2 +-
 .../processor/UpdateRequestProcessorChain.java  |   2 +-
 .../org/apache/solr/util/DateMathParser.java    |  10 +-
 .../org/apache/solr/util/PivotListEntry.java    |   2 +-
 .../src/java/org/apache/solr/util/SolrCLI.java  |   6 +-
 .../org/apache/solr/util/VersionedFile.java     |   4 +-
 .../test-files/solr/collection1/conf/schema.xml |  34 +-
 .../collection1/conf/solrconfig-delpolicy1.xml  |   3 +-
 .../collection1/conf/solrconfig-delpolicy2.xml  |   3 +-
 .../conf/solrconfig-returnfields.xml            | 583 +++++++++++++++++++
 .../conf/solrconfig-spellcheckcomponent.xml     |   3 +-
 .../solrconfig.snippet.randomindexconfig.xml    |   3 +-
 .../apache/solr/TestDistributedGrouping.java    |  34 +-
 .../org/apache/solr/TestGroupingSearch.java     |  12 +-
 .../solr/cloud/BasicDistributedZk2Test.java     |   3 +-
 .../solr/cloud/DistribCursorPagingTest.java     |  10 +-
 ...DistribDocExpirationUpdateProcessorTest.java |   7 +-
 .../apache/solr/cloud/DistributedQueueTest.java |  52 +-
 .../apache/solr/cloud/RemoteQueryErrorTest.java |   2 +-
 .../apache/solr/cloud/SolrCloudExampleTest.java |   4 +
 .../apache/solr/cloud/TestCloudPivotFacet.java  |   2 +-
 .../solr/cloud/TestMiniSolrCloudCluster.java    |  25 +-
 .../cloud/TestMiniSolrCloudClusterBase.java     |  12 +-
 .../cloud/TestRandomRequestDistribution.java    |  20 +-
 .../cloud/TestSolrCloudWithKerberosAlt.java     |  12 +-
 .../apache/solr/cloud/TestStressLiveNodes.java  |   8 +-
 .../solr/cloud/overseer/ZkStateWriterTest.java  |   8 +-
 .../solr/core/CountUsageValueSourceParser.java  |   2 +-
 .../solr/core/ExitableDirectoryReaderTest.java  |   2 +-
 .../apache/solr/core/QueryResultKeyTest.java    |   4 +-
 .../test/org/apache/solr/core/SolrCoreTest.java |  99 +++-
 .../org/apache/solr/core/TestLazyCores.java     |   2 +-
 .../apache/solr/core/TestMergePolicyConfig.java |   2 +-
 .../test/org/apache/solr/core/TestNRTOpen.java  |   8 +-
 .../apache/solr/handler/CheckBackupStatus.java  |   2 +-
 .../solr/handler/TestReplicationHandler.java    | 100 +++-
 .../handler/TestReplicationHandlerBackup.java   |   4 +-
 .../apache/solr/handler/TestRestoreCore.java    |   2 +-
 .../DistributedFacetPivotLargeTest.java         |   2 +-
 .../apache/solr/request/TestFacetMethods.java   | 207 +++++++
 .../org/apache/solr/request/TestFaceting.java   |  48 +-
 .../solr/response/TestCustomDocTransformer.java |   4 +-
 .../solr/response/TestRawResponseWriter.java    |   6 +-
 .../solr/schema/AbstractCurrencyFieldTest.java  |   2 +-
 .../org/apache/solr/schema/DocValuesTest.java   |   2 +-
 .../apache/solr/schema/MyCrazyCustomField.java  |   2 +-
 .../TrieIntPrefixActsAsRangeQueryFieldType.java |   2 +-
 .../apache/solr/search/ReturnFieldsTest.java    |  10 +-
 .../solr/search/TestExtendedDismaxParser.java   | 155 +++++
 .../solr/search/TestHashQParserPlugin.java      |   4 +-
 .../apache/solr/search/TestIndexSearcher.java   |  11 +-
 .../apache/solr/search/TestMissingGroups.java   |   2 +-
 .../search/TestRandomCollapseQParserPlugin.java |   4 +-
 .../org/apache/solr/search/TestRecovery.java    |   2 +-
 .../apache/solr/search/TestReloadDeadlock.java  |   4 +-
 .../apache/solr/search/TestSearcherReuse.java   |   2 +-
 .../apache/solr/search/TestSolr4Spatial2.java   |   2 +-
 .../search/function/NvlValueSourceParser.java   |   2 +-
 .../solr/search/function/TestFunctionQuery.java |   2 +-
 .../solr/search/function/TestOrdValues.java     |   4 +-
 .../similarities/TestDFRSimilarityFactory.java  |   2 +-
 .../similarities/TestIBSimilarityFactory.java   |   2 +-
 .../TestNonDefinedSimilarityFactory.java        |   2 +-
 .../TestRuleBasedAuthorizationPlugin.java       |   5 +-
 .../solr/spelling/SpellCheckCollatorTest.java   |  30 +
 .../solr/update/DirectUpdateHandlerTest.java    |   6 +-
 .../apache/solr/update/SoftAutoCommitTest.java  |  16 +-
 .../solr/update/SolrCmdDistributorTest.java     |  12 +-
 .../update/TestDocBasedVersionConstraints.java  |  22 +-
 .../test/org/apache/solr/update/TestUpdate.java |  21 +
 .../update/processor/AtomicUpdatesTest.java     |  44 ++
 .../CloneFieldUpdateProcessorFactoryTest.java   |   6 +-
 .../RecordingUpdateProcessorFactory.java        |   4 +-
 .../solr/update/processor/ScriptEngineTest.java |   2 +-
 .../UpdateRequestProcessorFactoryTest.java      |   2 +-
 .../apache/solr/util/DateMathParserTest.java    |   4 +-
 solr/example/films/README.txt                   |   2 +
 solr/example/resources/log4j.properties         |   2 +-
 solr/licenses/commons-fileupload-1.2.1.jar.sha1 |   1 -
 solr/licenses/commons-fileupload-1.3.1.jar.sha1 |   1 +
 solr/server/resources/log4j.properties          |   2 +-
 .../scripts/cloud-scripts/log4j.properties      |   2 +-
 solr/server/scripts/cloud-scripts/zkcli.bat     |  15 +-
 solr/server/scripts/cloud-scripts/zkcli.sh      |  14 +-
 .../conf/velocity/cluster.vm                    |   2 +-
 solr/server/solr/solr.xml                       |   2 +
 .../apache/solr/common/cloud/DocCollection.java |  10 +-
 .../apache/solr/common/cloud/ZkStateReader.java |  26 +-
 .../apache/solr/common/util/JavaBinCodec.java   |  44 +-
 .../client/solrj/embedded/JettyWebappTest.java  |   4 +-
 .../solr/common/util/TestJavaBinCodec.java      |   5 +-
 .../java/org/apache/solr/SolrTestCaseJ4.java    |  45 ++
 solr/webapp/web/index.html                      |   2 +-
 solr/webapp/web/js/angular/app.js               |   3 +
 solr/webapp/web/partials/schema.html            |   2 +-
 233 files changed, 4273 insertions(+), 845 deletions(-)
----------------------------------------------------------------------