summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-05-02 14:23:15 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-05-02 14:23:15 +0200
commitdcfdcd3e1c6b963da2448889cd24469db6dffe20 (patch)
treee55333985a3d3554218034b9b70be4fe9f09fc80 /cpp
parentPython port, added tests to Ice/info (diff)
downloadice-dcfdcd3e1c6b963da2448889cd24469db6dffe20.tar.bz2
ice-dcfdcd3e1c6b963da2448889cd24469db6dffe20.tar.xz
ice-dcfdcd3e1c6b963da2448889cd24469db6dffe20.zip
Fixed ICE-4709, batch requests and UnmarshalOutOfBoundsException
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/Ice/Incoming.cpp2
-rw-r--r--cpp/test/Ice/operations/BatchOneways.cpp12
2 files changed, 13 insertions, 1 deletions
diff --git a/cpp/src/Ice/Incoming.cpp b/cpp/src/Ice/Incoming.cpp
index cf09b21c8f6..4d95113c5f7 100644
--- a/cpp/src/Ice/Incoming.cpp
+++ b/cpp/src/Ice/Incoming.cpp
@@ -564,7 +564,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager, BasicStre
catch(const UserException& ex)
{
Ice::EncodingVersion encoding = _is->skipEncaps(); // Required for batch requests.
-
+
if(_response)
{
_os.write(replyUserException);
diff --git a/cpp/test/Ice/operations/BatchOneways.cpp b/cpp/test/Ice/operations/BatchOneways.cpp
index 695ec6bf27b..9b35ef55ccd 100644
--- a/cpp/test/Ice/operations/BatchOneways.cpp
+++ b/cpp/test/Ice/operations/BatchOneways.cpp
@@ -96,4 +96,16 @@ batchOneways(const Test::MyClassPrx& p)
}
batch->ice_ping();
batch2->ice_ping();
+
+ Ice::Identity identity;
+ identity.name = "invalid";
+ Ice::ObjectPrx batch3 = batch->ice_identity(identity);
+ batch3->ice_ping();
+ batch3->ice_flushBatchRequests();
+
+ // Make sure that a bogus batch request doesn't cause troubles to other ones.
+ batch3->ice_ping();
+ batch->ice_ping();
+ batch->ice_flushBatchRequests();
+ batch->ice_ping();
}