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 2013/01/01 22:53:10 UTC
svn commit: r1427568 -
/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/
Author: apurtell
Date: Tue Jan 1 21:53:10 2013
New Revision: 1427568
URL: http://svn.apache.org/viewvc?rev=1427568&view=rev
Log:
HBASE-7464. [REST] Sending HTML for errors is unhelpful
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ExistsResource.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RootResource.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ScannerInstanceResource.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ScannerResource.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/SchemaResource.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterStatusResource.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterVersionResource.java
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Constants.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Constants.java?rev=1427568&r1=1427567&r2=1427568&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Constants.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/Constants.java Tue Jan 1 21:53:10 2013
@@ -36,4 +36,6 @@ public interface Constants {
public static final String MIMETYPE_BINARY = "application/octet-stream";
public static final String MIMETYPE_PROTOBUF = "application/x-protobuf";
public static final String MIMETYPE_JSON = "application/json";
+
+ public static final String CRLF = "\r\n";
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ExistsResource.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ExistsResource.java?rev=1427568&r1=1427567&r2=1427568&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ExistsResource.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ExistsResource.java Tue Jan 1 21:53:10 2013
@@ -24,7 +24,6 @@ import java.io.IOException;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.CacheControl;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
@@ -58,10 +57,14 @@ public class ExistsResource extends Reso
public Response get(final @Context UriInfo uriInfo) {
try {
if (!tableResource.exists()) {
- throw new WebApplicationException(Response.Status.NOT_FOUND);
+ return Response.status(Response.Status.NOT_FOUND)
+ .type(MIMETYPE_TEXT).entity("Not found" + CRLF)
+ .build();
}
} catch (IOException e) {
- throw new WebApplicationException(Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
ResponseBuilder response = Response.ok();
response.cacheControl(cacheControl);
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java?rev=1427568&r1=1427567&r2=1427568&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java Tue Jan 1 21:53:10 2013
@@ -29,7 +29,6 @@ import org.apache.hadoop.hbase.rest.mode
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
@@ -74,9 +73,12 @@ public class MultiRowResource extends Re
rowSpec.setMaxVersions(this.versions);
}
- ResultGenerator generator = ResultGenerator.fromRowSpec(this.tableResource.getName(), rowSpec, null);
+ ResultGenerator generator =
+ ResultGenerator.fromRowSpec(this.tableResource.getName(), rowSpec, null);
if (!generator.hasNext()) {
- throw new WebApplicationException(Response.Status.NOT_FOUND);
+ return Response.status(Response.Status.NOT_FOUND)
+ .type(MIMETYPE_TEXT).entity("Not found" + CRLF)
+ .build();
}
KeyValue value = null;
@@ -93,8 +95,9 @@ public class MultiRowResource extends Re
return Response.ok(model).build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java?rev=1427568&r1=1427567&r2=1427568&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java Tue Jan 1 21:53:10 2013
@@ -25,7 +25,6 @@ import java.util.Map;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.CacheControl;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
@@ -90,11 +89,14 @@ public class RegionsResource extends Res
return response.build();
} catch (TableNotFoundException e) {
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(Response.Status.NOT_FOUND);
+ return Response.status(Response.Status.NOT_FOUND)
+ .type(MIMETYPE_TEXT).entity("Not found" + CRLF)
+ .build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RootResource.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RootResource.java?rev=1427568&r1=1427567&r2=1427568&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RootResource.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RootResource.java Tue Jan 1 21:53:10 2013
@@ -26,7 +26,6 @@ import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.CacheControl;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
@@ -82,8 +81,9 @@ public class RootResource extends Resour
return response.build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java?rev=1427568&r1=1427567&r2=1427568&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java Tue Jan 1 21:53:10 2013
@@ -30,7 +30,6 @@ import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Response;
@@ -41,6 +40,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.TableNotFoundException;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.HTableInterface;
import org.apache.hadoop.hbase.client.HTablePool;
@@ -89,7 +89,9 @@ public class RowResource extends Resourc
ResultGenerator generator =
ResultGenerator.fromRowSpec(tableResource.getName(), rowspec, null);
if (!generator.hasNext()) {
- throw new WebApplicationException(Response.Status.NOT_FOUND);
+ return Response.status(Response.Status.NOT_FOUND)
+ .type(MIMETYPE_TEXT).entity("Not found" + CRLF)
+ .build();
}
int count = 0;
CellSetModel model = new CellSetModel();
@@ -112,10 +114,21 @@ public class RowResource extends Resourc
model.addRow(rowModel);
servlet.getMetrics().incrementSucessfulGetRequests(1);
return Response.ok(model).build();
- } catch (IOException e) {
- servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ } catch (RuntimeException e) {
+ servlet.getMetrics().incrementFailedPutRequests(1);
+ if (e.getCause() instanceof TableNotFoundException) {
+ return Response.status(Response.Status.NOT_FOUND)
+ .type(MIMETYPE_TEXT).entity("Not found" + CRLF)
+ .build();
+ }
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
+ } catch (Exception e) {
+ servlet.getMetrics().incrementFailedPutRequests(1);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
@@ -129,13 +142,17 @@ public class RowResource extends Resourc
// doesn't make sense to use a non specific coordinate as this can only
// return a single cell
if (!rowspec.hasColumns() || rowspec.getColumns().length > 1) {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
try {
ResultGenerator generator =
ResultGenerator.fromRowSpec(tableResource.getName(), rowspec, null);
if (!generator.hasNext()) {
- throw new WebApplicationException(Response.Status.NOT_FOUND);
+ return Response.status(Response.Status.NOT_FOUND)
+ .type(MIMETYPE_TEXT).entity("Not found" + CRLF)
+ .build();
}
KeyValue value = generator.next();
ResponseBuilder response = Response.ok(value.getValue());
@@ -144,15 +161,18 @@ public class RowResource extends Resourc
return response.build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
Response update(final CellSetModel model, final boolean replace) {
servlet.getMetrics().incrementRequests(1);
if (servlet.isReadOnly()) {
- throw new WebApplicationException(Response.Status.FORBIDDEN);
+ return Response.status(Response.Status.FORBIDDEN)
+ .type(MIMETYPE_TEXT).entity("Forbidden" + CRLF)
+ .build();
}
if (CHECK_PUT.equalsIgnoreCase(check)) {
@@ -174,7 +194,9 @@ public class RowResource extends Resourc
key = rowspec.getRow();
}
if (key == null) {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
Put put = new Put(key);
int i = 0;
@@ -186,7 +208,9 @@ public class RowResource extends Resourc
col = null;
}
if (col == null) {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
byte [][] parts = KeyValue.parseColumn(col);
if (parts.length == 2 && parts[1].length > 0) {
@@ -208,8 +232,9 @@ public class RowResource extends Resourc
return response.build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedPutRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
} finally {
if (table != null) try {
table.close();
@@ -222,7 +247,9 @@ public class RowResource extends Resourc
final boolean replace) {
servlet.getMetrics().incrementRequests(1);
if (servlet.isReadOnly()) {
- throw new WebApplicationException(Response.Status.FORBIDDEN);
+ return Response.status(Response.Status.FORBIDDEN)
+ .type(MIMETYPE_TEXT).entity("Forbidden" + CRLF)
+ .build();
}
HTablePool pool = servlet.getTablePool();
HTableInterface table = null;
@@ -247,7 +274,9 @@ public class RowResource extends Resourc
timestamp = Long.valueOf(vals.get(0));
}
if (column == null) {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
Put put = new Put(row);
byte parts[][] = KeyValue.parseColumn(column);
@@ -265,8 +294,9 @@ public class RowResource extends Resourc
return Response.ok().build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedPutRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
} finally {
if (table != null) try {
table.close();
@@ -323,7 +353,9 @@ public class RowResource extends Resourc
}
servlet.getMetrics().incrementRequests(1);
if (servlet.isReadOnly()) {
- throw new WebApplicationException(Response.Status.FORBIDDEN);
+ return Response.status(Response.Status.FORBIDDEN)
+ .type(MIMETYPE_TEXT).entity("Forbidden" + CRLF)
+ .build();
}
Delete delete = null;
if (rowspec.hasTimestamp())
@@ -358,8 +390,9 @@ public class RowResource extends Resourc
}
} catch (IOException e) {
servlet.getMetrics().incrementFailedDeleteRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
} finally {
if (table != null) try {
table.close();
@@ -380,7 +413,9 @@ public class RowResource extends Resourc
HTableInterface table = null;
try {
if (model.getRows().size() != 1) {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
RowModel rowModel = model.getRows().get(0);
@@ -392,7 +427,9 @@ public class RowResource extends Resourc
List<CellModel> cellModels = rowModel.getCells();
int cellModelCount = cellModels.size();
if (key == null || cellModelCount <= 1) {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
Put put = new Put(key);
@@ -412,10 +449,14 @@ public class RowResource extends Resourc
put.add(valueToPutParts[0], valueToPutParts[1], valueToPutCell
.getTimestamp(), valueToPutCell.getValue());
} else {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
} else {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
table = pool.getTable(this.tableResource.getName());
@@ -431,7 +472,9 @@ public class RowResource extends Resourc
}
return response.build();
} catch (IOException e) {
- throw new WebApplicationException(e, Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
} finally {
if (table != null) try {
table.close();
@@ -452,7 +495,9 @@ public class RowResource extends Resourc
Delete delete = null;
try {
if (model.getRows().size() != 1) {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
RowModel rowModel = model.getRows().get(0);
byte[] key = rowModel.getKey();
@@ -460,7 +505,9 @@ public class RowResource extends Resourc
key = rowspec.getRow();
}
if (key == null) {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
delete = new Delete(key);
@@ -470,14 +517,18 @@ public class RowResource extends Resourc
try {
valueToDeleteColumn = rowspec.getColumns()[0];
} catch (final ArrayIndexOutOfBoundsException e) {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
}
byte[][] parts = KeyValue.parseColumn(valueToDeleteColumn);
if (parts.length == 2 && parts[1].length > 0) {
delete.deleteColumns(parts[0], parts[1]);
} else {
- throw new WebApplicationException(Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
}
table = pool.getTable(tableResource.getName());
@@ -494,7 +545,9 @@ public class RowResource extends Resourc
}
return response.build();
} catch (IOException e) {
- throw new WebApplicationException(e, Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
} finally {
if (table != null) try {
table.close();
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ScannerInstanceResource.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ScannerInstanceResource.java?rev=1427568&r1=1427567&r2=1427568&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ScannerInstanceResource.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ScannerInstanceResource.java Tue Jan 1 21:53:10 2013
@@ -26,7 +26,6 @@ import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.CacheControl;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
@@ -54,10 +53,12 @@ public class ScannerInstanceResource ext
cacheControl.setNoTransform(false);
}
- ResultGenerator generator;
- String id;
+ ResultGenerator generator = null;
+ String id = null;
int batch = 1;
+ public ScannerInstanceResource() throws IOException { }
+
public ScannerInstanceResource(String table, String id,
ResultGenerator generator, int batch) throws IOException {
this.id = id;
@@ -73,6 +74,12 @@ public class ScannerInstanceResource ext
LOG.debug("GET " + uriInfo.getAbsolutePath());
}
servlet.getMetrics().incrementRequests(1);
+ if (generator == null) {
+ servlet.getMetrics().incrementFailedGetRequests(1);
+ return Response.status(Response.Status.NOT_FOUND)
+ .type(MIMETYPE_TEXT).entity("Not found" + CRLF)
+ .build();
+ }
CellSetModel model = new CellSetModel();
RowModel rowModel = null;
byte[] rowKey = null;
@@ -92,7 +99,9 @@ public class ScannerInstanceResource ext
servlet.getMetrics().incrementFailedDeleteRequests(1);
}
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(Response.Status.GONE);
+ return Response.status(Response.Status.GONE)
+ .type(MIMETYPE_TEXT).entity("Gone" + CRLF)
+ .build();
}
if (value == null) {
LOG.info("generator exhausted");
@@ -139,6 +148,12 @@ public class ScannerInstanceResource ext
MIMETYPE_BINARY);
}
servlet.getMetrics().incrementRequests(1);
+ if (generator == null) {
+ servlet.getMetrics().incrementFailedGetRequests(1);
+ return Response.status(Response.Status.NOT_FOUND)
+ .type(MIMETYPE_TEXT).entity("Not found" + CRLF)
+ .build();
+ }
try {
KeyValue value = generator.next();
if (value == null) {
@@ -161,7 +176,9 @@ public class ScannerInstanceResource ext
servlet.getMetrics().incrementFailedDeleteRequests(1);
}
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(Response.Status.GONE);
+ return Response.status(Response.Status.GONE)
+ .type(MIMETYPE_TEXT).entity("Gone" + CRLF)
+ .build();
}
}
@@ -172,7 +189,9 @@ public class ScannerInstanceResource ext
}
servlet.getMetrics().incrementRequests(1);
if (servlet.isReadOnly()) {
- throw new WebApplicationException(Response.Status.FORBIDDEN);
+ return Response.status(Response.Status.FORBIDDEN)
+ .type(MIMETYPE_TEXT).entity("Forbidden" + CRLF)
+ .build();
}
if (ScannerResource.delete(id)) {
servlet.getMetrics().incrementSucessfulDeleteRequests(1);
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ScannerResource.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ScannerResource.java?rev=1427568&r1=1427567&r2=1427568&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ScannerResource.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/ScannerResource.java Tue Jan 1 21:53:10 2013
@@ -31,7 +31,6 @@ import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriBuilder;
@@ -77,7 +76,9 @@ public class ScannerResource extends Res
final UriInfo uriInfo) {
servlet.getMetrics().incrementRequests(1);
if (servlet.isReadOnly()) {
- throw new WebApplicationException(Response.Status.FORBIDDEN);
+ return Response.status(Response.Status.FORBIDDEN)
+ .type(MIMETYPE_TEXT).entity("Forbidden" + CRLF)
+ .build();
}
byte[] endRow = model.hasEndRow() ? model.getEndRow() : null;
RowSpec spec = new RowSpec(model.getStartRow(), endRow,
@@ -99,19 +100,21 @@ public class ScannerResource extends Res
URI uri = builder.path(id).build();
servlet.getMetrics().incrementSucessfulPutRequests(1);
return Response.created(uri).build();
- } catch (IOException e) {
- servlet.getMetrics().incrementFailedPutRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
} catch (RuntimeException e) {
servlet.getMetrics().incrementFailedPutRequests(1);
if (e.getCause() instanceof TableNotFoundException) {
- throw new WebApplicationException(e, Response.Status.NOT_FOUND);
+ return Response.status(Response.Status.NOT_FOUND)
+ .type(MIMETYPE_TEXT).entity("Not found" + CRLF)
+ .build();
}
- throw new WebApplicationException(e, Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.BAD_REQUEST)
+ .type(MIMETYPE_TEXT).entity("Bad request" + CRLF)
+ .build();
} catch (Exception e) {
servlet.getMetrics().incrementFailedPutRequests(1);
- throw new WebApplicationException(e, Response.Status.BAD_REQUEST);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
@@ -137,11 +140,11 @@ public class ScannerResource extends Res
@Path("{scanner: .+}")
public ScannerInstanceResource getScannerInstanceResource(
- final @PathParam("scanner") String id) {
+ final @PathParam("scanner") String id) throws IOException {
ScannerInstanceResource instance = scanners.get(id);
if (instance == null) {
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(Response.Status.NOT_FOUND);
+ return new ScannerInstanceResource();
} else {
servlet.getMetrics().incrementSucessfulGetRequests(1);
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/SchemaResource.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/SchemaResource.java?rev=1427568&r1=1427567&r2=1427568&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/SchemaResource.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/SchemaResource.java Tue Jan 1 21:53:10 2013
@@ -29,7 +29,6 @@ import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.CacheControl;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
@@ -100,18 +99,23 @@ public class SchemaResource extends Reso
return response.build();
} catch (TableNotFoundException e) {
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(Response.Status.NOT_FOUND);
+ return Response.status(Response.Status.NOT_FOUND)
+ .type(MIMETYPE_TEXT).entity("Not found" + CRLF)
+ .build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
private Response replace(final byte[] name, final TableSchemaModel model,
final UriInfo uriInfo, final HBaseAdmin admin) {
if (servlet.isReadOnly()) {
- throw new WebApplicationException(Response.Status.FORBIDDEN);
+ return Response.status(Response.Status.FORBIDDEN)
+ .type(MIMETYPE_TEXT).entity("Forbidden" + CRLF)
+ .build();
}
try {
HTableDescriptor htd = new HTableDescriptor(name);
@@ -135,19 +139,24 @@ public class SchemaResource extends Reso
servlet.getMetrics().incrementSucessfulPutRequests(1);
} catch (TableExistsException e) {
// race, someone else created a table with the same name
- throw new WebApplicationException(e, Response.Status.NOT_MODIFIED);
+ return Response.status(Response.Status.NOT_MODIFIED)
+ .type(MIMETYPE_TEXT).entity("Not modified" + CRLF)
+ .build();
}
return Response.created(uriInfo.getAbsolutePath()).build();
} catch (IOException e) {
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
private Response update(final byte[] name, final TableSchemaModel model,
final UriInfo uriInfo, final HBaseAdmin admin) {
if (servlet.isReadOnly()) {
- throw new WebApplicationException(Response.Status.FORBIDDEN);
+ return Response.status(Response.Status.FORBIDDEN)
+ .type(MIMETYPE_TEXT).entity("Forbidden" + CRLF)
+ .build();
}
try {
HTableDescriptor htd = admin.getTableDescriptor(name);
@@ -165,16 +174,18 @@ public class SchemaResource extends Reso
}
}
} catch (IOException e) {
- throw new WebApplicationException(e,
- Response.Status.INTERNAL_SERVER_ERROR);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
} finally {
admin.enableTable(tableResource.getName());
}
servlet.getMetrics().incrementSucessfulPutRequests(1);
return Response.ok().build();
} catch (IOException e) {
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
@@ -190,8 +201,9 @@ public class SchemaResource extends Reso
}
} catch (IOException e) {
servlet.getMetrics().incrementFailedPutRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
@@ -240,11 +252,14 @@ public class SchemaResource extends Reso
return Response.ok().build();
} catch (TableNotFoundException e) {
servlet.getMetrics().incrementFailedDeleteRequests(1);
- throw new WebApplicationException(Response.Status.NOT_FOUND);
+ return Response.status(Response.Status.NOT_FOUND)
+ .type(MIMETYPE_TEXT).entity("Not found" + CRLF)
+ .build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedDeleteRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterStatusResource.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterStatusResource.java?rev=1427568&r1=1427567&r2=1427568&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterStatusResource.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterStatusResource.java Tue Jan 1 21:53:10 2013
@@ -24,7 +24,6 @@ import java.io.IOException;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.CacheControl;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
@@ -99,8 +98,9 @@ public class StorageClusterStatusResourc
return response.build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
}
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterVersionResource.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterVersionResource.java?rev=1427568&r1=1427567&r2=1427568&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterVersionResource.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/rest/StorageClusterVersionResource.java Tue Jan 1 21:53:10 2013
@@ -24,7 +24,6 @@ import java.io.IOException;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.CacheControl;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
@@ -71,8 +70,9 @@ public class StorageClusterVersionResour
return response.build();
} catch (IOException e) {
servlet.getMetrics().incrementFailedGetRequests(1);
- throw new WebApplicationException(e,
- Response.Status.SERVICE_UNAVAILABLE);
+ return Response.status(Response.Status.SERVICE_UNAVAILABLE)
+ .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
+ .build();
}
}
}