Fixed bug with restarting supervised supervisor that had done linking in constructor + Changed all calls to EventHandler to use direct 'error' and 'warning' methods for improved performance

This commit is contained in:
Jonas Bonér 2011-03-18 23:04:48 +01:00
parent 9e3e3efd33
commit 299f865156
16 changed files with 134 additions and 84 deletions

View file

@ -31,12 +31,13 @@ import org.jboss.netty.handler.timeout.{ ReadTimeoutHandler, ReadTimeoutExceptio
import org.jboss.netty.util.{ TimerTask, Timeout, HashedWheelTimer }
import org.jboss.netty.handler.ssl.SslHandler
import java.net.{ SocketAddress, InetSocketAddress }
import java.util.concurrent.{ TimeUnit, Executors, ConcurrentMap, ConcurrentHashMap, ConcurrentSkipListSet }
import scala.collection.mutable.{ HashMap }
import scala.reflect.BeanProperty
import java.net.{ SocketAddress, InetSocketAddress }
import java.lang.reflect.InvocationTargetException
import java.util.concurrent.atomic. {AtomicReference, AtomicLong, AtomicBoolean}
import java.util.concurrent.{ TimeUnit, Executors, ConcurrentMap, ConcurrentHashMap, ConcurrentSkipListSet }
import java.util.concurrent.atomic.{AtomicReference, AtomicLong, AtomicBoolean}
object RemoteEncoder {
def encode(rmp: RemoteMessageProtocol): AkkaRemoteProtocol = {
@ -429,7 +430,7 @@ class ActiveRemoteClientHandler(
}
} catch {
case e: Throwable =>
EventHandler notify EventHandler.Error(e, this)
EventHandler.error(e, this, e.getMessage)
client.notifyListeners(RemoteClientError(e, client.module, client.remoteAddress))
throw e
}
@ -478,7 +479,7 @@ class ActiveRemoteClientHandler(
.newInstance(exception.getMessage).asInstanceOf[Throwable]
} catch {
case problem: Throwable =>
EventHandler notify EventHandler.Error(problem, this)
EventHandler.error(problem, this, problem.getMessage)
UnparsableException(classname, exception.getMessage)
}
}
@ -558,7 +559,7 @@ class NettyRemoteServer(serverModule: NettyRemoteServerModule, val host: String,
serverModule.notifyListeners(RemoteServerShutdown(serverModule))
} catch {
case e: Exception =>
EventHandler notify EventHandler.Error(e, this)
EventHandler.error(e, this, e.getMessage)
}
}
}
@ -591,7 +592,7 @@ trait NettyRemoteServerModule extends RemoteServerModule { self: RemoteModule =>
}
} catch {
case e: Exception =>
EventHandler notify EventHandler.Error(e, this)
EventHandler.error(e, this, e.getMessage)
notifyListeners(RemoteServerError(e, this))
}
this
@ -862,7 +863,7 @@ class RemoteServerHandler(
val actorRef =
try { createActor(actorInfo, channel) } catch {
case e: SecurityException =>
EventHandler notify EventHandler.Error(e, this)
EventHandler.error(e, this, e.getMessage)
write(channel, createErrorReplyMessage(e, request, AkkaActorType.ScalaActor))
server.notifyListeners(RemoteServerError(e, server))
return
@ -978,7 +979,7 @@ class RemoteServerHandler(
write(channel, RemoteEncoder.encode(messageBuilder.build))
} catch {
case e: Exception =>
EventHandler notify EventHandler.Error(e, this)
EventHandler.error(e, this, e.getMessage)
server.notifyListeners(RemoteServerError(e, server))
}
@ -994,11 +995,11 @@ class RemoteServerHandler(
}
} catch {
case e: InvocationTargetException =>
EventHandler notify EventHandler.Error(e, this)
EventHandler.error(e, this, e.getMessage)
write(channel, createErrorReplyMessage(e.getCause, request, AkkaActorType.TypedActor))
server.notifyListeners(RemoteServerError(e, server))
case e: Exception =>
EventHandler notify EventHandler.Error(e, this)
EventHandler.error(e, this, e.getMessage)
write(channel, createErrorReplyMessage(e, request, AkkaActorType.TypedActor))
server.notifyListeners(RemoteServerError(e, server))
}
@ -1058,7 +1059,7 @@ class RemoteServerHandler(
actorRef.start //Start it where it's created
} catch {
case e: Throwable =>
EventHandler notify EventHandler.Error(e, this)
EventHandler.error(e, this, e.getMessage)
server.notifyListeners(RemoteServerError(e, server))
throw e
}
@ -1125,7 +1126,7 @@ class RemoteServerHandler(
newInstance
} catch {
case e: Throwable =>
EventHandler notify EventHandler.Error(e, this)
EventHandler.error(e, this, e.getMessage)
server.notifyListeners(RemoteServerError(e, server))
throw e
}