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 2014/05/20 12:12:29 UTC

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

Author: lu4242
Date: Tue May 20 10:12:29 2014
New Revision: 1596179

URL: http://svn.apache.org/r1596179
Log:
MYFACES-3893 NullPointerException in ErrorPageWriter._writeAttributes [Line 1304] (thanks to Fabio 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=1596179&r1=1596178&r2=1596179&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 Tue May 20 10:12:29 2014
@@ -1286,52 +1286,55 @@ public final class ErrorPageWriter
                     && Arrays.binarySearch(IGNORE, pd[i].getName()) < 0)
                 {
                     m = pd[i].getReadMethod();
-                    try
+                    if (m != null)
                     {
-                        // first check if the property is a ValueExpression
-                        valueExpression = c.getValueExpression(pd[i].getName());
-                        if (valueExpressionValues && valueExpression != null)
+                        try
                         {
-                            String expressionString = valueExpression.getExpressionString();
-                            if (null == expressionString)
+                            // first check if the property is a ValueExpression
+                            valueExpression = c.getValueExpression(pd[i].getName());
+                            if (valueExpressionValues && valueExpression != null)
                             {
-                                expressionString = "";
-                            }
-                            _writeAttribute(writer, pd[i].getName(), expressionString);
-                        }
-                        else
-                        {
-                            v = m.invoke(c, null);
-                            if (v != null)
-                            {
-                                if (v instanceof Collection || v instanceof Map || v instanceof Iterator)
-                                {
-                                    continue;
-                                }
-                                if (v instanceof Expression)
-                                {
-                                    str = ((Expression)v).getExpressionString();
-                                }
-                                else if (v instanceof ValueBinding)
-                                {
-                                    str = ((ValueBinding) v).getExpressionString();
-                                }
-                                else if (v instanceof MethodBinding)
+                                String expressionString = valueExpression.getExpressionString();
+                                if (null == expressionString)
                                 {
-                                    str = ((MethodBinding) v).getExpressionString();
+                                    expressionString = "";
                                 }
-                                else
+                                _writeAttribute(writer, pd[i].getName(), expressionString);
+                            }
+                            else
+                            {
+                                v = m.invoke(c, null);
+                                if (v != null)
                                 {
-                                    str = v.toString();
-                                }
+                                    if (v instanceof Collection || v instanceof Map || v instanceof Iterator)
+                                    {
+                                        continue;
+                                    }
+                                    if (v instanceof Expression)
+                                    {
+                                        str = ((Expression)v).getExpressionString();
+                                    }
+                                    else if (v instanceof ValueBinding)
+                                    {
+                                        str = ((ValueBinding) v).getExpressionString();
+                                    }
+                                    else if (v instanceof MethodBinding)
+                                    {
+                                        str = ((MethodBinding) v).getExpressionString();
+                                    }
+                                    else
+                                    {
+                                        str = v.toString();
+                                    }
 
-                                _writeAttribute(writer, pd[i].getName(), str);
+                                    _writeAttribute(writer, pd[i].getName(), str);
+                                }
                             }
                         }
-                    }
-                    catch (Exception e)
-                    {
-                        // do nothing
+                        catch (Exception e)
+                        {
+                            // do nothing
+                        }
                     }
                 }
             }