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