You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/07/11 01:31:11 UTC

svn commit: r962944 - /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/ErrorPageWriter.java

Author: lu4242
Date: Sat Jul 10 23:31:11 2010
New Revision: 962944

URL: http://svn.apache.org/viewvc?rev=962944&view=rev
Log:
MYFACES-2770 Improve <ui:debug> with information about the saved state (thanks to Marius Petoi for provide this patch)

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/ErrorPageWriter.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/ErrorPageWriter.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/ErrorPageWriter.java?rev=962944&r1=962943&r2=962944&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/ErrorPageWriter.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/ErrorPageWriter.java Sat Jul 10 23:31:11 2010
@@ -71,6 +71,7 @@ import javax.servlet.http.HttpServletRes
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFWebConfigParam;
 import org.apache.myfaces.shared_impl.renderkit.html.HtmlResponseWriterImpl;
 import org.apache.myfaces.shared_impl.util.ClassUtils;
+import org.apache.myfaces.shared_impl.util.StateUtils;
 import org.apache.myfaces.shared_impl.webapp.webxml.WebXml;
 import org.apache.myfaces.view.facelets.component.UIRepeat;
 
@@ -279,7 +280,7 @@ public final class ErrorPageWriter
             {
                 if (view != null)
                 {
-                    _writeComponent(writer, view, _getErrorId(e));
+                    _writeComponent(faces, writer, view, _getErrorId(e));
                 }
             }
             else if ("vars".equals(ERROR_PARTS[i]))
@@ -320,7 +321,7 @@ public final class ErrorPageWriter
             }
             else if ("tree".equals(DEBUG_PARTS[i]))
             {
-                _writeComponent(writer, faces.getViewRoot(), null);
+                _writeComponent(faces, writer, faces.getViewRoot(), null);
             }
             else if ("extendedtree".equals(DEBUG_PARTS[i]))
             {
@@ -611,7 +612,7 @@ public final class ErrorPageWriter
         writer.write("</tbody></table>");
     }
 
-    private static void _writeComponent(Writer writer, UIComponent c, List<String> highlightId) throws IOException
+    private static void _writeComponent(FacesContext faces, Writer writer, UIComponent c, List<String> highlightId) throws IOException
     {
         writer.write("<dl><dt");
         if (_isText(c))
@@ -633,7 +634,16 @@ public final class ErrorPageWriter
 
         boolean hasChildren = c.getChildCount() > 0 || c.getFacets().size() > 0;
 
+        int stateSize = 0;
+
+        Object state = c.saveState(faces);
+        if (state != null)
+        {
+            byte[] stateBytes = StateUtils.getAsByteArray(state, faces.getExternalContext());
+            stateSize = stateBytes.length;
+        }
         _writeStart(writer, c, hasChildren, true);
+        writer.write(" - State size:" + stateSize + " bytes");
         writer.write("</dt>");
         if (hasChildren)
         {
@@ -645,7 +655,7 @@ public final class ErrorPageWriter
                     writer.write("<span>");
                     writer.write(entry.getKey());
                     writer.write("</span>");
-                    _writeComponent(writer, entry.getValue(), highlightId);
+                    _writeComponent(faces, writer, entry.getValue(), highlightId);
                     writer.write("</dd>");
                 }
             }
@@ -654,7 +664,7 @@ public final class ErrorPageWriter
                 for (UIComponent child : c.getChildren())
                 {
                     writer.write("<dd>");
-                    _writeComponent(writer, child, highlightId);
+                    _writeComponent(faces, writer, child, highlightId);
                     writer.write("</dd>");
                 }
             }