diff --git a/deploy/akka-samples-java-0.5.jar b/deploy/akka-samples-java-0.5.jar index 93ef575cf4..c6ab30f5b1 100644 Binary files a/deploy/akka-samples-java-0.5.jar and b/deploy/akka-samples-java-0.5.jar differ diff --git a/deploy/akka-samples-scala-0.5.jar b/deploy/akka-samples-scala-0.5.jar index 6d839a6d94..37c1edb25d 100644 Binary files a/deploy/akka-samples-scala-0.5.jar and b/deploy/akka-samples-scala-0.5.jar differ diff --git a/kernel/src/main/scala/jersey/AkkaServlet.scala b/kernel/src/main/scala/jersey/AkkaServlet.scala index 0c23c955fe..838ba93309 100644 --- a/kernel/src/main/scala/jersey/AkkaServlet.scala +++ b/kernel/src/main/scala/jersey/AkkaServlet.scala @@ -45,11 +45,12 @@ class AkkaServlet extends ServletContainer with AtmosphereServletProcessor with wa.initiate(rc,new ActorComponentProviderFactory(configurators)) } + //Borrowed from AbstractReflectorAtmosphereHandler override def onMessage(event : AtmosphereEvent[HttpServletRequest,HttpServletResponse]) : AtmosphereEvent[_,_] = { //log.info("onMessage: " + event.getMessage.toString) - if(event.getMessage ne null) + if(event.getMessage != null) { var isUsingStream = false try { @@ -58,16 +59,19 @@ class AkkaServlet extends ServletContainer with AtmosphereServletProcessor with case e: IllegalStateException => isUsingStream = true } + val data = event.getMessage.toString + if (isUsingStream){ - event.getResponse.getOutputStream.write(event.getMessage.toString.getBytes); + if(data != null) + event.getResponse.getOutputStream.write(data.getBytes) event.getResponse.getOutputStream.flush } else { - event.getResponse.getWriter.write(event.getMessage.toString) + event.getResponse.getWriter.write(data) event.getResponse.getWriter.flush } } else - log.info(new NullPointerException, "Null event message :/") + log.info("Null event message :/ req[ " + event.getRequest + "] res[" +event.getResponse + "]") event } @@ -84,14 +88,15 @@ class AkkaServlet extends ServletContainer with AtmosphereServletProcessor with } } -class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet with Logging +class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet { override def init(sconf : ServletConfig) = { val servlet = new AkkaServlet + this.config = new AtmosphereConfig - atmosphereHandlers.put("", new AtmosphereHandlerWrapper(servlet,new JerseyBroadcaster())) - - setCometSupport(new GrizzlyCometSupport(new AtmosphereConfig{ ah = servlet })) + atmosphereHandlers.put("", new AtmosphereHandlerWrapper(servlet,new JerseyBroadcaster)) + + setCometSupport(new GrizzlyCometSupport(config)) getCometSupport.init(sconf) servlet.init(sconf) diff --git a/lib/akka-kernel-0.5.jar b/lib/akka-kernel-0.5.jar index f515f106af..5a55064ea8 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 b564370cca..4a56e5b4ed 100644 Binary files a/lib/akka-util-java-0.5.jar and b/lib/akka-util-java-0.5.jar differ