Hi Daniel, this is a bug somewhere in the fringe field between Scala and Java. You should be able to get around it by being more explicit:
import static akka.actor.SupervisorStrategy.restart; // and so on Regards, Roland 26 mar 2014 kl. 20:47 skrev Daniel Hinojosa <[email protected]>: > Using 2.3.0 akka-actor and 2.3.1 akka-actor, and checked with 1.7.0 and 1.8 > JVM: > > The following code generates a strange compile exception: > > package akkastudy.supervisorstrategy.java; > > import akka.actor.AllForOneStrategy; > import akka.actor.Props; > import akka.actor.SupervisorStrategy; > import akka.actor.UntypedActor; > import akka.japi.Function; > import scala.concurrent.duration.Duration; > > import java.util.concurrent.TimeUnit; > > import static akka.actor.SupervisorStrategy.*; > > public class AllForOneGrandparentActor extends UntypedActor { > > @Override > public SupervisorStrategy supervisorStrategy() { > return new AllForOneStrategy(10, Duration.create(1, TimeUnit.HOURS), > new Function<Throwable, SupervisorStrategy.Directive>() { > @Override > public SupervisorStrategy.Directive apply(Throwable > param) throws Exception { > if (param instanceof IllegalArgumentException) return > stop(); > if (param instanceof ArithmeticException) return > resume(); > if (param instanceof NullPointerException) return > restart(); > else return escalate(); > } > } > ); > } > > @Override > public void onReceive(Object message) throws Exception { > if (message instanceof Props) { > Props props = (Props) message; > getSender().tell(getContext().actorOf(props), self()); > } else unhandled(message); > } > } > > Where the exception is: > > [info] Compiling 18 Scala sources and 15 Java sources to > /home/danno/development/akka-study/target/scala-2.10/classes... > [error] > /home/danno/development/akka-study/src/main/java/akkastudy/supervisorstrategy/java/OneForOneGrandparentActor.java:12: > error: cannot access 1 > [error] import static akka.actor.SupervisorStrategy.*; > [error] ^ > [error] class file for akka.actor.SupervisorStrategy$1 not found > [error] > /home/danno/development/akka-study/src/main/java/akkastudy/supervisorstrategy/java/OneForOneGrandparentActor.java:21: > error: cannot find symbol > [error] if (param instanceof > IllegalArgumentException) return stop(); > [error] > ^ > [error] symbol: method stop() > [error] > /home/danno/development/akka-study/src/main/java/akkastudy/supervisorstrategy/java/OneForOneGrandparentActor.java:22: > error: cannot find symbol > [error] if (param instanceof ArithmeticException) > return resume(); > [error] > ^ > [error] symbol: method resume() > [error] > /home/danno/development/akka-study/src/main/java/akkastudy/supervisorstrategy/java/OneForOneGrandparentActor.java:23: > error: cannot find symbol > [error] if (param instanceof NullPointerException) > return restart(); > [error] > ^ > [error] symbol: method restart() > [error] > /home/danno/development/akka-study/src/main/java/akkastudy/supervisorstrategy/java/OneForOneGrandparentActor.java:24: > error: cannot find symbol > [error] else return escalate(); > [error] ^ > [error] symbol: method escalate() > > > The workaround would be to explicitly call SupervisorStrategy.resume() and > SupervisorStrategy.stop(), etc. without the static import. This had worked > previously. > > Does the problem occur elsewhere, like in the actual Scala and Java interop > itself? or is this an Akka issue? > > -- > >>>>>>>>>> Read the docs: http://akka.io/docs/ > >>>>>>>>>> Check the FAQ: > >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html > >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user > --- > You received this message because you are subscribed to the Google Groups > "Akka User List" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/akka-user. > For more options, visit https://groups.google.com/d/optout. Dr. Roland Kuhn Akka Tech Lead Typesafe – Reactive apps on the JVM. twitter: @rolandkuhn -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
