From: Juergen H. <jho...@us...> - 2009-03-19 15:17:51
|
Update of /cvsroot/springframework/spring/src/org/springframework/util In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv28750/src/org/springframework/util Modified Files: ClassUtils.java Log Message: fixed HTTP invoker to support resolution of multi-level primitive array classes again Index: ClassUtils.java =================================================================== RCS file: /cvsroot/springframework/spring/src/org/springframework/util/ClassUtils.java,v retrieving revision 1.77 retrieving revision 1.78 diff -C2 -d -r1.77 -r1.78 *** ClassUtils.java 16 Sep 2008 20:09:21 -0000 1.77 --- ClassUtils.java 19 Mar 2009 15:17:38 -0000 1.78 *************** *** 1,4 **** /* ! * Copyright 2002-2008 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); --- 1,4 ---- /* ! * Copyright 2002-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); *************** *** 52,57 **** public static final String ARRAY_SUFFIX = "[]"; ! /** Prefix for internal array class names: "[L" */ ! private static final String INTERNAL_ARRAY_PREFIX = "[L"; /** The package separator character '.' */ --- 52,60 ---- public static final String ARRAY_SUFFIX = "[]"; ! /** Prefix for internal array class names: "[" */ ! private static final String INTERNAL_ARRAY_PREFIX = "["; ! ! /** Prefix for internal non-primitive array class names: "[L" */ ! private static final String NON_PRIMITIVE_ARRAY_PREFIX = "[L"; /** The package separator character '.' */ *************** *** 192,205 **** // "[Ljava.lang.String;" style arrays ! int internalArrayMarker = name.indexOf(INTERNAL_ARRAY_PREFIX); ! if (internalArrayMarker != -1 && name.endsWith(";")) { ! String elementClassName = null; ! if (internalArrayMarker == 0) { ! elementClassName = name.substring(INTERNAL_ARRAY_PREFIX.length(), name.length() - 1); ! } ! else if (name.startsWith("[")) { ! elementClassName = name.substring(1); ! } ! Class elementClass = forName(elementClassName, classLoader); return Array.newInstance(elementClass, 0).getClass(); } --- 195,208 ---- // "[Ljava.lang.String;" style arrays ! if (name.startsWith(NON_PRIMITIVE_ARRAY_PREFIX) && name.endsWith(";")) { ! String elementName = name.substring(NON_PRIMITIVE_ARRAY_PREFIX.length(), name.length() - 1); ! Class elementClass = forName(elementName, classLoader); ! return Array.newInstance(elementClass, 0).getClass(); ! } ! ! // "[[I" or "[[Ljava.lang.String;" style arrays ! if (name.startsWith(INTERNAL_ARRAY_PREFIX)) { ! String elementName = name.substring(INTERNAL_ARRAY_PREFIX.length()); ! Class elementClass = forName(elementName, classLoader); return Array.newInstance(elementClass, 0).getClass(); } |