Author: markt Date: Sat Jan 16 12:57:55 2010 New Revision: 899935 URL: http://svn.apache.org/viewvc?rev=899935&view=rev Log: TCK failure: Must check to see if property is resolved and throw exception if not.
Modified: tomcat/trunk/java/org/apache/el/parser/AstIdentifier.java tomcat/trunk/java/org/apache/el/parser/AstValue.java Modified: tomcat/trunk/java/org/apache/el/parser/AstIdentifier.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/AstIdentifier.java?rev=899935&r1=899934&r2=899935&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/el/parser/AstIdentifier.java (original) +++ tomcat/trunk/java/org/apache/el/parser/AstIdentifier.java Sat Jan 16 12:57:55 2010 @@ -22,10 +22,12 @@ import javax.el.MethodExpression; import javax.el.MethodInfo; import javax.el.MethodNotFoundException; +import javax.el.PropertyNotFoundException; import javax.el.ValueExpression; import javax.el.VariableMapper; import org.apache.el.lang.EvaluationContext; +import org.apache.el.util.MessageFactory; /** @@ -47,7 +49,12 @@ } } ctx.setPropertyResolved(false); - return ctx.getELResolver().getType(ctx, null, this.image); + Class<?> result = ctx.getELResolver().getType(ctx, null, this.image); + if (!ctx.isPropertyResolved()) { + throw new PropertyNotFoundException(MessageFactory.get( + "error.resolver.unhandled.null", this.image)); + } + return result; } @Override @@ -60,7 +67,12 @@ } } ctx.setPropertyResolved(false); - return ctx.getELResolver().getValue(ctx, null, this.image); + Object result = ctx.getELResolver().getValue(ctx, null, this.image); + if (!ctx.isPropertyResolved()) { + throw new PropertyNotFoundException(MessageFactory.get( + "error.resolver.unhandled.null", this.image)); + } + return result; } @Override @@ -73,7 +85,12 @@ } } ctx.setPropertyResolved(false); - return ctx.getELResolver().isReadOnly(ctx, null, this.image); + boolean result = ctx.getELResolver().isReadOnly(ctx, null, this.image); + if (!ctx.isPropertyResolved()) { + throw new PropertyNotFoundException(MessageFactory.get( + "error.resolver.unhandled.null", this.image)); + } + return result; } @Override @@ -89,6 +106,10 @@ } ctx.setPropertyResolved(false); ctx.getELResolver().setValue(ctx, null, this.image, value); + if (!ctx.isPropertyResolved()) { + throw new PropertyNotFoundException(MessageFactory.get( + "error.resolver.unhandled.null", this.image)); + } } @Override Modified: tomcat/trunk/java/org/apache/el/parser/AstValue.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/AstValue.java?rev=899935&r1=899934&r2=899935&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/el/parser/AstValue.java (original) +++ tomcat/trunk/java/org/apache/el/parser/AstValue.java Sat Jan 16 12:57:55 2010 @@ -57,7 +57,12 @@ public Class<?> getType(EvaluationContext ctx) throws ELException { Target t = getTarget(ctx); ctx.setPropertyResolved(false); - return ctx.getELResolver().getType(ctx, t.base, t.property); + Class<?> result = ctx.getELResolver().getType(ctx, t.base, t.property); + if (!ctx.isPropertyResolved()) { + throw new PropertyNotFoundException(MessageFactory.get( + "error.resolver.unhandled", t.base, t.property)); + } + return result; } private final Target getTarget(EvaluationContext ctx) throws ELException { @@ -141,6 +146,10 @@ i++; } } + if (!ctx.isPropertyResolved()) { + throw new PropertyNotFoundException(MessageFactory.get( + "error.resolver.unhandled", base, suffix)); + } return base; } @@ -148,7 +157,13 @@ public boolean isReadOnly(EvaluationContext ctx) throws ELException { Target t = getTarget(ctx); ctx.setPropertyResolved(false); - return ctx.getELResolver().isReadOnly(ctx, t.base, t.property); + boolean result = + ctx.getELResolver().isReadOnly(ctx, t.base, t.property); + if (!ctx.isPropertyResolved()) { + throw new PropertyNotFoundException(MessageFactory.get( + "error.resolver.unhandled", t.base, t.property)); + } + return result; } @Override @@ -167,6 +182,10 @@ } else { resolver.setValue(ctx, t.base, t.property, value); } + if (!ctx.isPropertyResolved()) { + throw new PropertyNotFoundException(MessageFactory.get( + "error.resolver.unhandled", t.base, t.property)); + } } private boolean isAssignable(Object value, Class<?> targetClass) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org