Author: markt
Date: Sun Dec 14 14:43:36 2014
New Revision: 1645458

URL: http://svn.apache.org/r1645458
Log:
Partially revert 1645440. Can't use 'new' for loop here as array is not always 
full.

Modified:
    tomcat/trunk/java/javax/el/CompositeELResolver.java

Modified: tomcat/trunk/java/javax/el/CompositeELResolver.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/CompositeELResolver.java?rev=1645458&r1=1645457&r2=1645458&view=diff
==============================================================================
--- tomcat/trunk/java/javax/el/CompositeELResolver.java (original)
+++ tomcat/trunk/java/javax/el/CompositeELResolver.java Sun Dec 14 14:43:36 2014
@@ -58,8 +58,9 @@ public class CompositeELResolver extends
     @Override
     public Object getValue(ELContext context, Object base, Object property) {
         context.setPropertyResolved(false);
-        for (ELResolver resolver : resolvers) {
-            Object result = resolver.getValue(context, base, property);
+        int sz = this.size;
+        for (int i = 0; i < sz; i++) {
+            Object result = this.resolvers[i].getValue(context, base, 
property);
             if (context.isPropertyResolved()) {
                 return result;
             }
@@ -71,11 +72,12 @@ public class CompositeELResolver extends
      * @since EL 2.2
      */
     @Override
-    public Object invoke(ELContext context, Object base, Object method, 
Class<?>[] paramTypes,
-            Object[] params) {
+    public Object invoke(ELContext context, Object base, Object method,
+            Class<?>[] paramTypes, Object[] params) {
         context.setPropertyResolved(false);
-        for (ELResolver resolver : resolvers) {
-            Object obj = resolver.invoke(context, base, method, paramTypes, 
params);
+        int sz = this.size;
+        for (int i = 0; i < sz; i++) {
+            Object obj = this.resolvers[i].invoke(context, base, method, 
paramTypes, params);
             if (context.isPropertyResolved()) {
                 return obj;
             }
@@ -86,15 +88,16 @@ public class CompositeELResolver extends
     @Override
     public Class<?> getType(ELContext context, Object base, Object property) {
         context.setPropertyResolved(false);
-        for (ELResolver resolver : resolvers) {
-            Class<?> type = resolver.getType(context, base, property);
+        int sz = this.size;
+        for (int i = 0; i < sz; i++) {
+            Class<?> type = this.resolvers[i].getType(context, base, property);
             if (context.isPropertyResolved()) {
                 if (SCOPED_ATTRIBUTE_EL_RESOLVER != null &&
-                        
SCOPED_ATTRIBUTE_EL_RESOLVER.isAssignableFrom(resolver.getClass())) {
+                        
SCOPED_ATTRIBUTE_EL_RESOLVER.isAssignableFrom(resolvers[i].getClass())) {
                     // Special case since
                     // javax.servlet.jsp.el.ScopedAttributeELResolver will
                     // always return Object.class for type
-                    Object value = resolver.getValue(context, base, property);
+                    Object value = resolvers[i].getValue(context, base, 
property);
                     if (value != null) {
                         return value.getClass();
                     }
@@ -108,8 +111,9 @@ public class CompositeELResolver extends
     @Override
     public void setValue(ELContext context, Object base, Object property, 
Object value) {
         context.setPropertyResolved(false);
-        for (ELResolver resolver : resolvers) {
-            resolver.setValue(context, base, property, value);
+        int sz = this.size;
+        for (int i = 0; i < sz; i++) {
+            this.resolvers[i].setValue(context, base, property, value);
             if (context.isPropertyResolved()) {
                 return;
             }
@@ -119,8 +123,9 @@ public class CompositeELResolver extends
     @Override
     public boolean isReadOnly(ELContext context, Object base, Object property) 
{
         context.setPropertyResolved(false);
-        for (ELResolver resolver : resolvers) {
-            boolean readOnly = resolver.isReadOnly(context, base, property);
+        int sz = this.size;
+        for (int i = 0; i < sz; i++) {
+            boolean readOnly = this.resolvers[i].isReadOnly(context, base, 
property);
             if (context.isPropertyResolved()) {
                 return readOnly;
             }
@@ -136,8 +141,9 @@ public class CompositeELResolver extends
     @Override
     public Class<?> getCommonPropertyType(ELContext context, Object base) {
         Class<?> commonType = null;
-        for (ELResolver resolver : resolvers) {
-            Class<?> type = resolver.getCommonPropertyType(context, base);
+        int sz = this.size;
+        for (int i = 0; i < sz; i++) {
+            Class<?> type = this.resolvers[i].getCommonPropertyType(context, 
base);
             if (type != null && (commonType == null || 
commonType.isAssignableFrom(type))) {
                 commonType = type;
             }
@@ -148,8 +154,9 @@ public class CompositeELResolver extends
     @Override
     public Object convertToType(ELContext context, Object obj, Class<?> type) {
         context.setPropertyResolved(false);
-        for (ELResolver resolver : resolvers) {
-            Object result = resolver.convertToType(context, obj, type);
+        int sz = this.size;
+        for (int i = 0; i < sz; i++) {
+            Object result = this.resolvers[i].convertToType(context, obj, 
type);
             if (context.isPropertyResolved()) {
                 return result;
             }



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

Reply via email to