Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/RemoteExceptionIndication.java')
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/RemoteExceptionIndication.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/RemoteExceptionIndication.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/RemoteExceptionIndication.java
index de18a1b3bb..82218548bf 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/RemoteExceptionIndication.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/RemoteExceptionIndication.java
@@ -11,6 +11,7 @@
package org.eclipse.net4j.signal;
import org.eclipse.net4j.util.io.ExtendedDataInputStream;
+import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.internal.net4j.bundle.OM;
@@ -19,6 +20,10 @@ import org.eclipse.internal.net4j.bundle.OM;
*/
class RemoteExceptionIndication extends Indication
{
+ private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_SIGNAL, RemoteExceptionIndication.class);
+
+ private Throwable t;
+
public RemoteExceptionIndication(SignalProtocol<?> protocol)
{
super(protocol, SignalProtocol.SIGNAL_REMOTE_EXCEPTION);
@@ -28,8 +33,13 @@ class RemoteExceptionIndication extends Indication
protected void indicating(ExtendedDataInputStream in) throws Exception
{
int correlationID = in.readInt();
+ boolean responding = in.readBoolean();
String message = in.readString();
- Throwable t;
+ if (TRACER.isEnabled())
+ {
+ String msg = RemoteExceptionRequest.getFirstLine(message);
+ TRACER.format("Reading remote exception for signal {0}: {1}", correlationID, msg);
+ }
try
{
@@ -37,9 +47,9 @@ class RemoteExceptionIndication extends Indication
}
catch (Throwable couldNotLoadExceptionClass)
{
- t = new SignalRemoteException(message);
+ t = new RemoteException(message, responding);
}
- getProtocol().stopSignal(correlationID, t);
+ getProtocol().handleRemoteException(correlationID, t, responding);
}
}

Back to the top