Author: jbq Date: Mon Apr 16 01:49:54 2007 New Revision: 529171 URL: http://svn.apache.org/viewvc?view=rev&rev=529171 Log: WICKET-473 Allow IResourceStream.length() to return -1
Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/IResourceStream.java incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/WebExternalResourceStream.java incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java?view=diff&rev=529171&r1=529170&r2=529171 ============================================================================== --- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java (original) +++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestTarget.java Mon Apr 16 01:49:54 2007 @@ -178,8 +178,12 @@ response.detectContentType(requestCycle, requestCycle.getRequest().getRelativeURL()); } - // and the content length - response.setContentLength((int)resourceStream.length()); + // WICKET-473 Allow IResourceStream.length() to return -1 + if (resourceStream.length() >= 0) + { + // and the content length + response.setContentLength(resourceStream.length()); + } // and content disposition if any String file = getFileName(); Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/IResourceStream.java URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/IResourceStream.java?view=diff&rev=529171&r1=529170&r2=529171 ============================================================================== --- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/IResourceStream.java (original) +++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/IResourceStream.java Mon Apr 16 01:49:54 2007 @@ -57,7 +57,7 @@ /** * Gets the size of this resource * - * @return The size of this resource in the number of bytes + * @return The size of this resource in the number of bytes, or -1 if unknown */ long length(); Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/WebExternalResourceStream.java URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/WebExternalResourceStream.java?view=diff&rev=529171&r1=529170&r2=529171 ============================================================================== --- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/WebExternalResourceStream.java (original) +++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/resource/WebExternalResourceStream.java Mon Apr 16 01:49:54 2007 @@ -70,7 +70,7 @@ */ public long length() { - throw new WicketRuntimeException("Not implemented"); + return -1; } public void close() throws IOException Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java?view=diff&rev=529171&r1=529170&r2=529171 ============================================================================== --- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java (original) +++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java Mon Apr 16 01:49:54 2007 @@ -56,20 +56,23 @@ cycle.setRequestTarget(rt); tester.processRequestCycle(cycle); assertTrue(getContentType().startsWith("text/html")); - // FIXME WebExternalResourceRequestTarget does not set Content-Length + // WebExternalResourceRequestTarget does not set Content-Length // assertEquals(23, getContentLength()); } // FIXME WebExternalResourceStream does not implement length() - public void bugTestWebExternalResource() throws Exception + public void testWebExternalResource() throws Exception { WebExternalResourceStream resource = new WebExternalResourceStream("/index.html"); ResourceStreamRequestTarget rt = new ResourceStreamRequestTarget(resource); tester.setupRequestAndResponse(); + // We fake the browser URL, otherwise Wicket doesn't know the requested URL and cannot guess the Content-Type + tester.getServletRequest().setPath("/index.html"); WebRequestCycle cycle = tester.createRequestCycle(); cycle.setRequestTarget(rt); tester.processRequestCycle(cycle); assertTrue(getContentType().startsWith("text/html")); - assertEquals(23, getContentLength()); + // WebExternalResourceStream does not set Content-Length + // assertEquals(23, getContentLength()); } }