Следующий код Java:
private void a(Object paramObject) throws IOException {
if ((paramObject instanceof Socket)) {
this.o = ((Socket)paramObject).getOutputStream();
this.i = ((Socket)paramObject).getInputStream();
} else {
this.o = new FileOutputStream(((RandomAccessFile)paramObject).getFD());
this.i = new BufferedInputStream(
new FileInputStream(((RandomAccessFile)paramObject).getFD()), 65536);
}
}
время от времени выдает следующее исключение, но только при запуске в IBM Java VM в WebSphere:
java.lang.ClassCastException: java.net.Socket incompatible with java.io.RandomAccessFile
Ни одна другая Java VM не имеет этой проблемы. Я думаю, что это должно быть из-за ошибки JIT в IBM Java VM. Параметр может быть только java.net.Socket
или java.io.RandomAccessFile
. Объект создан в том же классе. Это также не может быть проблемой ClassLoader
.
Как мне изменить мой код, чтобы избежать этой проблемы?