Uploaded image for project: 'netconf'
  1. netconf
  2. NETCONF-606

ClassCastException: org.opendaylight.yangtools.yang.common.Revision cannot be cast to java.lang.String at org.opendaylight.yangtools.yang.data.impl.codec.StringStringCodec.serialize(StringStringCodec.java:22)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Highest Highest
    • Neon, Fluorine SR3, Sodium
    • Neon, Sodium
    • None
    • None

      While toying around with a GET /rests/yang-library-version in https://git.opendaylight.org/gerrit/#/c/80214/ (inspired by https://lists.opendaylight.org/pipermail/netconf-dev/2019-February/002037.html, but not using Toaster but /rests/yang-library-version, once I figured its /rests/ and not /restconf/) I hit this:

      [qtp817941759-22] WARN org.eclipse.jetty.server.HttpChannel - /rests/yang-library-version
      javax.servlet.ServletException: java.lang.ClassCastException: org.opendaylight.yangtools.yang.common.Revision cannot be cast to java.lang.String
      	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:489)
      	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
      	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
      	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
      	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
      	at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:51)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
      	at org.opendaylight.aaa.filterchain.filters.CustomFilterAdapter.doFilter(CustomFilterAdapter.java:78)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
      	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
      	at org.eclipse.jetty.server.Server.handle(Server.java:503)
      	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
      	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
      	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
      	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
      	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
      	at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.ClassCastException: org.opendaylight.yangtools.yang.common.Revision cannot be cast to java.lang.String
      	at org.opendaylight.yangtools.yang.data.impl.codec.StringStringCodec.serialize(StringStringCodec.java:22)
      	at org.opendaylight.yangtools.yang.data.codec.gson.AbstractJSONCodec.serialize(AbstractJSONCodec.java:38)
      	at org.opendaylight.yangtools.yang.data.codec.gson.QuotedJSONCodec.writeValue(QuotedJSONCodec.java:26)
      	at org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter.writeValue(JSONNormalizedNodeStreamWriter.java:269)
      	at org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter.leafNode(JSONNormalizedNodeStreamWriter.java:152)
      	at org.opendaylight.restconf.nb.rfc8040.jersey.providers.ParameterAwareNormalizedNodeWriter.wasProcessAsSimpleNode(ParameterAwareNormalizedNodeWriter.java:170)
      	at org.opendaylight.restconf.nb.rfc8040.jersey.providers.ParameterAwareNormalizedNodeWriter.write(ParameterAwareNormalizedNodeWriter.java:122)
      	at org.opendaylight.restconf.nb.rfc8040.jersey.providers.ParameterAwareNormalizedNodeWriter.write(ParameterAwareNormalizedNodeWriter.java:1)
      	at org.opendaylight.restconf.nb.rfc8040.jersey.providers.NormalizedNodeJsonBodyWriter.writeNormalizedNode(NormalizedNodeJsonBodyWriter.java:135)
      	at org.opendaylight.restconf.nb.rfc8040.jersey.providers.NormalizedNodeJsonBodyWriter.writeTo(NormalizedNodeJsonBodyWriter.java:94)
      	at org.opendaylight.restconf.nb.rfc8040.jersey.providers.NormalizedNodeJsonBodyWriter.writeTo(NormalizedNodeJsonBodyWriter.java:1)
      	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:265)
      	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:250)
      	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
      	at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:106)
      	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
      	at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:86)
      	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
      	at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1130)
      	at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:711)
      	at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:444)
      	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:434)
      	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:329)
      	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
      	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
      	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
      	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
      	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
      	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
      	... 29 more
      	Suppressed: java.io.IOException: Incomplete document
      		at com.google.gson.stream.JsonWriter.close(JsonWriter.java:559)
      		at org.opendaylight.restconf.nb.rfc8040.jersey.providers.NormalizedNodeJsonBodyWriter.writeTo(NormalizedNodeJsonBodyWriter.java:98)
      		... 51 more

      You can easily reproduce this using Patch Set 3 of c/80214.

      I'll try another approach and not pursue or help fix this - just wanted to let you know.

      rovarga FYI

            rovarga Robert Varga
            vorburger Michael Vorburger
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: