You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ns...@apache.org on 2011/10/11 04:19:06 UTC

svn commit: r1181551 - in /hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase: ipc/HRegionInterface.java regionserver/HRegionServer.java

Author: nspiegelberg
Date: Tue Oct 11 02:19:05 2011
New Revision: 1181551

URL: http://svn.apache.org/viewvc?rev=1181551&view=rev
Log:
Handle null pointer in getStoreFileList

Summary:
getStoreFileList API does not take care of an invalid regionName
being passed in. This has been handled in this diff.

Test Plan:
Build it.

Reviewed By: kannan
Reviewers: kannan, aaiyer
CC: kannan
Revert Plan:
Tags:

- begin *PUBLIC* platform impact section -
Bugzilla: #
- end platform impact -

Differential Revision: 263487

Modified:
    hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java
    hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java

Modified: hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java?rev=1181551&r1=1181550&r2=1181551&view=diff
==============================================================================
--- hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java (original)
+++ hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java Tue Oct 11 02:19:05 2011
@@ -73,7 +73,8 @@ public interface HRegionInterface extend
    */
   public HRegion [] getOnlineRegionsAsArray();
 
-  public List<String> getStoreFileList(byte[] regionName, byte[] columnFamily);
+  public List<String> getStoreFileList(byte[] regionName, byte[] columnFamily)
+    throws IllegalArgumentException;
 
   /**
    * Perform Get operation.

Modified: hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1181551&r1=1181550&r2=1181551&view=diff
==============================================================================
--- hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Tue Oct 11 02:19:05 2011
@@ -2174,8 +2174,18 @@ public class HRegionServer implements HR
     return getOnlineRegions().toArray(new HRegion[0]);
   }
 
-  public List<String> getStoreFileList(byte[] regionName, byte[] columnFamily) {
+  public List<String> getStoreFileList(byte[] regionName, byte[] columnFamily)
+    throws IllegalArgumentException {
 	  HRegion region = getOnlineRegion(regionName);
+    if (region == null) {
+      throw new IllegalArgumentException("No region : " + new String(regionName)
+          + " available");
+    }
+    Store store = region.getStore(columnFamily);
+    if (store == null) {
+      throw new IllegalArgumentException("No column family : " +
+          new String(columnFamily) + " available");
+    }
 	  List<StoreFile> storeFiles = region.getStore(columnFamily).getStorefiles();
 	  List<String> storeFileNames = new ArrayList<String>(storeFiles.size());
 	  for (StoreFile storeFile: storeFiles) {