The following snipper throws the error below. But, if I move the TAct definition to outside, then this dosent happen. Might be a nube question. But, am curious why.
**********************************************************************************
object Supervisor1 extends App {
class Master extends Actor {
class TAct extends Actor { def receive = { case a: Any => } }
def receive = { case _:String => context.actorOf(Props[TAct]) ! "hell" }
}
val system = ActorSystem("Supervisor1System")
val master = system.actorOf(Props[Master],name = "master")
master ! ""
}
// Results in
/*
[ERROR] [02/10/2012 15:56:49.583] [ForkJoinPool-1-worker-1] [akka://Supervisor1System/user/master/$a] error while creating actor
java.lang.InstantiationException: ak.Supervisor1$Master$TAct
at java.lang.Class.newInstance0(Class.java:340)
at java.lang.Class.newInstance(Class.java:308)
at akka.actor.Props$$anonfun$apply$1.apply(Props.scala:46)
at akka.actor.Props$$anonfun$apply$1.apply(Props.scala:46)
at akka.actor.ActorCell.newActor(ActorCell.scala:344)
at akka.actor.ActorCell.create$1(ActorCell.scala:361)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:448)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:194)
at akka.dispatch.Mailbox.run(Mailbox.scala:163)
at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:448)
at akka.jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:268)
at akka.jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:929)
at akka.jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1303)
at akka.jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
*/