diff options
author | Benoit Foucher <benoit@zeroc.com> | 2019-06-28 09:20:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-28 09:20:21 +0200 |
commit | f2f1869fbfe408eadd99c3b6692302d56c06fa86 (patch) | |
tree | bfd9620a86d4c0531eee0841062e2a9227160685 /java-compat/src | |
parent | Remove extra empty line (diff) | |
download | ice-f2f1869fbfe408eadd99c3b6692302d56c06fa86.tar.bz2 ice-f2f1869fbfe408eadd99c3b6692302d56c06fa86.tar.xz ice-f2f1869fbfe408eadd99c3b6692302d56c06fa86.zip |
Added back caching of output stream, fixes #414 (#415)
Added back caching of output stream for sync dispatch responses, fixes #414
Diffstat (limited to 'java-compat/src')
-rw-r--r-- | java-compat/src/Ice/src/main/java/IceInternal/Incoming.java | 5 | ||||
-rw-r--r-- | java-compat/src/Ice/src/main/java/IceInternal/IncomingBase.java | 35 |
2 files changed, 28 insertions, 12 deletions
diff --git a/java-compat/src/Ice/src/main/java/IceInternal/Incoming.java b/java-compat/src/Ice/src/main/java/IceInternal/Incoming.java index 31c906031a5..de0bf37d247 100644 --- a/java-compat/src/Ice/src/main/java/IceInternal/Incoming.java +++ b/java-compat/src/Ice/src/main/java/IceInternal/Incoming.java @@ -67,9 +67,12 @@ final public class Incoming extends IncomingBase implements Ice.Request _inAsync.kill(this); _inAsync = null; } - _os = null; _is.pos(_inParamPos); + if(_response) + { + _os.reset(); + } } } diff --git a/java-compat/src/Ice/src/main/java/IceInternal/IncomingBase.java b/java-compat/src/Ice/src/main/java/IceInternal/IncomingBase.java index b9164f983f7..0e8deb8bb69 100644 --- a/java-compat/src/Ice/src/main/java/IceInternal/IncomingBase.java +++ b/java-compat/src/Ice/src/main/java/IceInternal/IncomingBase.java @@ -21,6 +21,11 @@ class IncomingBase _current.adapter = adapter; _current.con = connection; _current.requestId = requestId; + + if(_response) + { + _os = new Ice.OutputStream(instance, Protocol.currentProtocolEncoding); + } } protected @@ -45,6 +50,11 @@ class IncomingBase _cookie = other._cookie; other._cookie = null; + if(_response) + { + _os = new Ice.OutputStream(_instance, Protocol.currentProtocolEncoding); + } + // // Deep copy // @@ -66,7 +76,6 @@ class IncomingBase throw new Ice.MarshalException("can't marshal out parameters for oneway dispatch"); } - _os = new Ice.OutputStream(_instance, Protocol.currentProtocolEncoding); _os.writeBlob(Protocol.replyHdr); _os.writeInt(_current.requestId); _os.writeByte(ReplyStatus.replyOK); @@ -88,7 +97,6 @@ class IncomingBase { if(_response) { - _os = new Ice.OutputStream(_instance, Protocol.currentProtocolEncoding); _os.writeBlob(Protocol.replyHdr); _os.writeInt(_current.requestId); _os.writeByte(ReplyStatus.replyOK); @@ -106,7 +114,6 @@ class IncomingBase if(_response) { - _os = new Ice.OutputStream(_instance, Protocol.currentProtocolEncoding); _os.writeBlob(Protocol.replyHdr); _os.writeInt(_current.requestId); _os.writeByte(ok ? ReplyStatus.replyOK : ReplyStatus.replyUserException); @@ -142,6 +149,11 @@ class IncomingBase _current.con = connection; _current.requestId = requestId; + if(_response && _os == null) + { + _os = new Ice.OutputStream(instance, Protocol.currentProtocolEncoding); + } + _interceptorCBs = null; } @@ -160,7 +172,10 @@ class IncomingBase //_observer = null; assert(_observer == null); - _os = null; + if(_os != null) + { + _os.reset(); // Reset the output stream to prepare it for re-use. + } _responseHandler = null; @@ -280,6 +295,11 @@ class IncomingBase { assert(_responseHandler != null); + if(_response) + { + _os.reset(); + } + if(exc instanceof Ice.SystemException) { if(_responseHandler.systemException(_current.requestId, (Ice.SystemException)exc, amd)) @@ -321,7 +341,6 @@ class IncomingBase if(_response) { - _os = new Ice.OutputStream(_instance, Protocol.currentProtocolEncoding); _os.writeBlob(Protocol.replyHdr); _os.writeInt(_current.requestId); if(ex instanceof Ice.ObjectNotExistException) @@ -382,7 +401,6 @@ class IncomingBase if(_response) { - _os = new Ice.OutputStream(_instance, Protocol.currentProtocolEncoding); _os.writeBlob(Protocol.replyHdr); _os.writeInt(_current.requestId); _os.writeByte(ReplyStatus.replyUnknownLocalException); @@ -412,7 +430,6 @@ class IncomingBase if(_response) { - _os = new Ice.OutputStream(_instance, Protocol.currentProtocolEncoding); _os.writeBlob(Protocol.replyHdr); _os.writeInt(_current.requestId); _os.writeByte(ReplyStatus.replyUnknownUserException); @@ -442,7 +459,6 @@ class IncomingBase if(_response) { - _os = new Ice.OutputStream(_instance, Protocol.currentProtocolEncoding); _os.writeBlob(Protocol.replyHdr); _os.writeInt(_current.requestId); _os.writeByte(ReplyStatus.replyUnknownException); @@ -472,7 +488,6 @@ class IncomingBase if(_response) { - _os = new Ice.OutputStream(_instance, Protocol.currentProtocolEncoding); _os.writeBlob(Protocol.replyHdr); _os.writeInt(_current.requestId); _os.writeByte(ReplyStatus.replyUnknownLocalException); @@ -503,7 +518,6 @@ class IncomingBase if(_response) { - _os = new Ice.OutputStream(_instance, Protocol.currentProtocolEncoding); _os.writeBlob(Protocol.replyHdr); _os.writeInt(_current.requestId); _os.writeByte(ReplyStatus.replyUserException); @@ -535,7 +549,6 @@ class IncomingBase if(_response) { - _os = new Ice.OutputStream(_instance, Protocol.currentProtocolEncoding); _os.writeBlob(Protocol.replyHdr); _os.writeInt(_current.requestId); _os.writeByte(ReplyStatus.replyUnknownException); |