Author: markt Date: Wed Jan 13 19:18:08 2010 New Revision: 898897 URL: http://svn.apache.org/viewvc?rev=898897&view=rev Log: Tab police, fix Eclipse warnings, add @since Javadoc
Modified: tomcat/trunk/java/javax/el/BeanELResolver.java tomcat/trunk/java/javax/el/CompositeELResolver.java tomcat/trunk/java/javax/el/ELContextEvent.java tomcat/trunk/java/javax/el/ELException.java tomcat/trunk/java/javax/el/ELResolver.java tomcat/trunk/java/javax/el/Expression.java tomcat/trunk/java/javax/el/MethodNotFoundException.java tomcat/trunk/java/javax/el/PropertyNotFoundException.java tomcat/trunk/java/javax/el/PropertyNotWritableException.java Modified: tomcat/trunk/java/javax/el/BeanELResolver.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/BeanELResolver.java?rev=898897&r1=898896&r2=898897&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/BeanELResolver.java (original) +++ tomcat/trunk/java/javax/el/BeanELResolver.java Wed Jan 13 19:18:08 2010 @@ -35,174 +35,174 @@ public class BeanELResolver extends ELResolver { - private final boolean readOnly; + private final boolean readOnly; - private final ConcurrentCache<String, BeanProperties> cache = - new ConcurrentCache<String, BeanProperties>(1000); + private final ConcurrentCache<String, BeanProperties> cache = + new ConcurrentCache<String, BeanProperties>(1000); - public BeanELResolver() { - this.readOnly = false; - } + public BeanELResolver() { + this.readOnly = false; + } - public BeanELResolver(boolean readOnly) { - this.readOnly = readOnly; - } + public BeanELResolver(boolean readOnly) { + this.readOnly = readOnly; + } - @Override + @Override public Object getValue(ELContext context, Object base, Object property) - throws NullPointerException, PropertyNotFoundException, ELException { - if (context == null) { - throw new NullPointerException(); - } - if (base == null || property == null) { - return null; - } - - context.setPropertyResolved(true); - Method m = this.property(context, base, property).read(context); - try { - return m.invoke(base, (Object[]) null); - } catch (IllegalAccessException e) { - throw new ELException(e); - } catch (InvocationTargetException e) { - throw new ELException(message(context, "propertyReadError", - new Object[] { base.getClass().getName(), - property.toString() }), e.getCause()); - } catch (Exception e) { - throw new ELException(e); - } - } + throws NullPointerException, PropertyNotFoundException, ELException { + if (context == null) { + throw new NullPointerException(); + } + if (base == null || property == null) { + return null; + } - @Override + context.setPropertyResolved(true); + Method m = this.property(context, base, property).read(context); + try { + return m.invoke(base, (Object[]) null); + } catch (IllegalAccessException e) { + throw new ELException(e); + } catch (InvocationTargetException e) { + throw new ELException(message(context, "propertyReadError", + new Object[] { base.getClass().getName(), + property.toString() }), e.getCause()); + } catch (Exception e) { + throw new ELException(e); + } + } + + @Override public Class<?> getType(ELContext context, Object base, Object property) - throws NullPointerException, PropertyNotFoundException, ELException { - if (context == null) { - throw new NullPointerException(); - } - if (base == null || property == null) { - return null; - } - - context.setPropertyResolved(true); - return this.property(context, base, property).getPropertyType(); - } + throws NullPointerException, PropertyNotFoundException, ELException { + if (context == null) { + throw new NullPointerException(); + } + if (base == null || property == null) { + return null; + } - @Override + context.setPropertyResolved(true); + return this.property(context, base, property).getPropertyType(); + } + + @Override public void setValue(ELContext context, Object base, Object property, - Object value) throws NullPointerException, - PropertyNotFoundException, PropertyNotWritableException, - ELException { - if (context == null) { - throw new NullPointerException(); - } - if (base == null || property == null) { - return; - } - - context.setPropertyResolved(true); - - if (this.readOnly) { - throw new PropertyNotWritableException(message(context, - "resolverNotWriteable", new Object[] { base.getClass() - .getName() })); - } - - Method m = this.property(context, base, property).write(context); - try { - m.invoke(base, value); - } catch (IllegalAccessException e) { - throw new ELException(e); - } catch (InvocationTargetException e) { - throw new ELException(message(context, "propertyWriteError", - new Object[] { base.getClass().getName(), - property.toString() }), e.getCause()); - } catch (Exception e) { - throw new ELException(e); - } - } + Object value) throws NullPointerException, + PropertyNotFoundException, PropertyNotWritableException, + ELException { + if (context == null) { + throw new NullPointerException(); + } + if (base == null || property == null) { + return; + } + + context.setPropertyResolved(true); + + if (this.readOnly) { + throw new PropertyNotWritableException(message(context, + "resolverNotWriteable", new Object[] { base.getClass() + .getName() })); + } - @Override + Method m = this.property(context, base, property).write(context); + try { + m.invoke(base, value); + } catch (IllegalAccessException e) { + throw new ELException(e); + } catch (InvocationTargetException e) { + throw new ELException(message(context, "propertyWriteError", + new Object[] { base.getClass().getName(), + property.toString() }), e.getCause()); + } catch (Exception e) { + throw new ELException(e); + } + } + + @Override public boolean isReadOnly(ELContext context, Object base, Object property) - throws NullPointerException, PropertyNotFoundException, ELException { - if (context == null) { - throw new NullPointerException(); - } - if (base == null || property == null) { - return false; - } - - context.setPropertyResolved(true); - return this.readOnly - || this.property(context, base, property).isReadOnly(); - } + throws NullPointerException, PropertyNotFoundException, ELException { + if (context == null) { + throw new NullPointerException(); + } + if (base == null || property == null) { + return false; + } + + context.setPropertyResolved(true); + return this.readOnly + || this.property(context, base, property).isReadOnly(); + } - @Override + @Override public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) { - if (context == null) { - throw new NullPointerException(); - } - - if (base == null) { - return null; - } - - try { - BeanInfo info = Introspector.getBeanInfo(base.getClass()); - PropertyDescriptor[] pds = info.getPropertyDescriptors(); - for (int i = 0; i < pds.length; i++) { - pds[i].setValue(RESOLVABLE_AT_DESIGN_TIME, Boolean.TRUE); - pds[i].setValue(TYPE, pds[i].getPropertyType()); - } - return Arrays.asList((FeatureDescriptor[]) pds).iterator(); - } catch (IntrospectionException e) { - // - } + if (context == null) { + throw new NullPointerException(); + } + + if (base == null) { + return null; + } + + try { + BeanInfo info = Introspector.getBeanInfo(base.getClass()); + PropertyDescriptor[] pds = info.getPropertyDescriptors(); + for (int i = 0; i < pds.length; i++) { + pds[i].setValue(RESOLVABLE_AT_DESIGN_TIME, Boolean.TRUE); + pds[i].setValue(TYPE, pds[i].getPropertyType()); + } + return Arrays.asList((FeatureDescriptor[]) pds).iterator(); + } catch (IntrospectionException e) { + // + } - return null; - } + return null; + } - @Override + @Override public Class<?> getCommonPropertyType(ELContext context, Object base) { - if (context == null) { - throw new NullPointerException(); - } - - if (base != null) { - return Object.class; - } - - return null; - } - - protected final static class BeanProperties { - private final Map<String, BeanProperty> properties; - - private final Class<?> type; - - public BeanProperties(Class<?> type) throws ELException { - this.type = type; - this.properties = new HashMap<String, BeanProperty>(); - try { - BeanInfo info = Introspector.getBeanInfo(this.type); - PropertyDescriptor[] pds = info.getPropertyDescriptors(); - for (int i = 0; i < pds.length; i++) { - this.properties.put(pds[i].getName(), new BeanProperty( - type, pds[i])); - } - } catch (IntrospectionException ie) { - throw new ELException(ie); - } - } - - private BeanProperty get(ELContext ctx, String name) { - BeanProperty property = this.properties.get(name); - if (property == null) { - throw new PropertyNotFoundException(message(ctx, - "propertyNotFound", - new Object[] { type.getName(), name })); - } - return property; - } + if (context == null) { + throw new NullPointerException(); + } + + if (base != null) { + return Object.class; + } + + return null; + } + + protected final static class BeanProperties { + private final Map<String, BeanProperty> properties; + + private final Class<?> type; + + public BeanProperties(Class<?> type) throws ELException { + this.type = type; + this.properties = new HashMap<String, BeanProperty>(); + try { + BeanInfo info = Introspector.getBeanInfo(this.type); + PropertyDescriptor[] pds = info.getPropertyDescriptors(); + for (int i = 0; i < pds.length; i++) { + this.properties.put(pds[i].getName(), new BeanProperty( + type, pds[i])); + } + } catch (IntrospectionException ie) { + throw new ELException(ie); + } + } + + private BeanProperty get(ELContext ctx, String name) { + BeanProperty property = this.properties.get(name); + if (property == null) { + throw new PropertyNotFoundException(message(ctx, + "propertyNotFound", + new Object[] { type.getName(), name })); + } + return property; + } public BeanProperty getBeanProperty(String name) { return get(null, name); @@ -211,201 +211,205 @@ private Class<?> getType() { return type; } - } + } protected final static class BeanProperty { - private final Class<?> type; + private final Class<?> type; - private final Class<?> owner; + private final Class<?> owner; - private final PropertyDescriptor descriptor; + private final PropertyDescriptor descriptor; - private Method read; + private Method read; - private Method write; + private Method write; - public BeanProperty(Class<?> owner, PropertyDescriptor descriptor) { - this.owner = owner; - this.descriptor = descriptor; - this.type = descriptor.getPropertyType(); - } + public BeanProperty(Class<?> owner, PropertyDescriptor descriptor) { + this.owner = owner; + this.descriptor = descriptor; + this.type = descriptor.getPropertyType(); + } - // Can't use Class<?> because API needs to match specification + // Can't use Class<?> because API needs to match specification public @SuppressWarnings("unchecked") Class getPropertyType() { - return this.type; - } + return this.type; + } + + public boolean isReadOnly() { + return this.write == null + && (null == (this.write = getMethod(this.owner, descriptor.getWriteMethod()))); + } + + public Method getWriteMethod() { + return write(null); + } + + public Method getReadMethod() { + return this.read(null); + } + + private Method write(ELContext ctx) { + if (this.write == null) { + this.write = getMethod(this.owner, descriptor.getWriteMethod()); + if (this.write == null) { + throw new PropertyNotFoundException(message(ctx, + "propertyNotWritable", new Object[] { + type.getName(), descriptor.getName() })); + } + } + return this.write; + } + + private Method read(ELContext ctx) { + if (this.read == null) { + this.read = getMethod(this.owner, descriptor.getReadMethod()); + if (this.read == null) { + throw new PropertyNotFoundException(message(ctx, + "propertyNotReadable", new Object[] { + type.getName(), descriptor.getName() })); + } + } + return this.read; + } + } + + private final BeanProperty property(ELContext ctx, Object base, + Object property) { + Class<?> type = base.getClass(); + String prop = property.toString(); + + BeanProperties props = this.cache.get(type.getName()); + if (props == null || type != props.getType()) { + props = new BeanProperties(type); + this.cache.put(type.getName(), props); + } + + return props.get(ctx, prop); + } - public boolean isReadOnly() { - return this.write == null - && (null == (this.write = getMethod(this.owner, descriptor.getWriteMethod()))); - } - - public Method getWriteMethod() { - return write(null); - } - - public Method getReadMethod() { - return this.read(null); - } - - private Method write(ELContext ctx) { - if (this.write == null) { - this.write = getMethod(this.owner, descriptor.getWriteMethod()); - if (this.write == null) { - throw new PropertyNotFoundException(message(ctx, - "propertyNotWritable", new Object[] { - type.getName(), descriptor.getName() })); - } - } - return this.write; - } - - private Method read(ELContext ctx) { - if (this.read == null) { - this.read = getMethod(this.owner, descriptor.getReadMethod()); - if (this.read == null) { - throw new PropertyNotFoundException(message(ctx, - "propertyNotReadable", new Object[] { - type.getName(), descriptor.getName() })); - } - } - return this.read; - } - } - - private final BeanProperty property(ELContext ctx, Object base, - Object property) { - Class<?> type = base.getClass(); - String prop = property.toString(); - - BeanProperties props = this.cache.get(type.getName()); - if (props == null || type != props.getType()) { - props = new BeanProperties(type); - this.cache.put(type.getName(), props); - } - - return props.get(ctx, prop); - } - - private final static Method getMethod(Class<?> type, Method m) { - if (m == null || Modifier.isPublic(type.getModifiers())) { - return m; - } - Class<?>[] inf = type.getInterfaces(); - Method mp = null; - for (int i = 0; i < inf.length; i++) { - try { - mp = inf[i].getMethod(m.getName(), m.getParameterTypes()); - mp = getMethod(mp.getDeclaringClass(), mp); - if (mp != null) { - return mp; - } - } catch (NoSuchMethodException e) { - // Ignore - } - } - Class<?> sup = type.getSuperclass(); - if (sup != null) { - try { - mp = sup.getMethod(m.getName(), m.getParameterTypes()); - mp = getMethod(mp.getDeclaringClass(), mp); - if (mp != null) { - return mp; - } - } catch (NoSuchMethodException e) { - // Ignore - } - } - return null; - } - - private final static class ConcurrentCache<K,V> { - - private final int size; - private final Map<K,V> eden; - private final Map<K,V> longterm; - - public ConcurrentCache(int size) { - this.size = size; - this.eden = new ConcurrentHashMap<K,V>(size); - this.longterm = new WeakHashMap<K,V>(size); - } - - public V get(K key) { - V value = this.eden.get(key); - if (value == null) { - value = this.longterm.get(key); - if (value != null) { - this.eden.put(key, value); - } - } - return value; - } - - public void put(K key, V value) { - if (this.eden.size() >= this.size) { - this.longterm.putAll(this.eden); - this.eden.clear(); - } - this.eden.put(key, value); - } - - } - - @Override + private final static Method getMethod(Class<?> type, Method m) { + if (m == null || Modifier.isPublic(type.getModifiers())) { + return m; + } + Class<?>[] inf = type.getInterfaces(); + Method mp = null; + for (int i = 0; i < inf.length; i++) { + try { + mp = inf[i].getMethod(m.getName(), m.getParameterTypes()); + mp = getMethod(mp.getDeclaringClass(), mp); + if (mp != null) { + return mp; + } + } catch (NoSuchMethodException e) { + // Ignore + } + } + Class<?> sup = type.getSuperclass(); + if (sup != null) { + try { + mp = sup.getMethod(m.getName(), m.getParameterTypes()); + mp = getMethod(mp.getDeclaringClass(), mp); + if (mp != null) { + return mp; + } + } catch (NoSuchMethodException e) { + // Ignore + } + } + return null; + } + + private final static class ConcurrentCache<K,V> { + + private final int size; + private final Map<K,V> eden; + private final Map<K,V> longterm; + + public ConcurrentCache(int size) { + this.size = size; + this.eden = new ConcurrentHashMap<K,V>(size); + this.longterm = new WeakHashMap<K,V>(size); + } + + public V get(K key) { + V value = this.eden.get(key); + if (value == null) { + value = this.longterm.get(key); + if (value != null) { + this.eden.put(key, value); + } + } + return value; + } + + public void put(K key, V value) { + if (this.eden.size() >= this.size) { + this.longterm.putAll(this.eden); + this.eden.clear(); + } + this.eden.put(key, value); + } + + } + + /** + * @since EL 2.2 + */ + @Override public Object invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params) { if (context == null) { throw new NullPointerException(); } - if (base == null || method == null) { - return null; - } + if (base == null || method == null) { + return null; + } - ExpressionFactory factory = ExpressionFactory.newInstance(); + ExpressionFactory factory = ExpressionFactory.newInstance(); + + String methodName = (String) factory.coerceToType(method, String.class); - String methodName = (String) factory.coerceToType(method, String.class); - - // Find the matching method - Method matchingMethod = null; - Class<?> clazz = base.getClass(); - if (paramTypes != null) { - try { - matchingMethod = clazz.getMethod(methodName, paramTypes); - } catch (NoSuchMethodException e) { - throw new MethodNotFoundException(e); - } - } else { - int paramCount = 0; - if (params != null) { - paramCount = params.length; - } - Method[] methods = clazz.getMethods(); - for (Method m : methods) { - if (m.getParameterTypes().length == paramCount) { - // Same number of parameters - use the first match - matchingMethod = m; - break; - } - if (m.isVarArgs()) { + // Find the matching method + Method matchingMethod = null; + Class<?> clazz = base.getClass(); + if (paramTypes != null) { + try { + matchingMethod = clazz.getMethod(methodName, paramTypes); + } catch (NoSuchMethodException e) { + throw new MethodNotFoundException(e); + } + } else { + int paramCount = 0; + if (params != null) { + paramCount = params.length; + } + Method[] methods = clazz.getMethods(); + for (Method m : methods) { + if (m.getParameterTypes().length == paramCount) { + // Same number of parameters - use the first match matchingMethod = m; - } - } - if (matchingMethod == null) { - throw new MethodNotFoundException( - "Unable to find method [" + methodName + "] with [" - + paramCount + "] parameters"); - } - } - - Class<?>[] parameterTypes = matchingMethod.getParameterTypes(); - Object[] parameters = null; - if (parameterTypes.length >0) { - parameters = new Object[parameterTypes.length]; - if (matchingMethod.isVarArgs()) { - int varArgIndex = parameterTypes.length - 1; - int paramCount = params.length; - // First argCount-1 parameters are standard + break; + } + if (m.isVarArgs()) { + matchingMethod = m; + } + } + if (matchingMethod == null) { + throw new MethodNotFoundException( + "Unable to find method [" + methodName + "] with [" + + paramCount + "] parameters"); + } + } + + Class<?>[] parameterTypes = matchingMethod.getParameterTypes(); + Object[] parameters = null; + if (parameterTypes.length > 0) { + parameters = new Object[parameterTypes.length]; + @SuppressWarnings("null") // params.length >= parameterTypes.length + int paramCount = params.length; + if (matchingMethod.isVarArgs()) { + int varArgIndex = parameterTypes.length - 1; + // First argCount-1 parameters are standard for (int i = 0; (i < varArgIndex - 1); i++) { parameters[i] = factory.coerceToType(params[i], parameterTypes[i]); @@ -421,17 +425,17 @@ factory.coerceToType(params[i], varArgClass)); parameters[varArgIndex] = varargs; } - } else { - parameters = new Object[parameterTypes.length]; - for (int i = 0; i < parameterTypes.length; i++) { - parameters[i] = factory.coerceToType(params[i], - parameterTypes[i]); - } - } - } - Object result = null; - try { - result = matchingMethod.invoke(base, parameters); + } else { + parameters = new Object[parameterTypes.length]; + for (int i = 0; i < parameterTypes.length; i++) { + parameters[i] = factory.coerceToType(params[i], + parameterTypes[i]); + } + } + } + Object result = null; + try { + result = matchingMethod.invoke(base, parameters); } catch (IllegalArgumentException e) { throw new ELException(e); } catch (IllegalAccessException e) { @@ -439,7 +443,7 @@ } catch (InvocationTargetException e) { throw new ELException(e.getCause()); } - + context.setPropertyResolved(true); return result; } Modified: tomcat/trunk/java/javax/el/CompositeELResolver.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/CompositeELResolver.java?rev=898897&r1=898896&r2=898897&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/CompositeELResolver.java (original) +++ tomcat/trunk/java/javax/el/CompositeELResolver.java Wed Jan 13 19:18:08 2010 @@ -124,6 +124,9 @@ return null; } + /** + * @since EL 2.2 + */ @Override public Object invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params) { @@ -195,9 +198,9 @@ public FeatureDescriptor next() { if (!hasNext()) throw new NoSuchElementException(); - FeatureDescriptor next = this.next; + FeatureDescriptor result = this.next; this.next = null; - return next; + return result; } Modified: tomcat/trunk/java/javax/el/ELContextEvent.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ELContextEvent.java?rev=898897&r1=898896&r2=898897&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/ELContextEvent.java (original) +++ tomcat/trunk/java/javax/el/ELContextEvent.java Wed Jan 13 19:18:08 2010 @@ -24,6 +24,8 @@ */ public class ELContextEvent extends EventObject { + private static final long serialVersionUID = 1255131906285426769L; + /** * @param source */ Modified: tomcat/trunk/java/javax/el/ELException.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ELException.java?rev=898897&r1=898896&r2=898897&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/ELException.java (original) +++ tomcat/trunk/java/javax/el/ELException.java Wed Jan 13 19:18:08 2010 @@ -25,42 +25,44 @@ */ public class ELException extends RuntimeException { - /** - * Creates an ELException with no detail message - */ - public ELException() { - super(); - } + private static final long serialVersionUID = -6228042809457459161L; - /** - * Creates an ELException with the provided detail message. - * - * @param message - * the detail message - */ - public ELException(String message) { - super(message); - } + /** + * Creates an ELException with no detail message + */ + public ELException() { + super(); + } - /** - * Creates an ELException with the given detail message and root cause. - * - * @param message - * the detail message - * @param cause - * the originating cause of this exception - */ - public ELException(String message, Throwable cause) { - super(message, cause); - } + /** + * Creates an ELException with the provided detail message. + * + * @param message + * the detail message + */ + public ELException(String message) { + super(message); + } - /** - * Creates an ELException with the given cause - * - * @param cause - * the originating cause of this exception - */ - public ELException(Throwable cause) { - super(cause); - } + /** + * Creates an ELException with the given detail message and root cause. + * + * @param message + * the detail message + * @param cause + * the originating cause of this exception + */ + public ELException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Creates an ELException with the given cause + * + * @param cause + * the originating cause of this exception + */ + public ELException(Throwable cause) { + super(cause); + } } Modified: tomcat/trunk/java/javax/el/ELResolver.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ELResolver.java?rev=898897&r1=898896&r2=898897&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/ELResolver.java (original) +++ tomcat/trunk/java/javax/el/ELResolver.java Wed Jan 13 19:18:08 2010 @@ -28,28 +28,28 @@ * */ public abstract class ELResolver { - - static String message(ELContext context, String name, Object[] props) { - Locale locale = context.getLocale(); - if (locale == null) { - locale = Locale.getDefault(); - if (locale == null) { - return ""; - } - } - ResourceBundle bundle = ResourceBundle.getBundle( - "javax.el.LocalStrings", locale); - try { - String template = bundle.getString(name); - if (props != null) { - template = MessageFormat.format(template, props); - } - return template; - } catch (MissingResourceException e) { - return "Missing Resource: '" + name + "' for Locale " - + locale.getDisplayName(); - } - } + + static String message(ELContext context, String name, Object[] props) { + Locale locale = context.getLocale(); + if (locale == null) { + locale = Locale.getDefault(); + if (locale == null) { + return ""; + } + } + ResourceBundle bundle = ResourceBundle.getBundle( + "javax.el.LocalStrings", locale); + try { + String template = bundle.getString(name); + if (props != null) { + template = MessageFormat.format(template, props); + } + return template; + } catch (MissingResourceException e) { + return "Missing Resource: '" + name + "' for Locale " + + locale.getDisplayName(); + } + } public final static String RESOLVABLE_AT_DESIGN_TIME = "resolvableAtDesignTime"; @@ -67,6 +67,9 @@ public abstract Class<?> getCommonPropertyType(ELContext context, Object base); + /** + * @since EL 2.2 + */ public Object invoke(@SuppressWarnings("unused") ELContext context, @SuppressWarnings("unused") Object base, @SuppressWarnings("unused") Object method, Modified: tomcat/trunk/java/javax/el/Expression.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/Expression.java?rev=898897&r1=898896&r2=898897&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/Expression.java (original) +++ tomcat/trunk/java/javax/el/Expression.java Wed Jan 13 19:18:08 2010 @@ -24,6 +24,8 @@ */ public abstract class Expression implements Serializable { + private static final long serialVersionUID = -6663767980471823812L; + @Override public abstract boolean equals(Object obj); Modified: tomcat/trunk/java/javax/el/MethodNotFoundException.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/MethodNotFoundException.java?rev=898897&r1=898896&r2=898897&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/MethodNotFoundException.java (original) +++ tomcat/trunk/java/javax/el/MethodNotFoundException.java Wed Jan 13 19:18:08 2010 @@ -22,6 +22,8 @@ */ public class MethodNotFoundException extends ELException { + private static final long serialVersionUID = -3631968116081480328L; + /** * */ Modified: tomcat/trunk/java/javax/el/PropertyNotFoundException.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/PropertyNotFoundException.java?rev=898897&r1=898896&r2=898897&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/PropertyNotFoundException.java (original) +++ tomcat/trunk/java/javax/el/PropertyNotFoundException.java Wed Jan 13 19:18:08 2010 @@ -22,6 +22,8 @@ */ public class PropertyNotFoundException extends ELException { + private static final long serialVersionUID = -3799200961303506745L; + /** * */ Modified: tomcat/trunk/java/javax/el/PropertyNotWritableException.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/PropertyNotWritableException.java?rev=898897&r1=898896&r2=898897&view=diff ============================================================================== --- tomcat/trunk/java/javax/el/PropertyNotWritableException.java (original) +++ tomcat/trunk/java/javax/el/PropertyNotWritableException.java Wed Jan 13 19:18:08 2010 @@ -22,6 +22,8 @@ */ public class PropertyNotWritableException extends ELException { + private static final long serialVersionUID = 827987155471214717L; + /** * */ --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org