[Google Wave APIs] Re: No enum const class com.google.wave.api.EventType.OPERATION_ERROR
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 -- You received this message because you are subscribed to the Google Groups "Google Wave API" group. To post to this group, send email to google-wave-...@googlegroups.com. To unsubscribe from this group, send email to google-wave-api+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-wave-api?hl=en.
[Google Wave APIs] Re: No enum const class com.google.wave.api.EventType.OPERATION_ERROR
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)" 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 , > , , . > > Austin > > > > On Sat, Nov 7, 2009 at 11:49 AM, Piotr Pejas 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) > >
[Google Wave APIs] Re: No enum const class com.google.wave.api.EventType.OPERATION_ERROR
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) 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 , > , , . > Austin > > On Sat, Nov 7, 2009 at 11:49 AM, Piotr Pejas 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.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) >>
[Google Wave APIs] Re: No enum const class com.google.wave.api.EventType.OPERATION_ERROR
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 , , , . Austin On Sat, Nov 7, 2009 at 11:49 AM, Piotr Pejas 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.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.