summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2016-09-05 19:17:27 +0200
committerBenoit Foucher <benoit@zeroc.com>2016-09-05 19:17:27 +0200
commite58be6a8051d9800230d8443655b975d762a2b5c (patch)
treea3d524b2259f48beac74228647265c835691cb1f /java/src
parentIceGrid Admin Cmd+Q support on macOS (diff)
downloadice-e58be6a8051d9800230d8443655b975d762a2b5c.tar.bz2
ice-e58be6a8051d9800230d8443655b975d762a2b5c.tar.xz
ice-e58be6a8051d9800230d8443655b975d762a2b5c.zip
Fixed ICE-7311 - handling of Java errors with AMD
Diffstat (limited to 'java/src')
-rw-r--r--java/src/Ice/src/main/java/IceInternal/Incoming.java5
-rw-r--r--java/src/Ice/src/main/java/IceInternal/IncomingAsync.java23
2 files changed, 28 insertions, 0 deletions
diff --git a/java/src/Ice/src/main/java/IceInternal/Incoming.java b/java/src/Ice/src/main/java/IceInternal/Incoming.java
index 6f1f205854f..d03365b785c 100644
--- a/java/src/Ice/src/main/java/IceInternal/Incoming.java
+++ b/java/src/Ice/src/main/java/IceInternal/Incoming.java
@@ -268,6 +268,11 @@ final public class Incoming extends IncomingBase implements Ice.Request
}
catch(java.lang.Error ex)
{
+ if(_responseHandler == null)
+ {
+ throw ex;
+ }
+
if(_servant != null && _locator != null && !__servantLocatorFinished(false))
{
return;
diff --git a/java/src/Ice/src/main/java/IceInternal/IncomingAsync.java b/java/src/Ice/src/main/java/IceInternal/IncomingAsync.java
index 7abed77651d..7f953872e5a 100644
--- a/java/src/Ice/src/main/java/IceInternal/IncomingAsync.java
+++ b/java/src/Ice/src/main/java/IceInternal/IncomingAsync.java
@@ -139,6 +139,29 @@ public class IncomingAsync extends IncomingBase implements Ice.AMDCallback
}
}
+ final public void
+ __error(java.lang.Error exc)
+ {
+ if(_responseHandler == null)
+ {
+ throw exc;
+ }
+
+ try
+ {
+ if(_locator != null && !__servantLocatorFinished(true))
+ {
+ return;
+ }
+
+ __handleError(exc, true);
+ }
+ catch(Ice.LocalException ex)
+ {
+ _responseHandler.invokeException(_current.requestId, ex, 1, true);
+ }
+ }
+
final protected void
__exception(java.lang.Exception exc)
{