最近次のような現象が発生しました。 -XstartOnFirstThreadを設定する必要のあるアプリケーションがあります。私はこのフラグをVMに設定し、別のスレッドのオブジェクトを逆シリアル化しようとすると、単にハングします。 例は、以下を参照してください:私が発見される問題があると思うのClassLoaderでブロックするように思われますので XStreamと-XstartOnFirstThread
:
ここimport java.awt.Rectangle;
import com.thoughtworks.xstream.XStream;
public class XStreamTest {
public static void main(String[] args) {
new Thread(() -> {
XStream x = new XStream();
Rectangle r = new Rectangle();
String xml = x.toXML(r);
Object o = x.fromXML(xml);
System.out.println("ready");
return;
}).start();
}
}
は、スタックトレースです。私はjavafx.scene.shape.Rectangle
を使って同じテストを行い、今回はうまくいった。
したがって、awtクラスに問題があり、startOnFirstThreadを使用する必要がありますか? 誰かが正しい方向に私のヒントを与えることができます。
事前に感謝します。