From 3118cbda247f88bd5da92e208a0fa17a9bbe62e3 Mon Sep 17 00:00:00 2001 From: markt Date: Fri, 15 Jan 2010 19:22:12 +0000 Subject: [PATCH] Fix TCK failure. Trying to assign an object of the wrong type to an array should throw a ClassCaseException. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@899769 13f79535-47bb-0310-9956-ffa450edef68 --- java/javax/el/ArrayELResolver.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java/javax/el/ArrayELResolver.java b/java/javax/el/ArrayELResolver.java index 8165bec40..2e7f70ee6 100644 --- a/java/javax/el/ArrayELResolver.java +++ b/java/javax/el/ArrayELResolver.java @@ -90,6 +90,14 @@ public class ArrayELResolver extends ELResolver { int idx = coerce(property); checkBounds(base, idx); + if (value != null && + !base.getClass().getComponentType().isAssignableFrom( + value.getClass())) { + throw new ClassCastException(message(context, + "objectNotAssignable", + new Object[] {value.getClass().getName(), + base.getClass().getComponentType().getName()})); + } Array.set(base, idx, value); } } -- 2.11.0