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();
}
|