Sun Java System Application Server 9.1 リリースノート

TopLink は Collection フィールド/プロパティーがクローン可能であることを想定する (Issue Tracker 556)

説明

Object[] から Collection への変換に java.util.Arrays.asList() API を使用している場合、JDK はクローン可能ではない java.util.ArrayList の実装を返します。結果として次の例外が発生します。


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

この問題は https://glassfish.dev.java.net/issues/show_bug.cgi?id=556 で追跡されています。

解決方法

別のコレクションをそのコンストラクタを使用して作成します。一例として、次のようにします。


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