I wrote simple robot which listen to blip changes and append some html
if blip text match my regular expression and I get an exception when I
call appendMarkup on TextView, append method works but escapes html
and it's not what I need.
Am I doing something wrong or is it a bug?
My code:
transformer.transform(xml, result);
textView.appendMarkup(outputStream.toString());
and exception:
/_wave/robot/jsonrpc
java.lang.IllegalArgumentException: No enum const class
com.google.wave.api.EventType.OPERATION_ERROR
at java.lang.Enum.valueOf(Unknown Source)
at com.google.wave.api.EventType.valueOf(EventType.java:24)
at com.google.wave.api.impl.EventDataSerializer.unmarshall
(EventDataSerializer.java:94)
at com.metaparadigm.jsonrpc.JSONSerializer.unmarshall
(JSONSerializer.java:202)
at com.metaparadigm.jsonrpc.ListSerializer.unmarshall
(ListSerializer.java:101)
at com.metaparadigm.jsonrpc.JSONSerializer.unmarshall
(JSONSerializer.java:202)
at com.google.wave.api.impl.EventMessageBundleSerializer.unmarshall
(EventMessageBundleSerializer.java:87)
at com.metaparadigm.jsonrpc.JSONSerializer.unmarshall
(JSONSerializer.java:202)
at com.google.wave.api.AbstractRobotServlet.deserializeEvents
(AbstractRobotServlet.java:158)
at com.google.wave.api.AbstractRobotServlet.doPost
(AbstractRobotServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1093)
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter
(SaveSessionFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle
(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle
(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle
(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
(AppVersionHandlerMap.java:238)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
(HttpConnection.java:830)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable
(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceReques t
(JettyServletEngineAdapter.java:139)
at com.google.apphosting.runtime.JavaRuntime.handleRequest
(JavaRuntime.java:239)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime
$6.handleBlockingRequest(RuntimePb.java:5135)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime
$6.handleBlockingRequest(RuntimePb.java:5133)
at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest
(BlockingApplicationHandler.java:24)
at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
363)
at com.google.net.rpc.impl.Server$2.run(Server.java:814)
at com.google.tracing.LocalTraceSpanRunnable.run
(LocalTraceSpanRunnable.java:56)
at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan
(LocalTraceSpanBuilder.java:516)
at com.google.net.rpc.impl.Server.startRpc(Server.java:769)
at com.google.net.rpc.impl.Server.processRequest(Server.java:351)
at com.google.net.rpc.impl.ServerConnection.messageReceived
(ServerConnection.java:437)
at com.google.net.rpc.impl.RpcConnection.parseMessages
(RpcConnection.java:319)
at com.google.net.rpc.impl.RpcConnection.dataReceived
(RpcConnection.java:290)
at com.google.net.async.Connection.handleReadEvent(Connection.java:
436)
at com.google.net.async.EventDispatcher.processNetworkEvents
(EventDispatcher.java:762)
at com.google.net.async.EventDispatcher.internalLoop
(EventDispatcher.java:207)
at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:
101)
at com.google.net.rpc.RpcService.runUntilServerShutdown
(RpcService.java:251)
at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run
(JavaRuntime.java:396)
at java.lang.Thread.run(Unknown Source)
Since I don't have the full context of your code, I am suspecting that your
outputSream.toString() is returning content that is unserializable to the
client library. Keep in mind that appendMarkup() can only handle <i>,
<strong>, <em>, <b>.
On Sat, Nov 7, 2009 at 11:49 AM, Piotr Pejas <piotr.pe...@gmail.com> wrote:
> Hi everybody,
> I am new to group and wave.
> I wrote simple robot which listen to blip changes and append some html
> if blip text match my regular expression and I get an exception when I
> call appendMarkup on TextView, append method works but escapes html
> and it's not what I need.
> Am I doing something wrong or is it a bug?
> My code:
> transformer.transform(xml, result);
> textView.appendMarkup(outputStream.toString());
> and exception:
> /_wave/robot/jsonrpc
> java.lang.IllegalArgumentException: No enum const class
> com.google.wave.api.EventType.OPERATION_ERROR
> at java.lang.Enum.valueOf(Unknown Source)
> at com.google.wave.api.EventType.valueOf(EventType.java:24)
> at com.google.wave.api.impl.EventDataSerializer.unmarshall
> (EventDataSerializer.java:94)
> at com.metaparadigm.jsonrpc.JSONSerializer.unmarshall
> (JSONSerializer.java:202)
> at com.metaparadigm.jsonrpc.ListSerializer.unmarshall
> (ListSerializer.java:101)
> at com.metaparadigm.jsonrpc.JSONSerializer.unmarshall
> (JSONSerializer.java:202)
> at com.google.wave.api.impl.EventMessageBundleSerializer.unmarshall
> (EventMessageBundleSerializer.java:87)
> at com.metaparadigm.jsonrpc.JSONSerializer.unmarshall
> (JSONSerializer.java:202)
> at com.google.wave.api.AbstractRobotServlet.deserializeEvents
> (AbstractRobotServlet.java:158)
> at com.google.wave.api.AbstractRobotServlet.doPost
> (AbstractRobotServlet.java:75)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> 487)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1093)
> at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter
> (SaveSessionFilter.java:35)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
> at
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
> (TransactionCleanupFilter.java:43)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle
> (ServletHandler.java:360)
> at org.mortbay.jetty.security.SecurityHandler.handle
> (SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle
> (SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle
> (ContextHandler.java:712)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> 405)
> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
> (AppVersionHandlerMap.java:238)
> at org.mortbay.jetty.handler.HandlerWrapper.handle
> (HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:313)
> at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> 506)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
> (HttpConnection.java:830)
> at
> com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable
> (RpcRequestParser.java:76)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceReques t
> (JettyServletEngineAdapter.java:139)
> at com.google.apphosting.runtime.JavaRuntime.handleRequest
> (JavaRuntime.java:239)
> at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:5135)
> at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:5133)
> at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest
> (BlockingApplicationHandler.java:24)
> at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
> 363)
> at com.google.net.rpc.impl.Server$2.run(Server.java:814)
> at com.google.tracing.LocalTraceSpanRunnable.run
> (LocalTraceSpanRunnable.java:56)
> at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan
> (LocalTraceSpanBuilder.java:516)
> at com.google.net.rpc.impl.Server.startRpc(Server.java:769)
> at com.google.net.rpc.impl.Server.processRequest(Server.java:351)
> at com.google.net.rpc.impl.ServerConnection.messageReceived
> (ServerConnection.java:437)
> at com.google.net.rpc.impl.RpcConnection.parseMessages
> (RpcConnection.java:319)
> at com.google.net.rpc.impl.RpcConnection.dataReceived
> (RpcConnection.java:290)
> at com.google.net.async.Connection.handleReadEvent(Connection.java:
> 436)
> at com.google.net.async.EventDispatcher.processNetworkEvents
> (EventDispatcher.java:762)
> at com.google.net.async.EventDispatcher.internalLoop
> (EventDispatcher.java:207)
> at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:
> 101)
> at com.google.net.rpc.RpcService.runUntilServerShutdown
> (RpcService.java:251)
> at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run
> (JavaRuntime.java:396)
> at java.lang.Thread.run(Unknown Source)
Thank you for clarification in javadoc there is no info which tags are
supported, and exception also wasn't very helpful.
I've built dynamic widget to work this around.
Best Regards
Piotr Pejas
On Mon, Nov 9, 2009 at 3:09 AM, Austin Chau (Google employee)
<api.aus...@google.com> wrote:
> Since I don't have the full context of your code, I am suspecting that your
> outputSream.toString() is returning content that is unserializable to the
> client library. Keep in mind that appendMarkup() can only handle <i>,
> <strong>, <em>, <b>.
> Austin
> On Sat, Nov 7, 2009 at 11:49 AM, Piotr Pejas <piotr.pe...@gmail.com> wrote:
>> Hi everybody,
>> I am new to group and wave.
>> I wrote simple robot which listen to blip changes and append some html
>> if blip text match my regular expression and I get an exception when I
>> call appendMarkup on TextView, append method works but escapes html
>> and it's not what I need.
>> Am I doing something wrong or is it a bug?
>> My code:
>> transformer.transform(xml, result);
>> textView.appendMarkup(outputStream.toString());
>> and exception:
>> /_wave/robot/jsonrpc
>> java.lang.IllegalArgumentException: No enum const class
>> com.google.wave.api.EventType.OPERATION_ERROR
>> at java.lang.Enum.valueOf(Unknown Source)
>> at com.google.wave.api.EventType.valueOf(EventType.java:24)
>> at com.google.wave.api.impl.EventDataSerializer.unmarshall
>> (EventDataSerializer.java:94)
>> at com.metaparadigm.jsonrpc.JSONSerializer.unmarshall
>> (JSONSerializer.java:202)
>> at com.metaparadigm.jsonrpc.ListSerializer.unmarshall
>> (ListSerializer.java:101)
>> at com.metaparadigm.jsonrpc.JSONSerializer.unmarshall
>> (JSONSerializer.java:202)
>> at com.google.wave.api.impl.EventMessageBundleSerializer.unmarshall
>> (EventMessageBundleSerializer.java:87)
>> at com.metaparadigm.jsonrpc.JSONSerializer.unmarshall
>> (JSONSerializer.java:202)
>> at com.google.wave.api.AbstractRobotServlet.deserializeEvents
>> (AbstractRobotServlet.java:158)
>> at com.google.wave.api.AbstractRobotServlet.doPost
>> (AbstractRobotServlet.java:75)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>> at
>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
>> 487)
>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
>> (ServletHandler.java:1093)
>> at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter
>> (SaveSessionFilter.java:35)
>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
>> (ServletHandler.java:1084)
>> at
>> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
>> (TransactionCleanupFilter.java:43)
>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
>> (ServletHandler.java:1084)
>> at org.mortbay.jetty.servlet.ServletHandler.handle
>> (ServletHandler.java:360)
>> at org.mortbay.jetty.security.SecurityHandler.handle
>> (SecurityHandler.java:216)
>> at org.mortbay.jetty.servlet.SessionHandler.handle
>> (SessionHandler.java:181)
>> at org.mortbay.jetty.handler.ContextHandler.handle
>> (ContextHandler.java:712)
>> at
>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
>> 405)
>> at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
>> (AppVersionHandlerMap.java:238)
>> at org.mortbay.jetty.handler.HandlerWrapper.handle
>> (HandlerWrapper.java:139)
>> at org.mortbay.jetty.Server.handle(Server.java:313)
>> at
>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
>> 506)
>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
>> (HttpConnection.java:830)
>> at
>> com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable
>> (RpcRequestParser.java:76)
>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
>> at
>> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceReques t
>> (JettyServletEngineAdapter.java:139)
>> at com.google.apphosting.runtime.JavaRuntime.handleRequest
>> (JavaRuntime.java:239)
>> at com.google.apphosting.base.RuntimePb$EvaluationRuntime
>> $6.handleBlockingRequest(RuntimePb.java:5135)
>> at com.google.apphosting.base.RuntimePb$EvaluationRuntime
>> $6.handleBlockingRequest(RuntimePb.java:5133)
>> at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest
>> (BlockingApplicationHandler.java:24)
>> at
>> com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
>> 363)
>> at com.google.net.rpc.impl.Server$2.run(Server.java:814)
>> at com.google.tracing.LocalTraceSpanRunnable.run
>> (LocalTraceSpanRunnable.java:56)
>> at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan
>> (LocalTraceSpanBuilder.java:516)
>> at com.google.net.rpc.impl.Server.startRpc(Server.java:769)
>> at com.google.net.rpc.impl.Server.processRequest(Server.java:351)
>> at com.google.net.rpc.impl.ServerConnection.messageReceived
>> (ServerConnection.java:437)
>> at com.google.net.rpc.impl.RpcConnection.parseMessages
>> (RpcConnection.java:319)
>> at com.google.net.rpc.impl.RpcConnection.dataReceived
>> (RpcConnection.java:290)
>> at com.google.net.async.Connection.handleReadEvent(Connection.java:
>> 436)
>> at com.google.net.async.EventDispatcher.processNetworkEvents
>> (EventDispatcher.java:762)
>> at com.google.net.async.EventDispatcher.internalLoop
>> (EventDispatcher.java:207)
>> at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:
>> 101)
>> at com.google.net.rpc.RpcService.runUntilServerShutdown
>> (RpcService.java:251)
>> at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run
>> (JavaRuntime.java:396)
>> at java.lang.Thread.run(Unknown Source)
Interesting... I had assumed that appendMarkup() could translate any
HTML tag that was already supported by the rich text editor
(underline, bold, supertext, strikethrough, etc).
On Nov 8, 9:09 pm, "Austin Chau (Google employee)"
<api.aus...@google.com> wrote:
> Since I don't have the full context of your code, I am suspecting that your
> outputSream.toString() is returning content that is unserializable to the
> client library. Keep in mind that appendMarkup() can only handle <i>,
> <strong>, <em>, <b>.
> Austin
> On Sat, Nov 7, 2009 at 11:49 AM, Piotr Pejas <piotr.pe...@gmail.com> wrote:
> > Hi everybody,
> > I am new to group and wave.
> > I wrote simple robot which listen to blip changes and append some html
> > if blip text match my regular expression and I get an exception when I
> > call appendMarkup on TextView, append method works but escapes html
> > and it's not what I need.
> > Am I doing something wrong or is it a bug?
Basically, when a robot replies to the Wave server with a set of operations, these operations are performed by the Wave server. If an error occurs while attempting to perform the operations, the Robot is contacted again with an error event.
What you see in the log is the Wave Server letting you know that something went wrong. The issue with the current Wave-Robot-API library is that it is not able to decode the error, yielding to a critical error in the log. This is what you see.