Author: jcompagner
Date: Mon May  5 01:28:21 2008
New Revision: 653350

URL: http://svn.apache.org/viewvc?rev=653350&view=rev
Log:
merged the fixes of 1.3 branch

Modified:
    
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/niceurl/NiceUrlApplication.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/SharedResourceRequestTarget.java
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategyTest.java
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatefulPage_QueryString_Result.html
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatefulPage_QueryString_SubmitResult.html
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatelessPage_QueryString_Result.html
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatelessPage_QueryString_SubmitResult.html

Modified: 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/niceurl/NiceUrlApplication.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/niceurl/NiceUrlApplication.java?rev=653350&r1=653349&r2=653350&view=diff
==============================================================================
--- 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/niceurl/NiceUrlApplication.java
 (original)
+++ 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/niceurl/NiceUrlApplication.java
 Mon May  5 01:28:21 2008
@@ -71,7 +71,7 @@
                mountBookmarkablePage("/a/nice/path/to/the/first/page", 
Page1.class);
                mountBookmarkablePage("/path/to/page2", Page2.class);
 
-               mountBookmarkablePageWithUrlCoding("/path/to/page2qpencoded/", 
Page2QP.class);
+               mountBookmarkablePageWithUrlCoding("/path/to/page2qpencoded", 
Page2QP.class);
 
                // mount a whole package at once (all bookmarkable pages,
                // the relative class name will be part of the url

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java?rev=653350&r1=653349&r2=653350&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
 Mon May  5 01:28:21 2008
@@ -384,27 +384,29 @@
                        finally
                        {
                                // Close response
-                               if (response != null)
+                               try
                                {
-                                       try
+                                       if (response != null)
                                        {
                                                response.close();
                                        }
-                                       catch (Exception e)
-                                       {
-                                               log.error("closing the buffer 
error", e);
-                                       }
                                }
-
-                               // Clean up thread local session
-                               Session.unset();
-
-                               if (externalCall)
+                               catch (Exception e)
                                {
-                                       // Clean up thread local application if 
this was an external call
-                                       // (if not, doFilter will clean it up)
-                                       Application.unset();
-                                       RequestContext.unset();
+                                       log.error("closing the buffer error", 
e);
+                               }
+                               finally
+                               {
+                                       // Clean up thread local session
+                                       Session.unset();
+
+                                       if (externalCall)
+                                       {
+                                               // Clean up thread local 
application if this was an external call
+                                               // (if not, doFilter will clean 
it up)
+                                               Application.unset();
+                                               RequestContext.unset();
+                                       }
                                }
                        }
                }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java?rev=653350&r1=653349&r2=653350&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java
 Mon May  5 01:28:21 2008
@@ -119,9 +119,9 @@
         * @throws IOException
         */
        public final void doGet(final HttpServletRequest servletRequest,
-                       final HttpServletResponse servletResponse) throws 
ServletException, IOException
+               final HttpServletResponse servletResponse) throws 
ServletException, IOException
        {
-               if (wicketFilter.doGet(servletRequest, servletResponse) == 
false) 
+               if (wicketFilter.doGet(servletRequest, servletResponse) == 
false)
                {
                        fallback(servletRequest, servletResponse);
                }
@@ -140,45 +140,51 @@
         * @throws IOException
         */
        public final void doPost(final HttpServletRequest servletRequest,
-                       final HttpServletResponse servletResponse) throws 
ServletException, IOException
+               final HttpServletResponse servletResponse) throws 
ServletException, IOException
        {
-               if (wicketFilter.doGet(servletRequest, servletResponse) == 
false) 
+               if (wicketFilter.doGet(servletRequest, servletResponse) == 
false)
                {
                        fallback(servletRequest, servletResponse);
                }
        }
 
-       private void fallback(HttpServletRequest request, HttpServletResponse 
response) throws IOException 
+       private void fallback(HttpServletRequest request, HttpServletResponse 
response)
+               throws IOException
        {
-               
+
                // The ServletWebRequest is created here to avoid code 
duplication. The getURL
-               // call doesn't depend on anything wicket specific 
+               // call doesn't depend on anything wicket specific
                ServletWebRequest req = new ServletWebRequest(request);
                String url = req.getURL();
-               
+
                // Get the relative URL we need for loading the resource from
                // the servlet context
                // NOTE: we NEED to put the '/' in front as otherwise some 
versions
                // of application servers (e.g. Jetty 5.1.x) will fail for 
requests
                // like '/mysubdir/myfile.css'
-               
+
                if ((url.length() > 0 && url.charAt(0) != '/') || url.length() 
== 0)
                {
                        url = '/' + url;
                }
-               
+
                InputStream stream = 
getServletContext().getResourceAsStream(url);
-                                               
-               if (stream == null) 
+               String mimeType = getServletContext().getMimeType(url);
+
+
+               if (stream == null)
                {
                        response.sendError(HttpServletResponse.SC_NOT_FOUND);
-               } 
-               else 
+               }
+               else
                {
+                       if (mimeType != null)
+                               response.setContentType(mimeType);
+
                        Streams.copy(stream, response.getOutputStream());
                }
        }
