Author: lindner
Date: Mon May 9 05:08:46 2011
New Revision: 1100888
URL: http://svn.apache.org/viewvc?rev=1100888&view=rev
Log:
SHINDIG-1527 | Replace NPE with proper protocol error
Modified:
shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/BaseRequestItem.java
shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/BaseRequestItemTest.java
Modified:
shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/BaseRequestItem.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/BaseRequestItem.java?rev=1100888&r1=1100887&r2=1100888&view=diff
==============================================================================
---
shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/BaseRequestItem.java
(original)
+++
shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/BaseRequestItem.java
Mon May 9 05:08:46 2011
@@ -198,7 +198,11 @@ public class BaseRequestItem implements
public <T> T getTypedParameter(String parameterName, Class<T> dataTypeClass)
{
try {
- return converter.convertToObject(getParameter(parameterName),
dataTypeClass);
+ String json = getParameter(parameterName);
+ if (json == null) {
+ throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST,
"missing data for " + parameterName);
+ }
+ return converter.convertToObject(json, dataTypeClass);
} catch (RuntimeException e) {
if (e.getCause() instanceof JSONException)
throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST,
e.getMessage());
Modified:
shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/BaseRequestItemTest.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/BaseRequestItemTest.java?rev=1100888&r1=1100887&r2=1100888&view=diff
==============================================================================
---
shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/BaseRequestItemTest.java
(original)
+++
shindig/trunk/java/common/src/test/java/org/apache/shindig/protocol/BaseRequestItemTest.java
Mon May 9 05:08:46 2011
@@ -115,6 +115,11 @@ public class BaseRequestItemTest extends
assertEquals(1234, input.id);
}
+ @Test(expected = ProtocolException.class)
+ public void testGetTypedParameterEmpty() throws Exception {
+ request.getTypedParameter("empty", InputData.class);
+ }
+
@Test
public void testGetParameters() throws Exception {
request.setParameter("anykey", "{name: 'Bob', id: '1234'}");