diff options
author | Mark Spruiell <mes@zeroc.com> | 2002-02-13 23:27:04 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2002-02-13 23:27:04 +0000 |
commit | 2a261a5de6548cb08f72f9afcb287feadfdda4dd (patch) | |
tree | 7a6517ce40845e54f162689f2b538c3e43cfc4cb /java/src/Ice/Blobject.java | |
parent | ThreadPool bug fixes, cleanup (diff) | |
download | ice-2a261a5de6548cb08f72f9afcb287feadfdda4dd.tar.bz2 ice-2a261a5de6548cb08f72f9afcb287feadfdda4dd.tar.xz ice-2a261a5de6548cb08f72f9afcb287feadfdda4dd.zip |
align with stable_32 in C++
Diffstat (limited to 'java/src/Ice/Blobject.java')
-rw-r--r-- | java/src/Ice/Blobject.java | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/java/src/Ice/Blobject.java b/java/src/Ice/Blobject.java index 53904e5c4b6..ee6531e2ac7 100644 --- a/java/src/Ice/Blobject.java +++ b/java/src/Ice/Blobject.java @@ -12,18 +12,26 @@ package Ice; public abstract class Blobject extends Ice.Object { - public abstract byte[] - ice_invoke(byte[] inParams, Current current); + // Returns true if ok, false if user exception. + public abstract boolean + ice_invoke(byte[] inParams, ByteSeqHolder outParams, Current current); public IceInternal.DispatchStatus __dispatch(IceInternal.Incoming in, Current current) { byte[] inParams; - byte[] outParams; + ByteSeqHolder outParams = new ByteSeqHolder(); int sz = in.is().getReadEncapsSize(); inParams = in.is().readBlob(sz); - outParams = ice_invoke(inParams, current); - in.os().writeBlob(outParams); - return IceInternal.DispatchStatus.DispatchOK; + boolean ok = ice_invoke(inParams, outParams, current); + in.os().writeBlob(outParams.value); + if (ok) + { + return IceInternal.DispatchStatus.DispatchOK; + } + else + { + return IceInternal.DispatchStatus.DispatchUserException; + } } } |