You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/07/04 21:43:22 UTC

svn commit: r1499848 - in /tomcat/trunk: java/javax/el/BeanNameELResolver.java java/javax/el/LocalStrings.properties test/javax/el/TestBeanNameELResolver.java test/javax/el/TesterBeanNameResolver.java

Author: markt
Date: Thu Jul  4 19:43:22 2013
New Revision: 1499848

URL: http://svn.apache.org/r1499848
Log:
More unit tests for BeanNameELResolver and fix a missing exception when trying to write to a read-only bean

Modified:
    tomcat/trunk/java/javax/el/BeanNameELResolver.java
    tomcat/trunk/java/javax/el/LocalStrings.properties
    tomcat/trunk/test/javax/el/TestBeanNameELResolver.java
    tomcat/trunk/test/javax/el/TesterBeanNameResolver.java

Modified: tomcat/trunk/java/javax/el/BeanNameELResolver.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/BeanNameELResolver.java?rev=1499848&r1=1499847&r2=1499848&view=diff
==============================================================================
--- tomcat/trunk/java/javax/el/BeanNameELResolver.java (original)
+++ tomcat/trunk/java/javax/el/BeanNameELResolver.java Thu Jul  4 19:43:22 2013
@@ -69,6 +69,11 @@ public class BeanNameELResolver extends 
 
         String beanName = (String) property;
 
+        if (isReadOnly(context, base, property)) {
+            throw new PropertyNotWritableException(Util.message(context,
+                    "beanNameELResolver.beanReadOnly", beanName));
+        }
+
         if (beanNameResolver.isNameResolved(beanName) ||
                 beanNameResolver.canCreateBean(beanName)) {
             context.setPropertyResolved(true);

Modified: tomcat/trunk/java/javax/el/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/LocalStrings.properties?rev=1499848&r1=1499847&r2=1499848&view=diff
==============================================================================
--- tomcat/trunk/java/javax/el/LocalStrings.properties (original)
+++ tomcat/trunk/java/javax/el/LocalStrings.properties Thu Jul  4 19:43:22 2013
@@ -23,6 +23,7 @@ propertyReadError=Error reading ''{1}'' 
 propertyWriteError=Error writing ''{1}'' on type {0}
 objectNotAssignable=Unable to add an object of type [{0}] to an array of objects of type [{1}]
 
+beanNameELResolver.beanReadOnly=The bean name [{0}] is read-only
 elProcessor.defineFunctionInvalidClass=The class [{0}] is not public
 elProcessor.defineFunctionInvalidMethod=The method [{0}] on class [{1}] is not a public static method
 elProcessor.defineFunctionInvalidParameterList=The parameter list [{0}] for method [{1}] on class [{2}] is not valid

Modified: tomcat/trunk/test/javax/el/TestBeanNameELResolver.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/javax/el/TestBeanNameELResolver.java?rev=1499848&r1=1499847&r2=1499848&view=diff
==============================================================================
--- tomcat/trunk/test/javax/el/TestBeanNameELResolver.java (original)
+++ tomcat/trunk/test/javax/el/TestBeanNameELResolver.java Thu Jul  4 19:43:22 2013
@@ -212,7 +212,7 @@ public class TestBeanNameELResolver {
 
 
     /**
-     * Test ceate with create disabled.
+     * Test create with create disabled.
      */
     @Test
     public void testSetValue05() {
@@ -221,6 +221,26 @@ public class TestBeanNameELResolver {
 
 
     /**
+     * Test replacing a read-only bean with create enabled.
+     */
+    @Test(expected=PropertyNotWritableException.class)
+    public void testSetValue06() {
+        doSetValueCreateReplaceTest(true,
+                TesterBeanNameResolver.READ_ONLY_NAME);
+    }
+
+
+    /**
+     * Test replacing a read-only bean with create disable.
+     */
+    @Test(expected=PropertyNotWritableException.class)
+    public void testSetValue07() {
+        doSetValueCreateReplaceTest(false,
+                TesterBeanNameResolver.READ_ONLY_NAME);
+    }
+
+
+    /**
      * Tests adding/replacing beans beans
      */
     private void doSetValueCreateReplaceTest(boolean canCreate,

Modified: tomcat/trunk/test/javax/el/TesterBeanNameResolver.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/javax/el/TesterBeanNameResolver.java?rev=1499848&r1=1499847&r2=1499848&view=diff
==============================================================================
--- tomcat/trunk/test/javax/el/TesterBeanNameResolver.java (original)
+++ tomcat/trunk/test/javax/el/TesterBeanNameResolver.java Thu Jul  4 19:43:22 2013
@@ -23,6 +23,7 @@ public class TesterBeanNameResolver exte
 
     public static final String EXCEPTION_TRIGGER_NAME = "exception";
     public static final String THROWABLE_TRIGGER_NAME = "throwable";
+    public static final String READ_ONLY_NAME = "readonly";
 
     private Map<String,Object> beans = new HashMap<>();
     private boolean allowCreate = true;
@@ -31,6 +32,7 @@ public class TesterBeanNameResolver exte
     public TesterBeanNameResolver() {
         beans.put(EXCEPTION_TRIGGER_NAME, new Object());
         beans.put(THROWABLE_TRIGGER_NAME, new Object());
+        beans.put(READ_ONLY_NAME, new Object());
     }
 
     @Override
@@ -66,4 +68,9 @@ public class TesterBeanNameResolver exte
     public void setAllowCreate(boolean allowCreate) {
         this.allowCreate = allowCreate;
     }
+
+    @Override
+    public boolean isReadOnly(String beanName) {
+        return READ_ONLY_NAME.equals(beanName);
+    }
 }



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