ActorRef subscription fails for nested class (Java)
Nested in the sense of being a non-public class in the same source file. For example the following three classes are all in BlaBlaTest.java
This throws a message like:
However, it all works when class Subscriber is put into a separate source file.
class BlaBlaTest {
public void akkaTest() {
final ActorRef subscriber = system.actorOf(new Props(Subscriber.class));
final ActorSystem system = ActorSystem.create("system");
system.eventStream().subscribe(subscriber, Event.class); <== throws exception
}
}
class Event {
}
class Subscriber extends UntypedActor {
@Override
public void onReceive(final Object message) {
System.out.println("Got " + message);
unhandled(message);
}
}
This throws a message like:
[ERROR] [06/11/2012 13:31:54.19] [system-akka.actor.default-dispatcher-2] [akka://optimus11/user/$a] error while creating actor
java.lang.IllegalAccessException: Class akka.actor.Props$$anonfun$$init$$2 can not access a member of class Subscriber with modifiers "public"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:95)
at java.lang.Class.newInstance0(Class.java:366)
at java.lang.Class.newInstance(Class.java:325)
at akka.actor.Props$$anonfun$$init$$2.apply(Props.scala:132)
at akka.actor.Props$$anonfun$$init$$2.apply(Props.scala:132)
at akka.actor.ActorCell.newActor(ActorCell.scala:488)
at akka.actor.ActorCell.create$1(ActorCell.scala:506)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:600)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:209)
at akka.dispatch.Mailbox.run(Mailbox.scala:178)
at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:516)
at akka.jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:259)
at akka.jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975)
at akka.jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1479)
at akka.jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
However, it all works when class Subscriber is put into a separate source file.
Leave a comment
on 2012-06-13 15:53 *
By viktorklang
Assigned to changed from rkuhn to viktorklang
Status changed from New to Test
on 2012-06-13 15:53 *
By viktorklang
Updating tickets (#2186, #2187, #2189, #2192, #2196, #2197, #2198, #2200, #2203, #2208, #2212, #2217, #2218, #2221, #2224, #2225, #2226, #2227, #2228, #2232, #2236, #2237, #2247, #2248, #2255, #2257, #2260, #2262, #2268, #2269, #2272, #2276, #2285, #2288, #2292, #2294, #2295, #2298, #2301, #2302, #2312, #2315, #2318, #2319, #2332, #2333, #2335, #2337, #2340, #2341, #2342, #2345)