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/06/24 18:33:28 UTC
svn commit: r957611 -
/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/ErrorPageWriter.java
Author: lu4242
Date: Thu Jun 24 16:33:27 2010
New Revision: 957611
URL: http://svn.apache.org/viewvc?rev=957611&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=957611&r1=957610&r2=957611&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 Thu Jun 24 16:33:27 2010
@@ -70,6 +70,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;
@@ -276,7 +277,14 @@ public final class ErrorPageWriter
{
if (view != null)
{
- _writeComponent(writer, view, _getErrorId(e));
+ Object[] state = (Object[])faces.getApplication().getStateManager().saveView(faces);
+ Map<String, Object> states = null;
+ if (state[1] != null && state[1] instanceof Object[])
+ {
+ states = (Map<String, Object>) state[1];
+ }
+
+ _writeComponent(faces, writer, faces.getViewRoot(), null, states);
}
}
else if ("vars".equals(ERROR_PARTS[i]))
@@ -317,7 +325,14 @@ public final class ErrorPageWriter
}
else if ("tree".equals(DEBUG_PARTS[i]))
{
- _writeComponent(writer, faces.getViewRoot(), null);
+ Object[] state = (Object[])faces.getApplication().getStateManager().saveView(faces);
+ Map<String, Object> states = null;
+ if (state[1] != null)
+ {
+ states = (Map<String, Object>) state[1];
+ }
+
+ _writeComponent(faces, writer, faces.getViewRoot(), null, states);
}
else if ("extendedtree".equals(DEBUG_PARTS[i]))
{
@@ -608,7 +623,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, Map<String, Object> states) throws IOException
{
writer.write("<dl><dt");
if (_isText(c))
@@ -630,7 +645,18 @@ public final class ErrorPageWriter
boolean hasChildren = c.getChildCount() > 0 || c.getFacets().size() > 0;
+ int stateSize = 0;
+ if (states != null)
+ {
+ Object state = states.get(c.getClientId());
+ 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)
{
@@ -642,7 +668,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, states);
writer.write("</dd>");
}
}
@@ -651,7 +677,7 @@ public final class ErrorPageWriter
for (UIComponent child : c.getChildren())
{
writer.write("<dd>");
- _writeComponent(writer, child, highlightId);
+ _writeComponent(faces, writer, child, highlightId, states);
writer.write("</dd>");
}
}