Renamed to EventHandler and added 'info, debug, warning and error'
This commit is contained in:
parent
a41fd15228
commit
793ad9ac03
16 changed files with 132 additions and 123 deletions
|
|
@ -1,4 +1,14 @@
|
|||
/**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* Copyright (C) 2009-2011 Scalable Solutions AB <http://scalablesolutions.se>
|
||||
*/
|
||||
|
||||
|
|
@ -73,63 +83,54 @@ class ActorKilledException private[akka](message: String) extends AkkaEx
|
|||
class ActorInitializationException private[akka](message: String) extends AkkaException(message)
|
||||
class ActorTimeoutException private[akka](message: String) extends AkkaException(message)
|
||||
|
||||
sealed trait ErrorHandlerEventLevel {
|
||||
def asString: String
|
||||
}
|
||||
object HighErrorHandlerEventLevel extends ErrorHandlerEventLevel {
|
||||
def asString = "high"
|
||||
}
|
||||
object MediumErrorHandlerEventLevel extends ErrorHandlerEventLevel {
|
||||
def asString = "medium"
|
||||
}
|
||||
object LowErrorHandlerEventLevel extends ErrorHandlerEventLevel {
|
||||
def asString = "low"
|
||||
}
|
||||
|
||||
case class ErrorHandlerEvent(
|
||||
@BeanProperty val cause: Throwable,
|
||||
@BeanProperty val instance: AnyRef,
|
||||
@BeanProperty val message: String = "",
|
||||
@BeanProperty val level: ErrorHandlerEventLevel = MediumErrorHandlerEventLevel) {
|
||||
@BeanProperty val thread: Thread = Thread.currentThread
|
||||
}
|
||||
|
||||
// FIXME add flume listener
|
||||
// document writing custom
|
||||
|
||||
/**
|
||||
* Error handler.
|
||||
*
|
||||
* Create, add and remove a listener:
|
||||
* <pre>
|
||||
* val errorHandlerEventListener = new Actor {
|
||||
* self.dispatcher = ErrorHandler.ErrorHandlerDispatcher
|
||||
* self.dispatcher = EventHandler.EventHandlerDispatcher
|
||||
*
|
||||
* def receive = {
|
||||
* case ErrorHandlerEvent(cause, message, level) =>
|
||||
* case EventHandler.Error(cause, instance, message) => ...
|
||||
* case EventHandler.Warning(cause, instance, message) => ...
|
||||
* case EventHandler.Info(instance, message) => ...
|
||||
* case EventHandler.Debug(instance, message) => ...
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* ErrorHandler.addListener(errorHandlerEventListener)
|
||||
* EventHandler.addListener(errorHandlerEventListener)
|
||||
* ...
|
||||
* ErrorHandler.removeListener(errorHandlerEventListener)
|
||||
* EventHandler.removeListener(errorHandlerEventListener)
|
||||
* </pre>
|
||||
*
|
||||
* Log an error event:
|
||||
* <pre>
|
||||
* ErrorHandler notifyListeners ErrorHandlerEvent(reason, this, message.toString)
|
||||
* EventHandler notifyListeners EventHandler.Error(exception, this, message.toString)
|
||||
* </pre>
|
||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||
*/
|
||||
object ErrorHandler extends ListenerManagement {
|
||||
object EventHandler extends ListenerManagement {
|
||||
import java.io.{StringWriter, PrintWriter}
|
||||
import java.text.DateFormat
|
||||
import java.util.Date
|
||||
import akka.dispatch.Dispatchers
|
||||
|
||||
val error = "[error:%s] [%s] [%s] [%s] %s\n%s".intern
|
||||
val ID = "default:error:handler"
|
||||
val ErrorHandlerDispatcher = Dispatchers.newExecutorBasedEventDrivenDispatcher(ID).build
|
||||
sealed trait Event {
|
||||
val thread: Thread = Thread.currentThread
|
||||
}
|
||||
case class Error(cause: Throwable, instance: AnyRef, message: String = "") extends Event
|
||||
case class Warning(cause: Throwable, instance: AnyRef, message: String = "") extends Event
|
||||
case class Info(instance: AnyRef, message: String = "") extends Event
|
||||
case class Debug(instance: AnyRef, message: String = "") extends Event
|
||||
|
||||
val error = "[ERROR] [%s] [%s] [%s] %s\n%s".intern
|
||||
val warning = "[WARN] [%s] [%s] [%s] %s\n%s".intern
|
||||
val info = "[INFO] [%s] [%s] [%s] %s".intern
|
||||
val debug = "[DEBUG] [%s] [%s] [%s] %s".intern
|
||||
val ID = "default:error:handler".intern
|
||||
|
||||
val EventHandlerDispatcher = Dispatchers.newExecutorBasedEventDrivenDispatcher(ID).build
|
||||
|
||||
def formattedTimestamp = DateFormat.getInstance.format(new Date)
|
||||
|
||||
|
|
@ -142,18 +143,35 @@ object ErrorHandler extends ListenerManagement {
|
|||
|
||||
class DefaultListener extends Actor {
|
||||
self.id = ID
|
||||
self.dispatcher = ErrorHandlerDispatcher
|
||||
self.dispatcher = EventHandlerDispatcher
|
||||
|
||||
def receive = {
|
||||
case event @ ErrorHandlerEvent(cause, instance, message, level) =>
|
||||
val log = error.format(
|
||||
level.asString,
|
||||
case event @ Error(cause, instance, message) =>
|
||||
println(error.format(
|
||||
formattedTimestamp,
|
||||
event.thread.getName,
|
||||
instance.getClass.getSimpleName,
|
||||
message,
|
||||
stackTraceFor(cause))
|
||||
println(log)
|
||||
stackTraceFor(cause)))
|
||||
case event @ Warning(cause, instance, message) =>
|
||||
println(warning.format(
|
||||
formattedTimestamp,
|
||||
event.thread.getName,
|
||||
instance.getClass.getSimpleName,
|
||||
message,
|
||||
stackTraceFor(cause)))
|
||||
case event @ Info(instance, message) =>
|
||||
println(info.format(
|
||||
formattedTimestamp,
|
||||
event.thread.getName,
|
||||
instance.getClass.getSimpleName,
|
||||
message))
|
||||
case event @ Debug(instance, message) =>
|
||||
println(debug.format(
|
||||
formattedTimestamp,
|
||||
event.thread.getName,
|
||||
instance.getClass.getSimpleName,
|
||||
message))
|
||||
case _ => {}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -799,7 +799,8 @@ class LocalActorRef private[akka] (
|
|||
else throw new IllegalActorStateException("Expected a future from remote call to actor " + toString)
|
||||
} else {
|
||||
val future = if (senderFuture.isDefined) senderFuture else Some(new DefaultCompletableFuture[T](timeout))
|
||||
dispatcher dispatchMessage new MessageInvocation(this, message, senderOption, future.asInstanceOf[Some[CompletableFuture[Any]]])
|
||||
dispatcher dispatchMessage new MessageInvocation(
|
||||
this, message, senderOption, future.asInstanceOf[Some[CompletableFuture[Any]]])
|
||||
future.get
|
||||
}
|
||||
}
|
||||
|
|
@ -808,8 +809,7 @@ class LocalActorRef private[akka] (
|
|||
* Callback for the dispatcher. This is the single entry point to the user Actor implementation.
|
||||
*/
|
||||
protected[akka] def invoke(messageHandle: MessageInvocation): Unit = guard.withGuard {
|
||||
if (isShutdown) {}
|
||||
else {
|
||||
if (!isShutdown) {
|
||||
currentMessage = messageHandle
|
||||
try {
|
||||
try {
|
||||
|
|
@ -817,14 +817,16 @@ class LocalActorRef private[akka] (
|
|||
actor(messageHandle.message)
|
||||
currentMessage = null // reset current message after successful invocation
|
||||
} catch {
|
||||
case e: InterruptedException => { currentMessage = null } // received message while actor is shutting down, ignore
|
||||
case e => handleExceptionInDispatch(e, messageHandle.message)
|
||||
case e: InterruptedException =>
|
||||
currentMessage = null // received message while actor is shutting down, ignore
|
||||
case e =>
|
||||
handleExceptionInDispatch(e, messageHandle.message)
|
||||
} finally {
|
||||
checkReceiveTimeout // Reschedule receive timeout
|
||||
}
|
||||
} catch {
|
||||
case e =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this, messageHandle.message.toString)
|
||||
case e: Throwable =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this, messageHandle.message.toString)
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
|
@ -839,7 +841,7 @@ class LocalActorRef private[akka] (
|
|||
dead.restart(reason, maxRetries, within)
|
||||
|
||||
case _ =>
|
||||
if(_supervisor.isDefined)
|
||||
if (_supervisor.isDefined)
|
||||
notifySupervisorWithMessage(Exit(this, reason))
|
||||
else
|
||||
dead.stop
|
||||
|
|
@ -986,7 +988,7 @@ class LocalActorRef private[akka] (
|
|||
}
|
||||
|
||||
private def handleExceptionInDispatch(reason: Throwable, message: Any) = {
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(reason, this, message.toString)
|
||||
EventHandler notifyListeners EventHandler.Error(reason, this, message.toString)
|
||||
|
||||
//Prevent any further messages to be processed until the actor has been restarted
|
||||
dispatcher.suspend(this)
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ object Scheduler {
|
|||
initialDelay, delay, timeUnit).asInstanceOf[ScheduledFuture[AnyRef]]
|
||||
} catch {
|
||||
case e: Exception =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this, receiver + " @ " + message)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this, receiver + " @ " + message)
|
||||
throw SchedulerException(message + " could not be scheduled on " + receiver, e)
|
||||
}
|
||||
}
|
||||
|
|
@ -59,7 +59,7 @@ object Scheduler {
|
|||
service.scheduleAtFixedRate(runnable, initialDelay, delay, timeUnit).asInstanceOf[ScheduledFuture[AnyRef]]
|
||||
} catch {
|
||||
case e: Exception =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
throw SchedulerException("Failed to schedule a Runnable", e)
|
||||
}
|
||||
}
|
||||
|
|
@ -74,7 +74,7 @@ object Scheduler {
|
|||
delay, timeUnit).asInstanceOf[ScheduledFuture[AnyRef]]
|
||||
} catch {
|
||||
case e: Exception =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this, receiver + " @ " + message)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this, receiver + " @ " + message)
|
||||
throw SchedulerException( message + " could not be scheduleOnce'd on " + receiver, e)
|
||||
}
|
||||
}
|
||||
|
|
@ -95,7 +95,7 @@ object Scheduler {
|
|||
service.schedule(runnable,delay, timeUnit).asInstanceOf[ScheduledFuture[AnyRef]]
|
||||
} catch {
|
||||
case e: Exception =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
throw SchedulerException("Failed to scheduleOnce a Runnable", e)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
package akka.config
|
||||
|
||||
import akka.AkkaException
|
||||
import akka.actor.{ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{EventHandler}
|
||||
import net.lag.configgy.{Config => CConfig, Configgy, ParseException}
|
||||
|
||||
import java.net.InetSocketAddress
|
||||
|
|
@ -63,7 +63,7 @@ object Config {
|
|||
val e = new ConfigurationException(
|
||||
"Config could not be loaded from -Dakka.config=" + configFile +
|
||||
"\n\tdue to: " + cause.toString)
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
throw e
|
||||
|
||||
}
|
||||
|
|
@ -77,7 +77,7 @@ object Config {
|
|||
val e = new ConfigurationException(
|
||||
"Can't load '" + confName + "' config file from application classpath," +
|
||||
"\n\tdue to: " + cause.toString)
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
throw e
|
||||
}
|
||||
Configgy.config
|
||||
|
|
@ -94,7 +94,7 @@ object Config {
|
|||
"AKKA_HOME is defined as [" + HOME.get + "] " +
|
||||
"\n\tbut the 'akka.conf' config file can not be found at [" + HOME.get + "/config/"+ confName + "]," +
|
||||
"\n\tdue to: " + cause.toString)
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
throw e
|
||||
}
|
||||
Configgy.config
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ package akka.dataflow
|
|||
import java.util.concurrent.atomic.AtomicReference
|
||||
import java.util.concurrent.{ConcurrentLinkedQueue, LinkedBlockingQueue}
|
||||
|
||||
import akka.actor.{Actor, ActorRef, ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{Actor, ActorRef, EventHandler}
|
||||
import akka.actor.Actor._
|
||||
import akka.dispatch.CompletableFuture
|
||||
import akka.AkkaException
|
||||
|
|
@ -148,7 +148,7 @@ object DataFlow {
|
|||
(out !! Get).as[T]
|
||||
} catch {
|
||||
case e: Exception =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
out ! Exit
|
||||
throw e
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
package akka.dispatch
|
||||
|
||||
import akka.actor.{ActorRef, IllegalActorStateException, ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{ActorRef, IllegalActorStateException, EventHandler}
|
||||
import akka.util.{ReflectiveAccess, Switch}
|
||||
|
||||
import java.util.Queue
|
||||
|
|
@ -132,7 +132,7 @@ class ExecutorBasedEventDrivenDispatcher(
|
|||
executorService.get() execute mbox
|
||||
} catch {
|
||||
case e: RejectedExecutionException =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this, _name)
|
||||
EventHandler notifyListeners EventHandler.Warning(e, this, _name)
|
||||
mbox.dispatcherLock.unlock()
|
||||
throw e
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ package akka.dispatch
|
|||
|
||||
import akka.AkkaException
|
||||
import akka.actor.Actor.spawn
|
||||
import akka.actor.{Actor, ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{Actor, EventHandler}
|
||||
import akka.routing.Dispatcher
|
||||
import akka.japi.Procedure
|
||||
|
||||
|
|
@ -36,8 +36,8 @@ object Futures {
|
|||
try {
|
||||
f completeWithResult body
|
||||
} catch {
|
||||
case e =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Exception =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
f completeWithException e
|
||||
}
|
||||
})(dispatcher)
|
||||
|
|
@ -103,7 +103,7 @@ object Futures {
|
|||
result completeWithResult r
|
||||
} catch {
|
||||
case e: Exception =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
result completeWithException e
|
||||
}
|
||||
}
|
||||
|
|
@ -262,8 +262,8 @@ sealed trait Future[T] {
|
|||
fa complete (try {
|
||||
Right(f(v.right.get))
|
||||
} catch {
|
||||
case e =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Exception =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
Left(e)
|
||||
})
|
||||
}
|
||||
|
|
@ -290,8 +290,8 @@ sealed trait Future[T] {
|
|||
try {
|
||||
f(v.right.get) onComplete (fa.completeWith(_))
|
||||
} catch {
|
||||
case e =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Exception =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
fa completeWithException e
|
||||
}
|
||||
}
|
||||
|
|
@ -320,8 +320,8 @@ sealed trait Future[T] {
|
|||
if (p(r)) Right(r)
|
||||
else Left(new MatchError(r))
|
||||
} catch {
|
||||
case e =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Exception =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
Left(e)
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import atomic.{AtomicLong, AtomicInteger}
|
|||
import ThreadPoolExecutor.CallerRunsPolicy
|
||||
|
||||
import akka.util.Duration
|
||||
import akka.actor.{ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{EventHandler}
|
||||
|
||||
object ThreadPoolConfig {
|
||||
type Bounds = Int
|
||||
|
|
@ -208,10 +208,10 @@ class BoundedExecutorDecorator(val executor: ExecutorService, bound: Int) extend
|
|||
})
|
||||
} catch {
|
||||
case e: RejectedExecutionException =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
EventHandler notifyListeners EventHandler.Warning(e, this)
|
||||
semaphore.release
|
||||
case e =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Throwable =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
package akka.routing
|
||||
|
||||
import akka.actor.{Actor, ActorRef, ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{Actor, ActorRef, EventHandler}
|
||||
|
||||
/**
|
||||
* Actor pooling
|
||||
|
|
@ -84,7 +84,7 @@ trait DefaultActorPool extends ActorPool
|
|||
future completeWithResult (delegate !! msg).getOrElse(None)
|
||||
} catch {
|
||||
case e =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
future completeWithException e
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ package akka.util
|
|||
|
||||
import java.util.concurrent.locks.{ReentrantReadWriteLock, ReentrantLock}
|
||||
import java.util.concurrent.atomic. {AtomicBoolean}
|
||||
import akka.actor.{ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{EventHandler}
|
||||
|
||||
/**
|
||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||
|
|
@ -125,8 +125,8 @@ class Switch(startAsOn: Boolean = false) {
|
|||
try {
|
||||
action
|
||||
} catch {
|
||||
case t =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(t, this)
|
||||
case t: Throwable =>
|
||||
EventHandler notifyListeners EventHandler.Error(t, this)
|
||||
switch.compareAndSet(!from, from) //Revert status
|
||||
throw t
|
||||
}
|
||||
|
|
|
|||
|
|
@ -124,8 +124,7 @@ object ReflectiveAccess {
|
|||
ctor.setAccessible(true)
|
||||
Some(ctor.newInstance(args: _*).asInstanceOf[T])
|
||||
} catch {
|
||||
case e =>
|
||||
//ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Exception =>
|
||||
None
|
||||
}
|
||||
|
||||
|
|
@ -141,8 +140,7 @@ object ReflectiveAccess {
|
|||
ctor.setAccessible(true)
|
||||
Some(ctor.newInstance(args: _*).asInstanceOf[T])
|
||||
} catch {
|
||||
case e =>
|
||||
//ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Exception =>
|
||||
None
|
||||
}
|
||||
|
||||
|
|
@ -154,11 +152,9 @@ object ReflectiveAccess {
|
|||
Option(instance.get(null).asInstanceOf[T])
|
||||
} catch {
|
||||
case e: ClassNotFoundException => {
|
||||
//ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
None
|
||||
}
|
||||
case ei: ExceptionInInitializerError => {
|
||||
//ErrorHandler notifyListeners ErrorHandlerEvent(ei, this)
|
||||
throw ei
|
||||
}
|
||||
}
|
||||
|
|
@ -167,8 +163,7 @@ object ReflectiveAccess {
|
|||
assert(fqn ne null)
|
||||
Some(classloader.loadClass(fqn).asInstanceOf[Class[T]])
|
||||
} catch {
|
||||
case e =>
|
||||
//ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Exception =>
|
||||
None
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
package akka.http
|
||||
|
||||
import akka.actor.{ActorRegistry, ActorRef, Actor}
|
||||
import akka.actor.{ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{EventHandler}
|
||||
|
||||
import javax.servlet.http.{HttpServletResponse, HttpServletRequest}
|
||||
import javax.servlet.http.HttpServlet
|
||||
|
|
@ -388,8 +388,8 @@ trait RequestMethod {
|
|||
true
|
||||
}
|
||||
} catch {
|
||||
case io =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(io, this)
|
||||
case io: Exception =>
|
||||
EventHandler notifyListeners EventHandler.Error(io, this)
|
||||
false
|
||||
}
|
||||
}
|
||||
|
|
@ -408,7 +408,7 @@ trait RequestMethod {
|
|||
}
|
||||
} catch {
|
||||
case io: IOException =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(io, this)
|
||||
EventHandler notifyListeners EventHandler.Error(io, this)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ package akka.http
|
|||
import javax.servlet. {AsyncContext, AsyncListener, AsyncEvent};
|
||||
import Types._
|
||||
|
||||
import akka.actor.{ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{EventHandler}
|
||||
|
||||
/**
|
||||
* @author Garrick Evans
|
||||
|
|
@ -36,7 +36,7 @@ trait Servlet30Context extends AsyncListener {
|
|||
}
|
||||
catch {
|
||||
case ex: IllegalStateException =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(ex, this)
|
||||
EventHandler notifyListeners EventHandler.Error(ex, this)
|
||||
false
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
package akka.security
|
||||
|
||||
import akka.actor.{Scheduler, Actor, ActorRef, ActorRegistry, IllegalActorStateException}
|
||||
import akka.actor.{ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{EventHandler}
|
||||
import akka.actor.Actor._
|
||||
import akka.config.Config
|
||||
|
||||
|
|
@ -369,8 +369,8 @@ trait SpnegoAuthenticationActor extends AuthenticationActor[SpnegoCredentials] {
|
|||
Some(UserInfo(user, null, rolesFor(user)))
|
||||
} catch {
|
||||
case e: PrivilegedActionException => {
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
return None
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
None
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import akka.remoteinterface._
|
|||
import akka.actor. {Index, ActorInitializationException, LocalActorRef, newUuid, ActorRegistry, Actor, RemoteActorRef, TypedActor, ActorRef, IllegalActorStateException, RemoteActorSystemMessage, uuidFrom, Uuid, Exit, LifeCycleMessage, ActorType => AkkaActorType}
|
||||
import akka.AkkaException
|
||||
import akka.actor.Actor._
|
||||
import akka.actor.{ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{EventHandler}
|
||||
import akka.util._
|
||||
import akka.remote.{MessageSerializer, RemoteClientSettings, RemoteServerSettings}
|
||||
|
||||
|
|
@ -428,8 +428,8 @@ class ActiveRemoteClientHandler(
|
|||
throw new RemoteClientException("Unknown message received in remote client handler: " + other, client.module, client.remoteAddress)
|
||||
}
|
||||
} catch {
|
||||
case e: Exception =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Throwable =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
client.notifyListeners(RemoteClientError(e, client.module, client.remoteAddress))
|
||||
throw e
|
||||
}
|
||||
|
|
@ -485,8 +485,8 @@ class ActiveRemoteClientHandler(
|
|||
.getConstructor(Array[Class[_]](classOf[String]): _*)
|
||||
.newInstance(exception.getMessage).asInstanceOf[Throwable]
|
||||
} catch {
|
||||
case problem =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(problem, this)
|
||||
case problem: Throwable =>
|
||||
EventHandler notifyListeners EventHandler.Error(problem, this)
|
||||
UnparsableException(classname, exception.getMessage)
|
||||
}
|
||||
}
|
||||
|
|
@ -557,8 +557,8 @@ class NettyRemoteServer(serverModule: NettyRemoteServerModule, val host: String,
|
|||
bootstrap.releaseExternalResources
|
||||
serverModule.notifyListeners(RemoteServerShutdown(serverModule))
|
||||
} catch {
|
||||
case e =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Exception =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -589,8 +589,8 @@ trait NettyRemoteServerModule extends RemoteServerModule { self: RemoteModule =>
|
|||
currentServer.set(Some(new NettyRemoteServer(this, _hostname, _port, loader)))
|
||||
}
|
||||
} catch {
|
||||
case e =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Exception =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
notifyListeners(RemoteServerError(e, this))
|
||||
}
|
||||
this
|
||||
|
|
@ -903,7 +903,7 @@ class RemoteServerHandler(
|
|||
val actorRef =
|
||||
try { createActor(actorInfo, channel).start } catch {
|
||||
case e: SecurityException =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
write(channel, createErrorReplyMessage(e, request, AkkaActorType.ScalaActor))
|
||||
server.notifyListeners(RemoteServerError(e, server))
|
||||
return
|
||||
|
|
@ -990,8 +990,8 @@ class RemoteServerHandler(
|
|||
|
||||
write(channel, messageBuilder.build)
|
||||
} catch {
|
||||
case e: Throwable =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Exception =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
server.notifyListeners(RemoteServerError(e, server))
|
||||
}
|
||||
|
||||
|
|
@ -1007,11 +1007,11 @@ class RemoteServerHandler(
|
|||
}
|
||||
} catch {
|
||||
case e: InvocationTargetException =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
write(channel, createErrorReplyMessage(e.getCause, request, AkkaActorType.TypedActor))
|
||||
server.notifyListeners(RemoteServerError(e, server))
|
||||
case e: Throwable =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Exception =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
write(channel, createErrorReplyMessage(e, request, AkkaActorType.TypedActor))
|
||||
server.notifyListeners(RemoteServerError(e, server))
|
||||
}
|
||||
|
|
@ -1070,8 +1070,8 @@ class RemoteServerHandler(
|
|||
server.actorsByUuid.put(actorRef.uuid.toString, actorRef) // register by uuid
|
||||
actorRef
|
||||
} catch {
|
||||
case e =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Throwable =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
server.notifyListeners(RemoteServerError(e, server))
|
||||
throw e
|
||||
}
|
||||
|
|
@ -1137,8 +1137,8 @@ class RemoteServerHandler(
|
|||
server.typedActors.put(parseUuid(uuid).toString, newInstance) // register by uuid
|
||||
newInstance
|
||||
} catch {
|
||||
case e =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
case e: Throwable =>
|
||||
EventHandler notifyListeners EventHandler.Error(e, this)
|
||||
server.notifyListeners(RemoteServerError(e, server))
|
||||
throw e
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ package akka.transactor
|
|||
|
||||
import akka.config.Config
|
||||
import akka.stm.{Atomic, DefaultTransactionConfig, TransactionFactory}
|
||||
import akka.actor.{ErrorHandler, ErrorHandlerEvent}
|
||||
import akka.actor.{EventHandler}
|
||||
|
||||
import org.multiverse.api.{Transaction => MultiverseTransaction}
|
||||
import org.multiverse.commitbarriers.CountDownCommitBarrier
|
||||
|
|
@ -133,13 +133,7 @@ class Coordinated(val message: Any, barrier: CountDownCommitBarrier) {
|
|||
factory.addHooks
|
||||
val result = body
|
||||
val timeout = factory.config.timeout
|
||||
try {
|
||||
barrier.tryJoinCommit(mtx, timeout.length, timeout.unit)
|
||||
} catch {
|
||||
// Need to catch IllegalStateException until we have fix in Multiverse, since it throws it by mistake
|
||||
case e: IllegalStateException =>
|
||||
ErrorHandler notifyListeners ErrorHandlerEvent(e, this)
|
||||
}
|
||||
result
|
||||
}
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue