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();
}
}