Author: mgrigorov
Date: Fri Dec 16 14:52:25 2011
New Revision: 1215164
URL: http://svn.apache.org/viewvc?rev=1215164&view=rev
Log:
WICKET-4301
ByteArrayResource throws error if data is null
Modified:
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/request/resource/DynamicImageResource.java
wicket/branches/wicket-1.5.x/wicket-core/src/test/java/org/apache/wicket/request/resource/ByteArrayResourceTest.java
Modified:
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java?rev=1215164&r1=1215163&r2=1215164&view=diff
==============================================================================
---
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
(original)
+++
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
Fri Dec 16 14:52:25 2011
@@ -21,6 +21,8 @@ import java.net.URLConnection;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.util.time.Time;
+import javax.servlet.http.HttpServletResponse;
+
/**
* An {@link IResource} for byte arrays. The byte array can be static - passed
to the constructor,
* or dynamic - by overriding
@@ -119,32 +121,35 @@ public class ByteArrayResource extends A
final byte[] data = getData(attributes);
if (data == null)
{
- throw new WicketRuntimeException("ByteArrayResource's
data cannot be 'null'.");
+ response.setError(HttpServletResponse.SC_NOT_FOUND);
}
- response.setContentLength(data.length);
-
- if (response.dataNeedsToBeWritten(attributes))
+ else
{
- if (filename != null)
- {
- response.setFileName(filename);
-
response.setContentDisposition(ContentDisposition.ATTACHMENT);
- }
- else
- {
-
response.setContentDisposition(ContentDisposition.INLINE);
- }
+ response.setContentLength(data.length);
- response.setWriteCallback(new WriteCallback()
+ if (response.dataNeedsToBeWritten(attributes))
{
- @Override
- public void writeData(final Attributes
attributes)
+ if (filename != null)
+ {
+ response.setFileName(filename);
+
response.setContentDisposition(ContentDisposition.ATTACHMENT);
+ }
+ else
{
- attributes.getResponse().write(data);
+
response.setContentDisposition(ContentDisposition.INLINE);
}
- });
- configureResponse(response, attributes);
+ response.setWriteCallback(new WriteCallback()
+ {
+ @Override
+ public void writeData(final Attributes
attributes)
+ {
+
attributes.getResponse().write(data);
+ }
+ });
+
+ configureResponse(response, attributes);
+ }
}
return response;
Modified:
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/request/resource/DynamicImageResource.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/request/resource/DynamicImageResource.java?rev=1215164&r1=1215163&r2=1215164&view=diff
==============================================================================
---
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/request/resource/DynamicImageResource.java
(original)
+++
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/request/resource/DynamicImageResource.java
Fri Dec 16 14:52:25 2011
@@ -167,8 +167,9 @@ public abstract class DynamicImageResour
attributes.getResponse().write(imageData);
}
});
+
+ configureResponse(response, attributes);
}
- configureResponse(response, attributes);
}
return response;
Modified:
wicket/branches/wicket-1.5.x/wicket-core/src/test/java/org/apache/wicket/request/resource/ByteArrayResourceTest.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.5.x/wicket-core/src/test/java/org/apache/wicket/request/resource/ByteArrayResourceTest.java?rev=1215164&r1=1215163&r2=1215164&view=diff
==============================================================================
---
wicket/branches/wicket-1.5.x/wicket-core/src/test/java/org/apache/wicket/request/resource/ByteArrayResourceTest.java
(original)
+++
wicket/branches/wicket-1.5.x/wicket-core/src/test/java/org/apache/wicket/request/resource/ByteArrayResourceTest.java
Fri Dec 16 14:52:25 2011
@@ -27,6 +27,8 @@ import org.apache.wicket.request.http.We
import org.apache.wicket.request.resource.IResource.Attributes;
import org.junit.Test;
+import javax.servlet.http.HttpServletResponse;
+
/**
* Unit tests for {@link ByteArrayResource}
*/
@@ -131,4 +133,18 @@ public class ByteArrayResourceTest exten
tester.startResource(finalResortOctetStream);
assertEquals("application/octet-stream",
tester.getLastResponse().getContentType());
}
+
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-4301
+ *
+ * Verify that HttpServletResponse#SC_NOT_FOUND is returned if there is
no data.
+ */
+ @Test
+ public void noData() {
+ ByteArrayResource resource = new
ByteArrayResource("text/plain");
+ tester.startResource(resource);
+
+ assertEquals(HttpServletResponse.SC_NOT_FOUND,
tester.getLastResponse().getStatus());
+ assertEquals(0,
tester.getLastResponse().getBinaryContent().length);
+ }
}