HBASE-11773 Wrong field used for protobuf construction in RegionStates (Andrey 
Stepachev)


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/4901e649
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/4901e649
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/4901e649

Branch: refs/heads/branch-1
Commit: 4901e649b64700e6796c2ba2da24ac2b906273ec
Parents: d502baf
Author: Andrew Purtell <apurt...@apache.org>
Authored: Tue Aug 19 09:23:21 2014 -0700
Committer: Andrew Purtell <apurt...@apache.org>
Committed: Tue Aug 19 09:23:21 2014 -0700

----------------------------------------------------------------------
 .../apache/hadoop/hbase/master/RegionState.java |  2 +-
 .../hadoop/hbase/master/TestRegionState.java    | 44 ++++++++++++++++++++
 2 files changed, 45 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/4901e649/hbase-client/src/main/java/org/apache/hadoop/hbase/master/RegionState.java
----------------------------------------------------------------------
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/master/RegionState.java 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/master/RegionState.java
index 3289ac1..e6aa279 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/master/RegionState.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/master/RegionState.java
@@ -265,7 +265,7 @@ public class RegionState {
   public ClusterStatusProtos.RegionState convert() {
     ClusterStatusProtos.RegionState.Builder regionState = 
ClusterStatusProtos.RegionState.newBuilder();
     ClusterStatusProtos.RegionState.State rs;
-    switch (regionState.getState()) {
+    switch (this.state) {
     case OFFLINE:
       rs = ClusterStatusProtos.RegionState.State.OFFLINE;
       break;

http://git-wip-us.apache.org/repos/asf/hbase/blob/4901e649/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRegionState.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRegionState.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRegionState.java
new file mode 100644
index 0000000..4c4df39
--- /dev/null
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRegionState.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF 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.apache.hadoop.hbase.master;
+
+import org.apache.hadoop.hbase.HRegionInfo;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.SmallTests;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.protobuf.generated.ClusterStatusProtos;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
+@Category(SmallTests.class)
+public class TestRegionState {
+  @Test
+  public void test() {
+    RegionState state1 = new RegionState(
+            new HRegionInfo(TableName.valueOf("table")), 
RegionState.State.OPENING);
+    ClusterStatusProtos.RegionState protobuf1 = state1.convert();
+    RegionState state2 = RegionState.convert(protobuf1);
+    ClusterStatusProtos.RegionState protobuf2 = state1.convert();
+
+    assertEquals(state1, state2);
+    assertEquals(protobuf1, protobuf2);
+  }
+}

Reply via email to