diff --git a/akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala b/akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala index 9fe52dd8b4f..6d0af6c1ca6 100644 --- a/akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala +++ b/akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala @@ -960,13 +960,17 @@ class RemoteServerHandler( case _ ⇒ None } - private def handleRemoteMessageProtocol(request: RemoteMessageProtocol, channel: Channel) = { + private def handleRemoteMessageProtocol(request: RemoteMessageProtocol, channel: Channel) = try { request.getActorInfo.getActorType match { case SCALA_ACTOR ⇒ dispatchToActor(request, channel) case TYPED_ACTOR ⇒ dispatchToTypedActor(request, channel) case JAVA_ACTOR ⇒ throw new IllegalActorStateException("ActorType JAVA_ACTOR is currently not supported") case other ⇒ throw new IllegalActorStateException("Unknown ActorType [" + other + "]") } + } catch { + case e: Exception ⇒ + server.notifyListeners(RemoteServerError(e, server)) + EventHandler.error(e, this, e.getMessage) } private def dispatchToActor(request: RemoteMessageProtocol, channel: Channel) {