Sun GlassFish Enterprise Server 2.1 Release Notes

Java Persistence

TopLink expects my Collection field/property to be cloneable (Issue Tracker 556)

Description

If the java.util.Arrays.asList() API is used to convert an Object[] to Collection, the JDK returns an implementation of java.util.ArrayList that is not cloneable. This results in the following exception:


The method invocation of the method [protected native java.lang.Object 
java.lang.Object.clone() throws java.lang.CloneNotSupportedException] on the object 
[[pkg.A id = xxx]], of class [class java.util.Arrays$ArrayList], triggered an 
exception. Internal Exception: java.lang.reflect.InvocationTargetException Target 
Invocation Exception: java.lang.CloneNotSupportedException: 
java.util.Arrays$ArrayList

This issue is tracked at https://glassfish.dev.java.net/issues/show_bug.cgi?id=556.

Solution

Create another collection using its constructor; for example:


myCollection = new ArrayList(java.util.Arrays.asList(a))

GenerationType.IDENTITY and DataDirect Driver with SyBase (Issue Tracker 2431)

Description

An attempt to insert an entity that uses GenerationType.IDENTITY fails when the DataDirect driver is used with SyBase. The attempt fails because the DataDirect driver creates a stored procedure for every parameterized prepared statement.

Solution

In the domain.xml file, set the property PrepareMethod=direct on the corresponding data source.