Author: markt
Date: Fri Feb 21 10:39:15 2014
New Revision: 1570516

URL: http://svn.apache.org/r1570516
Log:
Backport some EL refactoring in preparation for the fix for 
https://issues.apache.org/bugzilla/show_bug.cgi?id=56147

Modified:
    tomcat/tc7.0.x/trunk/   (props changed)
    tomcat/tc7.0.x/trunk/java/javax/el/ArrayELResolver.java
    tomcat/tc7.0.x/trunk/java/javax/el/BeanELResolver.java
    tomcat/tc7.0.x/trunk/java/javax/el/ELResolver.java
    tomcat/tc7.0.x/trunk/java/javax/el/ListELResolver.java
    tomcat/tc7.0.x/trunk/java/javax/el/MapELResolver.java
    tomcat/tc7.0.x/trunk/java/javax/el/ResourceBundleELResolver.java
    tomcat/tc7.0.x/trunk/java/javax/el/Util.java

Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
  Merged /tomcat/trunk:r1499371

Modified: tomcat/tc7.0.x/trunk/java/javax/el/ArrayELResolver.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/javax/el/ArrayELResolver.java?rev=1570516&r1=1570515&r2=1570516&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/javax/el/ArrayELResolver.java (original)
+++ tomcat/tc7.0.x/trunk/java/javax/el/ArrayELResolver.java Fri Feb 21 10:39:15 
2014
@@ -86,7 +86,7 @@ public class ArrayELResolver extends ELR
             context.setPropertyResolved(true);
 
             if (this.readOnly) {
-                throw new PropertyNotWritableException(message(context,
+                throw new PropertyNotWritableException(Util.message(context,
                         "resolverNotWriteable", new Object[] { base.getClass()
                                 .getName() }));
             }
@@ -95,7 +95,7 @@ public class ArrayELResolver extends ELR
             checkBounds(base, idx);
             if (value != null && !Util.isAssignableFrom(value.getClass(),
                     base.getClass().getComponentType())) {
-                throw new ClassCastException(message(context,
+                throw new ClassCastException(Util.message(context,
                         "objectNotAssignable",
                         new Object[] {value.getClass().getName(),
                         base.getClass().getComponentType().getName()}));

Modified: tomcat/tc7.0.x/trunk/java/javax/el/BeanELResolver.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/javax/el/BeanELResolver.java?rev=1570516&r1=1570515&r2=1570516&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/javax/el/BeanELResolver.java (original)
+++ tomcat/tc7.0.x/trunk/java/javax/el/BeanELResolver.java Fri Feb 21 10:39:15 
2014
@@ -95,7 +95,7 @@ public class BeanELResolver extends ELRe
             if (cause instanceof VirtualMachineError) {
                 throw (VirtualMachineError) cause;
             }
-            throw new ELException(message(context, "propertyReadError",
+            throw new ELException(Util.message(context, "propertyReadError",
                     new Object[] { base.getClass().getName(),
                             property.toString() }), cause);
         } catch (Exception e) {
@@ -132,7 +132,7 @@ public class BeanELResolver extends ELRe
         context.setPropertyResolved(true);
 
         if (this.readOnly) {
-            throw new PropertyNotWritableException(message(context,
+            throw new PropertyNotWritableException(Util.message(context,
                     "resolverNotWriteable", new Object[] { base.getClass()
                             .getName() }));
         }
@@ -150,7 +150,7 @@ public class BeanELResolver extends ELRe
             if (cause instanceof VirtualMachineError) {
                 throw (VirtualMachineError) cause;
             }
-            throw new ELException(message(context, "propertyWriteError",
+            throw new ELException(Util.message(context, "propertyWriteError",
                     new Object[] { base.getClass().getName(),
                             property.toString() }), cause);
         } catch (Exception e) {
@@ -226,7 +226,7 @@ public class BeanELResolver extends ELRe
         private BeanProperty get(ELContext ctx, String name) {
             BeanProperty property = this.properties.get(name);
             if (property == null) {
-                throw new PropertyNotFoundException(message(ctx,
+                throw new PropertyNotFoundException(Util.message(ctx,
                         "propertyNotFound",
                         new Object[] { type.getName(), name }));
             }
@@ -282,7 +282,7 @@ public class BeanELResolver extends ELRe
             if (this.write == null) {
                 this.write = getMethod(this.owner, 
descriptor.getWriteMethod());
                 if (this.write == null) {
-                    throw new PropertyNotFoundException(message(ctx,
+                    throw new PropertyNotFoundException(Util.message(ctx,
                             "propertyNotWritable", new Object[] {
                                     owner.getName(), descriptor.getName() }));
                 }
@@ -294,7 +294,7 @@ public class BeanELResolver extends ELRe
             if (this.read == null) {
                 this.read = getMethod(this.owner, descriptor.getReadMethod());
                 if (this.read == null) {
-                    throw new PropertyNotFoundException(message(ctx,
+                    throw new PropertyNotFoundException(Util.message(ctx,
                             "propertyNotReadable", new Object[] {
                                     owner.getName(), descriptor.getName() }));
                 }

Modified: tomcat/tc7.0.x/trunk/java/javax/el/ELResolver.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/javax/el/ELResolver.java?rev=1570516&r1=1570515&r2=1570516&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/javax/el/ELResolver.java (original)
+++ tomcat/tc7.0.x/trunk/java/javax/el/ELResolver.java Fri Feb 21 10:39:15 2014
@@ -14,42 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package javax.el;
 
-import java.text.MessageFormat;
 import java.util.Iterator;
-import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
 
 /**
  * @author Jacob Hookom [jacob/hookom.net]
  *
  */
 public abstract class ELResolver {
-    
-    static String message(ELContext context, String name, Object[] props) {
-        Locale locale = context.getLocale();
-        if (locale == null) {
-            locale = Locale.getDefault();
-            if (locale == null) {
-                return "";
-            }
-        }
-        ResourceBundle bundle = ResourceBundle.getBundle(
-                "javax.el.LocalStrings", locale);
-        try {
-            String template = bundle.getString(name);
-            if (props != null) {
-                template = MessageFormat.format(template, props);
-            }
-            return template;
-        } catch (MissingResourceException e) {
-            return "Missing Resource: '" + name + "' for Locale "
-                    + locale.getDisplayName();
-        }
-    }
 
     public static final String RESOLVABLE_AT_DESIGN_TIME = 
"resolvableAtDesignTime";
     

Modified: tomcat/tc7.0.x/trunk/java/javax/el/ListELResolver.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/javax/el/ListELResolver.java?rev=1570516&r1=1570515&r2=1570516&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/javax/el/ListELResolver.java (original)
+++ tomcat/tc7.0.x/trunk/java/javax/el/ListELResolver.java Fri Feb 21 10:39:15 
2014
@@ -94,7 +94,7 @@ public class ListELResolver extends ELRe
             List<Object> list = (List<Object>) base;
 
             if (this.readOnly) {
-                throw new PropertyNotWritableException(message(context,
+                throw new PropertyNotWritableException(Util.message(context,
                         "resolverNotWriteable", new Object[] { base.getClass()
                                 .getName() }));
             }

Modified: tomcat/tc7.0.x/trunk/java/javax/el/MapELResolver.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/javax/el/MapELResolver.java?rev=1570516&r1=1570515&r2=1570516&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/javax/el/MapELResolver.java (original)
+++ tomcat/tc7.0.x/trunk/java/javax/el/MapELResolver.java Fri Feb 21 10:39:15 
2014
@@ -83,7 +83,7 @@ public class MapELResolver extends ELRes
             context.setPropertyResolved(true);
 
             if (this.readOnly) {
-                throw new PropertyNotWritableException(message(context,
+                throw new PropertyNotWritableException(Util.message(context,
                         "resolverNotWriteable", new Object[] { base.getClass()
                                 .getName() }));
             }

Modified: tomcat/tc7.0.x/trunk/java/javax/el/ResourceBundleELResolver.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/javax/el/ResourceBundleELResolver.java?rev=1570516&r1=1570515&r2=1570516&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/javax/el/ResourceBundleELResolver.java (original)
+++ tomcat/tc7.0.x/trunk/java/javax/el/ResourceBundleELResolver.java Fri Feb 21 
10:39:15 2014
@@ -81,7 +81,7 @@ public class ResourceBundleELResolver ex
         
         if (base instanceof ResourceBundle) {
             context.setPropertyResolved(true);
-            throw new PropertyNotWritableException(message(context,
+            throw new PropertyNotWritableException(Util.message(context,
                     "resolverNotWriteable", new Object[] { base.getClass()
                             .getName() }));
         }

Modified: tomcat/tc7.0.x/trunk/java/javax/el/Util.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/javax/el/Util.java?rev=1570516&r1=1570515&r2=1570516&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/javax/el/Util.java (original)
+++ tomcat/tc7.0.x/trunk/java/javax/el/Util.java Fri Feb 21 10:39:15 2014
@@ -16,8 +16,53 @@
  */
 package javax.el;
 
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
 class Util {
 
+    /**
+     * Checks whether the supplied Throwable is one that needs to be
+     * rethrown and swallows all others.
+     * @param t the Throwable to check
+     */
+    static void handleThrowable(Throwable t) {
+        if (t instanceof ThreadDeath) {
+            throw (ThreadDeath) t;
+        }
+        if (t instanceof VirtualMachineError) {
+            throw (VirtualMachineError) t;
+        }
+        // All other instances of Throwable will be silently swallowed
+    }
+
+    static String message(ELContext context, String name, Object... props) {
+        Locale locale = null;
+        if (context != null) {
+            locale = context.getLocale();
+        }
+        if (locale == null) {
+            locale = Locale.getDefault();
+            if (locale == null) {
+                return "";
+            }
+        }
+        ResourceBundle bundle = ResourceBundle.getBundle(
+                "javax.el.LocalStrings", locale);
+        try {
+            String template = bundle.getString(name);
+            if (props != null) {
+                template = MessageFormat.format(template, props);
+            }
+            return template;
+        } catch (MissingResourceException e) {
+            return "Missing Resource: '" + name + "' for Locale "
+                    + locale.getDisplayName();
+        }
+    }
+
     /*
      * This method duplicates code in org.apache.el.util.ReflectionUtil. When
      * making changes keep the code in sync.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to