ArrayIndexOutofBound() Исключительная ситуация в случае возникновения в методе SocketWrite Java 1.5.03

Мы использовали среду Java 1.5.03 и веб-сервис wasp java (использовались библиотеки wasp 55). Когда мы пытаемся сохранить xml объект в БД, иногда мы получаем следующее исключение. если он повторяет один и тот же объект, он успешно сохраняется.

Исключение:

java.lang.ArrayIndexOutOfBoundsException



at java.net.SocketOutputStream.socketWrite(Unknown Source)
        at java.net.SocketOutputStream.write(Unknown Source)
        at com.idoox.transport.util.MyBufferedOutputStream.write(SocketPool.java:479)
        at java.io.ByteArrayOutputStream.writeTo(Unknown Source)
        at com.idoox.transport.http.ChunkableOutputStream.close(ChunkableOutputStream.java:138)
        at com.idoox.transport.http.client.HttpRequest.letsGo(HttpRequest.java:392)
        at com.idoox.transport.http.client.HttpRequest.close(HttpRequest.java:311)
        at com.idoox.transport.http.client.HttpRequest.resend(HttpRequest.java:344)
        at com.idoox.transport.http.client.HttpResponse.letsGo(HttpResponse.java:380)
        at com.idoox.transport.http.client.HttpResponse.getStatusCode(HttpResponse.java:54)
        at org.idoox.transport.InputMessageWrapper.getStatusCode(InputMessageWrapper.java:57)
        at org.idoox.transport.InputMessageWrapper.getStatusCode(InputMessageWrapper.java:57)
        com.systinet.wasp.client.XMLInvocationHelperImpl._receive(XMLInvocationHelperImpl.java:630)
        com.systinet.wasp.client.XMLInvocationHelperImpl._receive(XMLInvocationHelperImpl.java:606)
        at com.systinet.wasp.client.XMLInvocationHelperImpl._call(XMLInvocationHelperImpl.java:144)
        at com.systinet.wasp.client.XMLInvocationHelperImpl.call(XMLInvocationHelperImpl.java:76)
        at org.systinet.wasp.client.XMLInvocationHelper.call(XMLInvocationHelper.java:18)
        at com.systinet.wasp.rpc.WaspCallImpl.invoke(WaspCallImpl.java:495)
        at com.systinet.wasp.rpc.WaspCallImpl.invoke(WaspCallImpl.java:453)
        at com.systinet.wasp.client.ClientProxy._invoke(ClientProxy.java:454)
        at com.systinet.wasp.client.ClientProxy.invoke(ClientProxy.java:112)
        at $Proxy44.save(Unknown Source)

когда мы работали в xp envinment, мы не смогли увидеть эту ошибку. когда мы работаем в Windows 8, мы можем видеть это много раз.

Итак, я перекомпилировал Java SocketOutputStream класс в среде Windows 8 и сборка Java rt.jar и это положило на jre. затем запустите приложение с новым jre, мы не увидели ошибку.

логика ошибок:

if (len <= 0 || off < 0 || off + len > b.length) {
        if (len == 0) {
        return;
        }
        throw new ArrayIndexOutOfBoundsException();
}

Согласно моим знаниям, иногда off + len > b.length логика не удалась.

Но мы не могли понять, почему эта логика провалилась? и как мы можем это исправить.

Пожалуйста, помогите мне решить эту проблему и высоко ценим ваши отзывы.

0 ответов

Другие вопросы по тегам