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


Reply via email to