You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2010/10/07 00:28:58 UTC

svn commit: r1005279 - in /hbase/trunk: CHANGES.txt src/main/java/org/apache/hadoop/hbase/rest/ScannerResource.java src/test/java/org/apache/hadoop/hbase/rest/TestScannerResource.java

Author: apurtell
Date: Wed Oct  6 22:28:58 2010
New Revision: 1005279

URL: http://svn.apache.org/viewvc?rev=1005279&view=rev
Log:
HBASE-2907 [rest/stargate] Improve error response when trying to create a scanner on a nonexistant table

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/ScannerResource.java
    hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestScannerResource.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1005279&r1=1005278&r2=1005279&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Wed Oct  6 22:28:58 2010
@@ -976,6 +976,8 @@ Release 0.21.0 - Unreleased
    HBASE-3070  Add to hbaseadmin means of shutting down a regionserver
    HBASE-2996  Fix and clean up Maven (Lars Francke via Stack)
    HBASE-2917  Reseek directly to next row (Pranav Khaitan)
+   HBASE-2907  [rest/stargate] Improve error response when trying to create a
+               scanner on a nonexistant table
 
   NEW FEATURES
    HBASE-1961  HBase EC2 scripts

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/ScannerResource.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/ScannerResource.java?rev=1005279&r1=1005278&r2=1005279&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/ScannerResource.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/rest/ScannerResource.java Wed Oct  6 22:28:58 2010
@@ -40,6 +40,7 @@ import javax.ws.rs.core.UriInfo;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import org.apache.hadoop.hbase.TableNotFoundException;
 import org.apache.hadoop.hbase.filter.Filter;
 import org.apache.hadoop.hbase.rest.model.ScannerModel;
 
@@ -92,6 +93,11 @@ public class ScannerResource extends Res
     } catch (IOException e) {
       throw new WebApplicationException(e,
               Response.Status.SERVICE_UNAVAILABLE);
+    } catch (RuntimeException e) {
+      if (e.getCause() instanceof TableNotFoundException) {
+        throw new WebApplicationException(e, Response.Status.NOT_FOUND);
+      }
+      throw new WebApplicationException(e, Response.Status.BAD_REQUEST);
     } catch (Exception e) {
       throw new WebApplicationException(e, Response.Status.BAD_REQUEST);
     }

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestScannerResource.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestScannerResource.java?rev=1005279&r1=1005278&r2=1005279&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestScannerResource.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/rest/TestScannerResource.java Wed Oct  6 22:28:58 2010
@@ -49,6 +49,7 @@ import org.apache.hadoop.hbase.util.Byte
 
 public class TestScannerResource extends HBaseRESTClusterTestBase {
   static final String TABLE = "TestScannerResource";
+  static final String NONEXISTENT_TABLE = "ThisTableDoesNotExist";
   static final String CFA = "a";
   static final String CFB = "b";
   static final String COLUMN_1 = CFA + ":1";
@@ -265,10 +266,21 @@ public class TestScannerResource extends
     assertEquals(fullTableScan(model), expectedRows2);
   }
 
+  void doTestTableDoesNotExist() throws IOException, JAXBException {
+    ScannerModel model = new ScannerModel();
+    StringWriter writer = new StringWriter();
+    marshaller.marshal(model, writer);
+    byte[] body = Bytes.toBytes(writer.toString());
+    Response response = client.put("/" + NONEXISTENT_TABLE +
+      "/scanner", MIMETYPE_XML, body);
+    assertEquals(response.getCode(), 404);
+  }
+
   public void testScannerResource() throws Exception {
     doTestSimpleScannerXML();
     doTestSimpleScannerPB();
     doTestSimpleScannerBinary();
     doTestFullTableScan();
+    doTestTableDoesNotExist();
   }
 }