diff --git a/.gitignore b/.gitignore
index 5f8375b431..8911959980 100755
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,4 @@ tm.out
_dump
WEB-INF
.DS_Store
+
diff --git a/akka.iws b/akka.iws
index 2ec05d891c..b33834ba23 100644
--- a/akka.iws
+++ b/akka.iws
@@ -6,32 +6,18 @@
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
-
-
-
-
-
+
+
@@ -51,6 +37,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -113,74 +127,40 @@
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
@@ -188,16 +168,52 @@
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -216,22 +232,22 @@
@@ -297,6 +313,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -327,6 +447,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -362,6 +582,10 @@
+
+
+
+
@@ -571,6 +795,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -581,6 +985,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -630,7 +1066,7 @@
-
+
@@ -1797,14 +2233,14 @@
-
+
-
+
-
+
@@ -1863,67 +2299,16 @@
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -1935,44 +2320,95 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/config/akka-reference.conf b/config/akka-reference.conf
index 5b79c85e31..3f672d1803 100644
--- a/config/akka-reference.conf
+++ b/config/akka-reference.conf
@@ -53,8 +53,8 @@
service = on
- storage-format = "serialization" # Options: serialization, scala-json, java-json
- blocking = false # inserts and queries should be blocking or not
+ storage-format = "java" # Options: java, scala-json, java-json
+ blocking = false # inserts and queries should be blocking or not
service = on
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java b/fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java
index 3d8b43ef2a..92b07020da 100644
--- a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java
+++ b/fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java
@@ -1,6 +1,6 @@
package se.scalablesolutions.akka.api;
-public class InMemFailer implements Serializable {
+public class InMemFailer implements java.io.Serializable {
public int fail() {
throw new RuntimeException("expected");
}
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentFailer.java b/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentFailer.java
index 3582daeeed..44cab7d6c3 100644
--- a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentFailer.java
+++ b/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentFailer.java
@@ -1,6 +1,6 @@
package se.scalablesolutions.akka.api;
-public class PersistentFailer implements Serializable {
+public class PersistentFailer implements java.io.Serializable {
public int fail() {
throw new RuntimeException("expected");
}
diff --git a/kernel/src/main/scala/Kernel.scala b/kernel/src/main/scala/Kernel.scala
index 73dc069343..7a9708aaea 100644
--- a/kernel/src/main/scala/Kernel.scala
+++ b/kernel/src/main/scala/Kernel.scala
@@ -69,7 +69,7 @@ object Kernel extends Logging {
hasBooted = true
}
}
-
+
def uptime = (System.currentTimeMillis - startTime) / 1000
def setupConfig: Config = {
diff --git a/kernel/src/main/scala/actor/ActiveObject.scala b/kernel/src/main/scala/actor/ActiveObject.scala
index c99efabb67..8835622027 100644
--- a/kernel/src/main/scala/actor/ActiveObject.scala
+++ b/kernel/src/main/scala/actor/ActiveObject.scala
@@ -279,21 +279,17 @@ sealed class ActorAroundAdvice(val target: Class[_],
val rtti = joinpoint.getRtti.asInstanceOf[MethodRtti]
val oneWay = isOneWay(rtti)
val (message: Array[AnyRef], isEscaped) = escapeArguments(rtti.getParameterValues)
- val supervisorId = {
- val id = actor.registerSupervisorAsRemoteActor
- if (id.isDefined) id.get
- else null
- }
val requestBuilder = RemoteRequest.newBuilder
.setId(RemoteRequestIdFactory.nextId)
.setMethod(rtti.getMethod.getName)
.setTarget(target.getName)
.setTimeout(timeout)
- .setSupervisorUuid(supervisorId)
.setIsActor(false)
.setIsOneWay(oneWay)
.setIsEscaped(false)
RemoteProtocolBuilder.setMessage(message, requestBuilder)
+ val id = actor.registerSupervisorAsRemoteActor
+ if (id.isDefined) requestBuilder.setSupervisorUuid(id.get)
val remoteMessage = requestBuilder.build
val future = RemoteClient.clientFor(remoteAddress.get).send(remoteMessage)
if (oneWay) null // for void methods
diff --git a/kernel/src/main/scala/nio/RemoteClient.scala b/kernel/src/main/scala/nio/RemoteClient.scala
index 80a03c826d..cb3beef42e 100644
--- a/kernel/src/main/scala/nio/RemoteClient.scala
+++ b/kernel/src/main/scala/nio/RemoteClient.scala
@@ -170,6 +170,7 @@ class RemoteClientHandler(val futures: ConcurrentMap[Long, CompletableFutureResu
private def parseException(reply: RemoteReply) = {
val exception = reply.getException
+ println("-------------- " + exception)
val exceptionType = Class.forName(exception.substring(0, exception.indexOf('$')))
val exceptionMessage = exception.substring(exception.indexOf('$') + 1, exception.length)
exceptionType
diff --git a/kernel/src/main/scala/nio/RemoteServer.scala b/kernel/src/main/scala/nio/RemoteServer.scala
index e701c40637..96cc15fe91 100644
--- a/kernel/src/main/scala/nio/RemoteServer.scala
+++ b/kernel/src/main/scala/nio/RemoteServer.scala
@@ -142,7 +142,7 @@ class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging {
log.debug("Dispatching to remote active object [%s :: %s]", request.getMethod, request.getTarget)
val activeObject = createActiveObject(request.getTarget, request.getTimeout)
- val args = RemoteProtocolBuilder.getMessage(request).asInstanceOf[scala.List[AnyRef]]
+ val args = RemoteProtocolBuilder.getMessage(request).asInstanceOf[Array[AnyRef]].toList
val argClasses = args.map(_.getClass)
val (unescapedArgs, unescapedArgClasses) = unescapeArgs(args, argClasses, request.getTimeout)
@@ -168,7 +168,6 @@ class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging {
val replyBuilder = RemoteReply.newBuilder
.setId(request.getId)
.setException(e.getCause.getClass.getName + "$" + e.getCause.getMessage)
- .setException(e.getCause.toString)
.setIsSuccessful(false)
.setIsActor(false)
if (request.hasSupervisorUuid) replyBuilder.setSupervisorUuid(request.getSupervisorUuid)
@@ -201,9 +200,9 @@ class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging {
val escapedArgs = for (i <- 0 until args.size) {
val arg = args(i)
- if (arg.isInstanceOf[String] && arg.asInstanceOf[String] == "$$ProxiedByAW") {
+ if (arg.isInstanceOf[String] && arg.asInstanceOf[String].startsWith("$$ProxiedByAW")) {
val argString = arg.asInstanceOf[String]
- val proxyName = argString.substring(argString.indexOf("$$ProxiedByAW"), argString.length)
+ val proxyName = argString.replace("$$ProxiedByAW", "") //argString.substring(argString.indexOf("$$ProxiedByAW"), argString.length)
val activeObject = createActiveObject(proxyName, timeout)
unescapedArgs(i) = activeObject
unescapedArgClasses(i) = Class.forName(proxyName)
diff --git a/kernel/src/main/scala/state/CassandraStorage.scala b/kernel/src/main/scala/state/CassandraStorage.scala
index 1f6472675d..b065f87e03 100644
--- a/kernel/src/main/scala/state/CassandraStorage.scala
+++ b/kernel/src/main/scala/state/CassandraStorage.scala
@@ -45,8 +45,8 @@ object CassandraStorage extends Logging {
case "java-json" => Serializer.JavaJSON
//case "sbinary" => Serializer.SBinary
case "java" => Serializer.Java
- case "avro" => throw new UnsupportedOperationException("Avro serialization protocol is not yet supported")
- case unknown => throw new UnsupportedOperationException("unknwon storage protocol [" + unknown + "]")
+ case "avro" => throw new UnsupportedOperationException("Avro serialization protocol is not yet supported")
+ case unknown => throw new UnsupportedOperationException("Unknown storage serialization protocol [" + unknown + "]")
}
}
diff --git a/lib/akka-kernel-0.5.jar b/lib/akka-kernel-0.5.jar
index bd48a71245..3c100f45ac 100644
Binary files a/lib/akka-kernel-0.5.jar and b/lib/akka-kernel-0.5.jar differ
diff --git a/lib/akka-util-java-0.5.jar b/lib/akka-util-java-0.5.jar
index cf9eed0832..7a2dc25254 100644
Binary files a/lib/akka-util-java-0.5.jar and b/lib/akka-util-java-0.5.jar differ