Skip to content

Commit

Permalink
Merge pull request #11266 from brwe/npe-commitstats
Browse files Browse the repository at this point in the history
fix NPE when streaming commit stats
  • Loading branch information
brwe committed May 21, 2015
2 parents 332e50e + 4bdf8aa commit 17eec9d
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/main/java/org/elasticsearch/index/engine/CommitStats.java
Expand Up @@ -94,7 +94,7 @@ public void readFrom(StreamInput in) throws IOException {
}
userData = builder.immutableMap();
generation = in.readLong();
id = in.readString();
id = in.readOptionalString();
numDocs = in.readInt();
}

Expand All @@ -106,7 +106,7 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeString(entry.getValue());
}
out.writeLong(generation);
out.writeString(id);
out.writeOptionalString(id);
out.writeInt(numDocs);
}

Expand Down
52 changes: 52 additions & 0 deletions src/test/java/org/elasticsearch/index/engine/CommitStatsTests.java
@@ -0,0 +1,52 @@
/*
* Licensed to Elasticsearch under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/


package org.elasticsearch.index.engine;

import org.apache.lucene.index.SegmentInfos;
import org.elasticsearch.common.io.stream.InputStreamStreamInput;
import org.elasticsearch.common.io.stream.OutputStreamStreamOutput;
import org.elasticsearch.test.ElasticsearchTestCase;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

import static org.elasticsearch.test.VersionUtils.randomVersion;


public class CommitStatsTests extends ElasticsearchTestCase {
public void testStreamingWithNullId() throws IOException {
SegmentInfos segmentInfos = new SegmentInfos();
CommitStats commitStats = new CommitStats(segmentInfos);
org.elasticsearch.Version targetNodeVersion = randomVersion(random());

ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
OutputStreamStreamOutput out = new OutputStreamStreamOutput(outBuffer);
out.setVersion(targetNodeVersion);
commitStats.writeTo(out);

ByteArrayInputStream inBuffer = new ByteArrayInputStream(outBuffer.toByteArray());
InputStreamStreamInput in = new InputStreamStreamInput(inBuffer);
in.setVersion(targetNodeVersion);
CommitStats readCommitStats = CommitStats.readCommitStatsFrom(in);
assertNull(readCommitStats.getId());
}
}

0 comments on commit 17eec9d

Please sign in to comment.