ACCUMULO-3015 Ensure table name is serialized in RangeInputSplit.
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/f848178e Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/f848178e Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/f848178e Branch: refs/heads/master Commit: f848178e7ae675f27858aa7474974fb17b19a07f Parents: 641d42c Author: Josh Elser <els...@apache.org> Authored: Fri Jul 25 00:05:56 2014 -0400 Committer: Josh Elser <els...@apache.org> Committed: Fri Jul 25 00:05:56 2014 -0400 ---------------------------------------------------------------------- .../accumulo/core/client/mapreduce/RangeInputSplit.java | 9 +++++++++ .../accumulo/core/client/mapreduce/RangeInputSplitTest.java | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/f848178e/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java index 05316a1..15c6185 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java @@ -144,6 +144,9 @@ public class RangeInputSplit extends InputSplit implements Writable { @Override public void readFields(DataInput in) throws IOException { range.readFields(in); + if (in.readBoolean()) { + table = in.readUTF(); + } int numLocs = in.readInt(); locations = new String[numLocs]; for (int i = 0; i < numLocs; ++i) @@ -220,6 +223,12 @@ public class RangeInputSplit extends InputSplit implements Writable { @Override public void write(DataOutput out) throws IOException { range.write(out); + + out.writeBoolean(null != table); + if (null != table) { + out.writeUTF(table); + } + out.writeInt(locations.length); for (int i = 0; i < locations.length; ++i) out.writeUTF(locations[i]); http://git-wip-us.apache.org/repos/asf/accumulo/blob/f848178e/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java index 78597ac..e12090e 100644 --- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java +++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java @@ -77,7 +77,8 @@ public class RangeInputSplitTest { setting = new IteratorSetting(100, WholeRowIterator.class); setting.addOption("bar", "foo"); iterators.add(setting); - + + split.setTable("table"); split.setAuths(new Authorizations("foo")); split.setOffline(true); split.setIsolatedScan(true); @@ -103,7 +104,8 @@ public class RangeInputSplitTest { Assert.assertEquals(split.getRange(), newSplit.getRange()); Assert.assertArrayEquals(split.getLocations(), newSplit.getLocations()); - + + Assert.assertEquals(split.getTable(), newSplit.getTable()); Assert.assertEquals(split.getAuths(), newSplit.getAuths()); Assert.assertEquals(split.isOffline(), newSplit.isOffline()); Assert.assertEquals(split.isIsolatedScan(), newSplit.isOffline());