-       
+
        /**
         * Servlet initialization
         */

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java?rev=653350&r1=653349&r2=653350&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java
 Mon May  5 01:28:21 2008
@@ -113,10 +113,6 @@
         */
        protected void appendParameters(AppendingStringBuffer url, Map 
parameters)
        {
-               if (!url.endsWith("/"))
-               {
-                       url.append("/");
-               }
                if (parameters != null && parameters.size() > 0)
                {
                        final Iterator entries;
@@ -151,14 +147,14 @@
                if (requestParameters.getInterfaceName() != null)
                {
                        return new 
BookmarkableListenerInterfaceRequestTarget(pageMapName,
-                                       (Class)bookmarkablePageClassRef.get(), 
parameters, requestParameters
-                                                       .getComponentPath(), 
requestParameters.getInterfaceName(),
-                                       requestParameters.getVersionNumber());
+                               (Class)bookmarkablePageClassRef.get(), 
parameters,
+                               requestParameters.getComponentPath(), 
requestParameters.getInterfaceName(),
+                               requestParameters.getVersionNumber());
                }
                else
                {
-                       return new BookmarkablePageRequestTarget(pageMapName, 
(Class)bookmarkablePageClassRef
-                                       .get(), parameters);
+                       return new BookmarkablePageRequestTarget(pageMapName,
+                               (Class)bookmarkablePageClassRef.get(), 
parameters);
                }
        }
 

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/SharedResourceRequestTarget.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/SharedResourceRequestTarget.java?rev=653350&r1=653349&r2=653350&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/SharedResourceRequestTarget.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/SharedResourceRequestTarget.java
 Mon May  5 01:28:21 2008
@@ -147,12 +147,15 @@
                                        }
                                        String path = resourceKey.substring(ix 
+ 1);
 
-                                       PackageResource packageResource = 
PackageResource.get(scope, path);
-                                       if (sharedResources.get(resourceKey) == 
null)
+                                       if (PackageResource.exists(scope, path, 
null, null))
                                        {
-                                               sharedResources.add(scope, 
path, null, null, packageResource);
+                                               PackageResource packageResource 
= PackageResource.get(scope, path);
+                                               if 
(sharedResources.get(resourceKey) == null)
+                                               {
+                                                       
sharedResources.add(scope, path, null, null, packageResource);
+                                               }
+                                               resource = packageResource;
                                        }
