diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-05-02 14:23:15 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-05-02 14:23:15 +0200 |
commit | dcfdcd3e1c6b963da2448889cd24469db6dffe20 (patch) | |
tree | e55333985a3d3554218034b9b70be4fe9f09fc80 /cpp | |
parent | Python port, added tests to Ice/info (diff) | |
download | ice-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.cpp | 2 | ||||
-rw-r--r-- | cpp/test/Ice/operations/BatchOneways.cpp | 12 |
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(); } |