NPE on remoting TypedActor client
Leave a comment
on 2012-02-20 11:59 *
By viktorklang
I still need the full stacktrace
[INFO] [02/20/2012 16:05:34.400] [main] [ActorSystem(client)] REMOTE: RemoteServerStarted@akka://client@0.0.0.0:3100
[INFO] [02/20/2012 16:05:34.560] [main] [ActorSystem(client)] REMOTE: RemoteClientStarted@akka://server@127.0.0.1:3000
[WARN] [02/20/2012 16:05:34.589] [main] [ActorSystem(client)] REMOTE: RemoteClientWriteFailed@akka://server@127.0.0.1:3000: MessageClass[scala.Tuple3] Error[java.lang.NullPointerException:null
at akka.actor.ExtensionId$class.apply(Extension.scala:34)
at akka.serialization.SerializationExtension$.apply(SerializationExtension.scala:12)
at akka.actor.TypedActor$MethodCall$$anonfun$writeReplace$1.apply$mcVI$sp(TypedActor.scala:135)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:78)
at akka.actor.TypedActor$MethodCall.writeReplace(TypedActor.scala:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at java.io.ObjectStreamClass.invokeWriteReplace(ObjectStreamClass.java:1049)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1131)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at akka.serialization.JavaSerializer.toBinary(Serializer.scala:114)
at akka.remote.MessageSerializer$.serialize(MessageSerializer.scala:31)
at akka.remote.RemoteMarshallingOps$$anonfun$createRemoteMessageProtocolBuilder$1.apply(RemoteTransport.scala:267)
at akka.remote.RemoteMarshallingOps$$anonfun$createRemoteMessageProtocolBuilder$1.apply(RemoteTransport.scala:267)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at akka.remote.RemoteMarshallingOps$class.createRemoteMessageProtocolBuilder(RemoteTransport.scala:266)
at akka.remote.netty.NettyRemoteTransport.createRemoteMessageProtocolBuilder(NettyRemoteSupport.scala:29)
at akka.remote.netty.RemoteMessageEncoder.encode(NettyRemoteSupport.scala:200)
at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:61)
at org.jboss.netty.handler.execution.ExecutionHandler.handleDownstream(ExecutionHandler.java:165)
at org.jboss.netty.channel.Channels.write(Channels.java:605)
at org.jboss.netty.channel.Channels.write(Channels.java:572)
at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:245)
at akka.remote.netty.RemoteClient.send(Client.scala:75)
at akka.remote.netty.RemoteClient.send(Client.scala:62)
at akka.remote.netty.NettyRemoteTransport.send(NettyRemoteSupport.scala:136)
at akka.remote.RemoteActorRef.$bang(RemoteActorRefProvider.scala:247)
at akka.actor.TypedActor$TypedActorInvocationHandler.invoke(TypedActor.scala:359)
at $Proxy0.sayHello(Unknown Source)
at rta.Client.main(Client.java:25)
]
[INFO] [02/20/2012 16:05:34.594] [client-akka.actor.default-dispatcher-2] [ActorSystem(client)] REMOTE: RemoteClientShutdown@akka://server@127.0.0.1:3000
[ERROR] [02/20/2012 16:05:34.597] [client-3] [ActorSystem(client)] REMOTE: RemoteClientError@akka://server@127.0.0.1:3000: Error[java.lang.NullPointerException:null
at akka.actor.ExtensionId$class.apply(Extension.scala:34)
at akka.serialization.SerializationExtension$.apply(SerializationExtension.scala:12)
at akka.actor.TypedActor$MethodCall$$anonfun$writeReplace$1.apply$mcVI$sp(TypedActor.scala:135)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:78)
at akka.actor.TypedActor$MethodCall.writeReplace(TypedActor.scala:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at java.io.ObjectStreamClass.invokeWriteReplace(ObjectStreamClass.java:1049)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1131)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at akka.serialization.JavaSerializer.toBinary(Serializer.scala:114)
at akka.remote.MessageSerializer$.serialize(MessageSerializer.scala:31)
at akka.remote.RemoteMarshallingOps$$anonfun$createRemoteMessageProtocolBuilder$1.apply(RemoteTransport.scala:267)
at akka.remote.RemoteMarshallingOps$$anonfun$createRemoteMessageProtocolBuilder$1.apply(RemoteTransport.scala:267)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at akka.remote.RemoteMarshallingOps$class.createRemoteMessageProtocolBuilder(RemoteTransport.scala:266)
at akka.remote.netty.NettyRemoteTransport.createRemoteMessageProtocolBuilder(NettyRemoteSupport.scala:29)
at akka.remote.netty.RemoteMessageEncoder.encode(NettyRemoteSupport.scala:200)
at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:61)
at org.jboss.netty.handler.execution.ExecutionHandler.handleDownstream(ExecutionHandler.java:165)
at org.jboss.netty.channel.Channels.write(Channels.java:605)
at org.jboss.netty.channel.Channels.write(Channels.java:572)
at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:245)
at akka.remote.netty.RemoteClient.send(Client.scala:75)
at akka.remote.netty.RemoteClient.send(Client.scala:62)
at akka.remote.netty.NettyRemoteTransport.send(NettyRemoteSupport.scala:136)
at akka.remote.RemoteActorRef.$bang(RemoteActorRefProvider.scala:247)
at akka.actor.TypedActor$TypedActorInvocationHandler.invoke(TypedActor.scala:359)
at $Proxy0.sayHello(Unknown Source)
at rta.Client.main(Client.java:25)
]
[INFO] [02/20/2012 16:05:34.560] [main] [ActorSystem(client)] REMOTE: RemoteClientStarted@akka://server@127.0.0.1:3000
[WARN] [02/20/2012 16:05:34.589] [main] [ActorSystem(client)] REMOTE: RemoteClientWriteFailed@akka://server@127.0.0.1:3000: MessageClass[scala.Tuple3] Error[java.lang.NullPointerException:null
at akka.actor.ExtensionId$class.apply(Extension.scala:34)
at akka.serialization.SerializationExtension$.apply(SerializationExtension.scala:12)
at akka.actor.TypedActor$MethodCall$$anonfun$writeReplace$1.apply$mcVI$sp(TypedActor.scala:135)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:78)
at akka.actor.TypedActor$MethodCall.writeReplace(TypedActor.scala:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at java.io.ObjectStreamClass.invokeWriteReplace(ObjectStreamClass.java:1049)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1131)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at akka.serialization.JavaSerializer.toBinary(Serializer.scala:114)
at akka.remote.MessageSerializer$.serialize(MessageSerializer.scala:31)
at akka.remote.RemoteMarshallingOps$$anonfun$createRemoteMessageProtocolBuilder$1.apply(RemoteTransport.scala:267)
at akka.remote.RemoteMarshallingOps$$anonfun$createRemoteMessageProtocolBuilder$1.apply(RemoteTransport.scala:267)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at akka.remote.RemoteMarshallingOps$class.createRemoteMessageProtocolBuilder(RemoteTransport.scala:266)
at akka.remote.netty.NettyRemoteTransport.createRemoteMessageProtocolBuilder(NettyRemoteSupport.scala:29)
at akka.remote.netty.RemoteMessageEncoder.encode(NettyRemoteSupport.scala:200)
at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:61)
at org.jboss.netty.handler.execution.ExecutionHandler.handleDownstream(ExecutionHandler.java:165)
at org.jboss.netty.channel.Channels.write(Channels.java:605)
at org.jboss.netty.channel.Channels.write(Channels.java:572)
at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:245)
at akka.remote.netty.RemoteClient.send(Client.scala:75)
at akka.remote.netty.RemoteClient.send(Client.scala:62)
at akka.remote.netty.NettyRemoteTransport.send(NettyRemoteSupport.scala:136)
at akka.remote.RemoteActorRef.$bang(RemoteActorRefProvider.scala:247)
at akka.actor.TypedActor$TypedActorInvocationHandler.invoke(TypedActor.scala:359)
at $Proxy0.sayHello(Unknown Source)
at rta.Client.main(Client.java:25)
]
[INFO] [02/20/2012 16:05:34.594] [client-akka.actor.default-dispatcher-2] [ActorSystem(client)] REMOTE: RemoteClientShutdown@akka://server@127.0.0.1:3000
[ERROR] [02/20/2012 16:05:34.597] [client-3] [ActorSystem(client)] REMOTE: RemoteClientError@akka://server@127.0.0.1:3000: Error[java.lang.NullPointerException:null
at akka.actor.ExtensionId$class.apply(Extension.scala:34)
at akka.serialization.SerializationExtension$.apply(SerializationExtension.scala:12)
at akka.actor.TypedActor$MethodCall$$anonfun$writeReplace$1.apply$mcVI$sp(TypedActor.scala:135)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:78)
at akka.actor.TypedActor$MethodCall.writeReplace(TypedActor.scala:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at java.io.ObjectStreamClass.invokeWriteReplace(ObjectStreamClass.java:1049)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1131)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at akka.serialization.JavaSerializer.toBinary(Serializer.scala:114)
at akka.remote.MessageSerializer$.serialize(MessageSerializer.scala:31)
at akka.remote.RemoteMarshallingOps$$anonfun$createRemoteMessageProtocolBuilder$1.apply(RemoteTransport.scala:267)
at akka.remote.RemoteMarshallingOps$$anonfun$createRemoteMessageProtocolBuilder$1.apply(RemoteTransport.scala:267)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at akka.remote.RemoteMarshallingOps$class.createRemoteMessageProtocolBuilder(RemoteTransport.scala:266)
at akka.remote.netty.NettyRemoteTransport.createRemoteMessageProtocolBuilder(NettyRemoteSupport.scala:29)
at akka.remote.netty.RemoteMessageEncoder.encode(NettyRemoteSupport.scala:200)
at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:61)
at org.jboss.netty.handler.execution.ExecutionHandler.handleDownstream(ExecutionHandler.java:165)
at org.jboss.netty.channel.Channels.write(Channels.java:605)
at org.jboss.netty.channel.Channels.write(Channels.java:572)
at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:245)
at akka.remote.netty.RemoteClient.send(Client.scala:75)
at akka.remote.netty.RemoteClient.send(Client.scala:62)
at akka.remote.netty.NettyRemoteTransport.send(NettyRemoteSupport.scala:136)
at akka.remote.RemoteActorRef.$bang(RemoteActorRefProvider.scala:247)
at akka.actor.TypedActor$TypedActorInvocationHandler.invoke(TypedActor.scala:359)
at $Proxy0.sayHello(Unknown Source)
at rta.Client.main(Client.java:25)
]
Check latest master.
The client side NPE gone, but the server don't recognize the message
[INFO] [02/20/2012 19:53:01.958] [main] [ActorSystem(server)] REMOTE: RemoteServerStarted@akka://server@0.0.0.0:3000
hello from server
[INFO] [02/20/2012 19:53:08.282] [server-7] [ActorSystem(server)] REMOTE: RemoteClientStarted@akka://client@0.0.0.0:3100
[ERROR] [02/20/2012 19:53:08.418] [server-3] [NettyRemoteTransport(null)] dropping message MethodCall(public abstract void rta.service.HelloService.sayHello(java.lang.String),[Ljava.lang.Object;@6b46a226) for non-local recipient akka://server@127.0.0.1:3000/user/hello-service
[INFO] [02/20/2012 19:53:01.958] [main] [ActorSystem(server)] REMOTE: RemoteServerStarted@akka://server@0.0.0.0:3000
hello from server
[INFO] [02/20/2012 19:53:08.282] [server-7] [ActorSystem(server)] REMOTE: RemoteClientStarted@akka://client@0.0.0.0:3100
[ERROR] [02/20/2012 19:53:08.418] [server-3] [NettyRemoteTransport(null)] dropping message MethodCall(public abstract void rta.service.HelloService.sayHello(java.lang.String),[Ljava.lang.Object;@6b46a226) for non-local recipient akka://server@127.0.0.1:3000/user/hello-service
on 2012-02-20 15:22 *
By viktorklang
I've pushed a new commit to Akka master that expands on the logging output in this case.
Please run your example against that. Also, make sure you have everything correctly set up and that the type actor path is as you expect.
Please run your example against that. Also, make sure you have everything correctly set up and that the type actor path is as you expect.
[ERROR] [02/21/2012 09:11:36.832] [server-3] [NettyRemoteTransport(null)] dropping message MethodCall(public abstract void rta.service.HelloService.sayHello(java.lang.String),[Ljava.lang.Object;@594fb035) for non-local recipient akka://server@127.0.0.1:3000/user/hello-service at akka://server@0.0.0.0:3000 local is akka://server@0.0.0.0:3000
on 2012-02-21 10:47 *
By viktorklang
Hi Jarod, we do not do a DNS lookup for every inbound message as that would be horribly inefficient.
If you use the same hostname to bind to and to connect to, does it work then?
If you use the same hostname to bind to and to connect to, does it work then?
Great, thanks!