Author: markt Date: Tue Nov 13 15:15:51 2012 New Revision: 1408776 URL: http://svn.apache.org/viewvc?rev=1408776&view=rev Log: Optimisation suggested by kkolinko and a test case to make sure it does what it is meant to. The test case is obvious but I missed something in my first look at the code so wrote the test case which may as well be kept.
Added: tomcat/tc7.0.x/trunk/test/org/apache/jasper/el/ - copied from r1408774, tomcat/trunk/test/org/apache/jasper/el/ Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/jasper/el/JasperELResolver.java tomcat/tc7.0.x/trunk/test/org/apache/jasper/el/TestJasperELResolver.java Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1408774 Modified: tomcat/tc7.0.x/trunk/java/org/apache/jasper/el/JasperELResolver.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/jasper/el/JasperELResolver.java?rev=1408776&r1=1408775&r2=1408776&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/jasper/el/JasperELResolver.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/jasper/el/JasperELResolver.java Tue Nov 13 15:15:51 2012 @@ -44,8 +44,8 @@ public class JasperELResolver extends Co public JasperELResolver(List<ELResolver> appResolvers) { appResolversSize = appResolvers.size(); - resolvers = new ELResolver[0]; - size = resolvers.length; + resolvers = new ELResolver[appResolversSize + 7]; + size = 0; add(new ImplicitObjectELResolver()); for (ELResolver appResolver : appResolvers) { @@ -63,11 +63,15 @@ public class JasperELResolver extends Co public synchronized void add(ELResolver elResolver) { super.add(elResolver); - ELResolver[] nr = new ELResolver[size + 1]; - System.arraycopy(resolvers, 0, nr, 0, size); - nr[size] = elResolver; + if (resolvers.length < size) { + resolvers[size] = elResolver; + } else { + ELResolver[] nr = new ELResolver[size + 1]; + System.arraycopy(resolvers, 0, nr, 0, size); + nr[size] = elResolver; - resolvers = nr; + resolvers = nr; + } size ++; } Modified: tomcat/tc7.0.x/trunk/test/org/apache/jasper/el/TestJasperELResolver.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/jasper/el/TestJasperELResolver.java?rev=1408776&r1=1408774&r2=1408776&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/test/org/apache/jasper/el/TestJasperELResolver.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/jasper/el/TestJasperELResolver.java Tue Nov 13 15:15:51 2012 @@ -45,7 +45,7 @@ public class TestJasperELResolver { private void doTestConstructor(int count) throws Exception { - List<ELResolver> list = new ArrayList<>(); + List<ELResolver> list = new ArrayList<ELResolver>(); for (int i = 0; i < count; i++) { list.add(new ImplicitObjectELResolver()); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org