No enum const class com.google.wave.api.EventType.OPERATION_ERROR

5 views
Skip to first unread message

Piotr Pejas

unread,
Nov 7, 2009, 2:49:23 PM11/7/09
to Google Wave API
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.serviceRequest
(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)


Best Regards
Piotr Pejas

Austin Chau (Google employee)

unread,
Nov 8, 2009, 9:09:15 PM11/8/09
to google-...@googlegroups.com
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

Piotr Pejas

unread,
Nov 9, 2009, 11:25:12 AM11/9/09
to google-...@googlegroups.com
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

Kris

unread,
Dec 1, 2009, 4:08:59 PM12/1/09
to Google Wave API
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)"

Jean-Pierre Fiset

unread,
Dec 18, 2009, 1:06:06 PM12/18/09
to Google Wave API
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.

To get more information, you must enable the robot to log at a FINEST
level, and then look in the logs for more information about the error.
This is discussed here:
http://www.bitsbythepound.com/debugging-a-google-wave-robot-by-inspecting-incoming-messages-291.html

Finally, a side discussion on the OPERATION_ERROR is discussed here:
http://www.bitsbythepound.com/how-to-change-the-state-of-a-gadget-using-a-google-wave-robot-293.html

Reply all
Reply to author
Forward
0 new messages