--- oracle/toplink/essentials/internal/helper/ConversionManager.java 2006-04-27 17:51:46.000000000 +0100 +++ /home/ijuma82/workspaces/rssowl2/org.rssowl.lib.jpa/src/oracle/toplink/essentials/internal/helper/ConversionManager.java 2006-12-06 12:26:06.000000000 +0000 @@ -21,14 +21,24 @@ // Copyright (c) 1998, 2006, Oracle. All rights reserved. package oracle.toplink.essentials.internal.helper; -import java.math.*; -import java.util.*; -import java.io.*; +import java.io.Serializable; +import java.math.BigDecimal; +import java.math.BigInteger; import java.security.AccessController; import java.security.PrivilegedActionException; -import java.sql.*; +import java.sql.Blob; +import java.sql.Clob; +import java.sql.SQLException; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.Calendar; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Map; +import java.util.Vector; -import oracle.toplink.essentials.exceptions.*; +import oracle.toplink.essentials.exceptions.ConversionException; +import oracle.toplink.essentials.exceptions.DatabaseException; import oracle.toplink.essentials.internal.security.PrivilegedAccessHelper; import oracle.toplink.essentials.internal.security.PrivilegedGetClassLoaderForClass; import oracle.toplink.essentials.internal.security.PrivilegedGetContextClassLoader; @@ -401,6 +411,9 @@ // bug # 2799318 theClass = getPrimitiveClass((String)sourceObject); if (theClass == null) { + theClass = getArrayClass((String)sourceObject); + } + if (theClass == null) { theClass = getLoader().loadClass((String)sourceObject); } } catch (Exception exception) { @@ -409,7 +422,14 @@ return theClass; } - /** + private Class getArrayClass(String classType) throws ClassNotFoundException { + if (!classType.startsWith("[")) { + return null; + } + return Class.forName(classType, true, getLoader()); + } + + /** * Convert the object to an instance of java.sql.Date. * @param sourceObject Object of type java.sql.Timestamp, java.util.Date, String or Long */