summaryrefslogtreecommitdiff
path: root/java-compat/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2019-06-28 09:20:21 +0200
committerGitHub <noreply@github.com>2019-06-28 09:20:21 +0200
commitf2f1869fbfe408eadd99c3b6692302d56c06fa86 (patch)
treebfd9620a86d4c0531eee0841062e2a9227160685 /java-compat/src
parentRemove extra empty line (diff)
downloadice-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.java5
-rw-r--r--java-compat/src/Ice/src/main/java/IceInternal/IncomingBase.java35
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);