-                                       resource = packageResource;
                                }
                                catch (Exception e)
                                {

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategyTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategyTest.java?rev=653350&r1=653349&r2=653350&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategyTest.java
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategyTest.java
 Mon May  5 01:28:21 2008
@@ -30,8 +30,7 @@
  */
 public class QueryStringUrlCodingStrategyTest extends WicketTestCase
 {
-       private static final Logger log = LoggerFactory
-                       .getLogger(QueryStringUrlCodingStrategyTest.class);
+       private static final Logger log = 
LoggerFactory.getLogger(QueryStringUrlCodingStrategyTest.class);
 
        /**
         * Tests mounting.
@@ -39,7 +38,7 @@
        public void testQS()
        {
                IRequestTargetUrlCodingStrategy ucs = new 
QueryStringUrlCodingStrategy("/mount/point",
-                               TestPage.class);
+                       TestPage.class);
                PageParameters params = new PageParameters();
                params.add("a", "1");
                params.add("a", "2");
@@ -47,6 +46,6 @@
                IRequestTarget rt = new 
BookmarkablePageRequestTarget(TestPage.class, params);
                String path = ucs.encode(rt).toString();
                log.debug(path);
-               assertEquals("mount/point/?a=1&a=2&b=1", path);
+               assertEquals("mount/point?a=1&a=2&b=1", path);
        }
 }

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatefulPage_QueryString_Result.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatefulPage_QueryString_Result.html?rev=653350&r1=653349&r2=653350&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatefulPage_QueryString_Result.html
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatefulPage_QueryString_Result.html
 Mon May  5 01:28:21 2008
@@ -22,7 +22,7 @@
 
 
                <p>
-               <form 
action="statefull/?wicket:interface=%3A0%3Astatelessform%3A%3AIFormSubmitListener%3A%3A"
 wicket:id="statelessform" method="post" id="statelessform1"><div 
style="display:none"><input type="hidden" name="statelessform1_hf_0" 
id="statelessform1_hf_0" /></div>
+               <form 
action="statefull?wicket:interface=%3A0%3Astatelessform%3A%3AIFormSubmitListener%3A%3A"
 wicket:id="statelessform" method="post" id="statelessform1"><div 
style="display:none"><input type="hidden" name="statelessform1_hf_0" 
id="statelessform1_hf_0" /></div>
                <input value="" type="text" wicket:id="textfield" 
name="textfield">
                <input type="submit"> 
                </form>

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatefulPage_QueryString_SubmitResult.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatefulPage_QueryString_SubmitResult.html?rev=653350&r1=653349&r2=653350&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatefulPage_QueryString_SubmitResult.html
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatefulPage_QueryString_SubmitResult.html
 Mon May  5 01:28:21 2008
@@ -22,7 +22,7 @@
 
 
                <p>
-               <form 
action="statefull/?wicket:interface=%3A0%3Astatelessform%3A%3AIFormSubmitListener%3A%3A"
 wicket:id="statelessform" method="post" id="statelessform1"><div 
style="display:none"><input type="hidden" name="statelessform1_hf_0" 
id="statelessform1_hf_0" /></div>
+               <form 
action="statefull?wicket:interface=%3A0%3Astatelessform%3A%3AIFormSubmitListener%3A%3A"
 wicket:id="statelessform" method="post" id="statelessform1"><div 
style="display:none"><input type="hidden" name="statelessform1_hf_0" 
id="statelessform1_hf_0" /></div>
                <input value="test" type="text" wicket:id="textfield" 
name="textfield">
                <input type="submit"> 
                </form>

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatelessPage_QueryString_Result.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatelessPage_QueryString_Result.html?rev=653350&r1=653349&r2=653350&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatelessPage_QueryString_Result.html
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatelessPage_QueryString_Result.html
 Mon May  5 01:28:21 2008
@@ -8,7 +8,7 @@
                <br />
                <a 
href="?wicket:bookmarkablePage=%3Aorg.apache.wicket.markup.html.autolink.Index" 
wicket:id="indexLink">go to index</a>
                
-               <form 
action="stateless/?wicket:interface=%3A0%3Astatelessform%3A%3AIFormSubmitListener%3A%3A"
 wicket:id="statelessform" method="post" id="statelessform1"><div 
style="display:none"><input type="hidden" name="statelessform1_hf_0" 
id="statelessform1_hf_0" /></div>
+               <form 
action="stateless?wicket:interface=%3A0%3Astatelessform%3A%3AIFormSubmitListener%3A%3A"
 wicket:id="statelessform" method="post" id="statelessform1"><div 
style="display:none"><input type="hidden" name="statelessform1_hf_0" 
id="statelessform1_hf_0" /></div>
                <input value="" type="text" wicket:id="textfield" 
name="textfield">
                <input type="submit"> 
                </form>

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatelessPage_QueryString_SubmitResult.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatelessPage_QueryString_SubmitResult.html?rev=653350&r1=653349&r2=653350&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatelessPage_QueryString_SubmitResult.html
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/StatelessPage_QueryString_SubmitResult.html
 Mon May  5 01:28:21 2008
@@ -8,7 +8,7 @@
                <br />
                <a 
href="../?wicket:bookmarkablePage=%3Aorg.apache.wicket.markup.html.autolink.Index"
 wicket:id="indexLink">go to index</a>
                
-               <form 
action="../stateless/?wicket:interface=%3A1%3Astatelessform%3A%3AIFormSubmitListener%3A%3A"
 wicket:id="statelessform" method="post" id="statelessform2"><div 
style="display:none"><input type="hidden" name="statelessform2_hf_0" 
id="statelessform2_hf_0" /></div>
+               <form 
action="../stateless?wicket:interface=%3A1%3Astatelessform%3A%3AIFormSubmitListener%3A%3A"
 wicket:id="statelessform" method="post" id="statelessform2"><div 
style="display:none"><input type="hidden" name="statelessform2_hf_0" 
id="statelessform2_hf_0" /></div>
                <input value="test" type="text" wicket:id="textfield" 
name="textfield">
                <input type="submit"> 
                </form>


Reply via email to