You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by im...@apache.org on 2006/03/03 00:19:43 UTC

svn commit: r382558 - /myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/util/ExtensionsFilter.java

Author: imario
Date: Thu Mar  2 15:19:40 2006
New Revision: 382558

URL: http://svn.apache.org/viewcvs?rev=382558&view=rev
Log:
do not buffer the response if addResource didnt require it

Modified:
    myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/util/ExtensionsFilter.java

Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/util/ExtensionsFilter.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/util/ExtensionsFilter.java?rev=382558&r1=382557&r2=382558&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/util/ExtensionsFilter.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/component/html/util/ExtensionsFilter.java Thu Mar  2 15:19:40 2006
@@ -111,8 +111,6 @@
             extendedRequest = new MultipartRequestWrapper(httpRequest, _uploadMaxFileSize, _uploadThresholdSize, _uploadRepositoryPath);
         }
 
-        ExtensionsResponseWrapper extendedResponse = new ExtensionsResponseWrapper((HttpServletResponse) response);
-
         // Serve resources
         AddResource addResource = AddResourceFactory.getInstance(httpRequest);
         if( addResource.isResourceUri( httpRequest ) ){
@@ -120,38 +118,54 @@
             return;
         }
 
-        // Standard request
-        chain.doFilter(extendedRequest, extendedResponse);
-
-        extendedResponse.finishResponse();
-
-        // write the javascript stuff for myfaces and headerInfo, if needed
-        HttpServletResponse servletResponse = (HttpServletResponse)response;
-
-        // only parse HTML responses
-        if (extendedResponse.getContentType() != null && isValidContentType(extendedResponse.getContentType()))
+        try
         {
-            addResource.parseResponse(extendedRequest, extendedResponse.toString(),
-                    servletResponse);
-
-            addResource.writeMyFacesJavascriptBeforeBodyEnd(extendedRequest,
-                    servletResponse);
-
-            if( ! addResource.hasHeaderBeginInfos(extendedRequest) ){
-                // writes the response if no header info is needed
-                addResource.writeResponse(extendedRequest, servletResponse);
-                return;
-            }
-
-            // Some headerInfo has to be added
-            addResource.writeWithFullHeader(extendedRequest, servletResponse);
-
-            // writes the response
-            addResource.writeResponse(extendedRequest, servletResponse);
+	        if (addResource.requiresBuffer())
+	        {
+		        ExtensionsResponseWrapper extendedResponse = new ExtensionsResponseWrapper((HttpServletResponse) response);
+		
+		        // Standard request
+		        chain.doFilter(extendedRequest, extendedResponse);
+		
+		        extendedResponse.finishResponse();
+		
+		        // write the javascript stuff for myfaces and headerInfo, if needed
+		        HttpServletResponse servletResponse = (HttpServletResponse)response;
+		
+		        // only parse HTML responses
+		        if (extendedResponse.getContentType() != null && isValidContentType(extendedResponse.getContentType()))
+		        {
+		            addResource.parseResponse(extendedRequest, extendedResponse.toString(),
+		                    servletResponse);
+		
+		            addResource.writeMyFacesJavascriptBeforeBodyEnd(extendedRequest,
+		                    servletResponse);
+		
+		            if( ! addResource.hasHeaderBeginInfos(extendedRequest) ){
+		                // writes the response if no header info is needed
+		                addResource.writeResponse(extendedRequest, servletResponse);
+		                return;
+		            }
+		
+		            // Some headerInfo has to be added
+		            addResource.writeWithFullHeader(extendedRequest, servletResponse);
+		
+		            // writes the response
+		            addResource.writeResponse(extendedRequest, servletResponse);
+		        }
+		        else
+		        {
+		            servletResponse.getWriter().write(extendedResponse.toString());
+		        }
+	        }
+	        else
+	        {
+		        chain.doFilter(extendedRequest, response);
+	        }
         }
-        else
+        finally
         {
-            servletResponse.getWriter().write(extendedResponse.toString());
+        	addResource.responseFinished();        	
         }
     }