Uploaded image for project: 'yangtools'
  1. yangtools
  2. YANGTOOLS-748

Writing Json output fails on attribute with empty value

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • None
    • None
    • None
    • None
    • Operating System: All
      Platform: All

    • 7833

    Description

      0. step
      Download and install honeycomb/vbd project. No additional features are installed.

      1. step
      PUT http://localhost:8181/restconf/config/ietf-interfaces:interfaces/interface/GigabitEthernet0%2F8%2F0

      {
      "interface" :

      { "name" : "GigabitEthernet0/8/0", "type" : "" }

      }

      2. step
      PUT http://localhost:8181/restconf/config/ietf-interfaces:interfaces/interface/GigabitEthernet0%2F8%2F0/vpp-vlan:sub-interfaces/sub-interface/2420

      {
      "vpp-vlan:sub-interface": [
      {
      "identifier": 2420,
      "match": {
      "vlan-tagged":

      { "match-exact-tags": true }

      },
      "vlan-type": "vpp-vlan:802dot1q",
      "enabled": false,
      "l2": {
      "bridge-domain": "c440a0fa-e91d-4ef0-b6c5-1af5ff8c4ad9",
      "bridged-virtual-interface": false,
      "rewrite":

      { "pop-tags": 1 }

      },
      "tags": {
      "tag": [
      {
      "index": 0,
      "dot1q-tag":

      { "tag-type": "dot1q-types:s-vlan", "vlan-id": "2420" }

      }
      ]
      }
      }
      ]
      }

      3. step
      GET http://localhost:8181/restconf/18/data/ietf-interfaces:interfaces

      result:

      java.lang.NullPointerException
      at org.opendaylight.yangtools.yang.data.util.AbstractNamespaceCodec.appendQName(AbstractNamespaceCodec.java:45)
      at org.opendaylight.yangtools.yang.data.util.AbstractStringIdentityrefCodec.serialize(AbstractStringIdentityrefCodec.java:23)
      at org.opendaylight.yangtools.yang.data.codec.gson.JSONStringIdentityrefCodec.serializeToWriter(JSONStringIdentityrefCodec.java:42)
      at org.opendaylight.yangtools.yang.data.codec.gson.JSONStringIdentityrefCodec.serializeToWriter(JSONStringIdentityrefCodec.java:19)
      at org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter.writeValue(JSONNormalizedNodeStreamWriter.java:226)
      at org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter.leafNode(JSONNormalizedNodeStreamWriter.java:116)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter.wasProcessAsSimpleNode(ParameterAwareNormalizedNodeWriter.java:173)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter.write(ParameterAwareNormalizedNodeWriter.java:125)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter.writeChildren(ParameterAwareNormalizedNodeWriter.java:233)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter$OrderedParameterAwareNormalizedNodeWriter.writeMapEntryNode(ParameterAwareNormalizedNodeWriter.java:380)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter.wasProcessedAsCompositeNode(ParameterAwareNormalizedNodeWriter.java:296)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter.write(ParameterAwareNormalizedNodeWriter.java:121)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter.writeChildren(ParameterAwareNormalizedNodeWriter.java:233)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter.wasProcessedAsCompositeNode(ParameterAwareNormalizedNodeWriter.java:328)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter.write(ParameterAwareNormalizedNodeWriter.java:121)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter.writeChildren(ParameterAwareNormalizedNodeWriter.java:233)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter.wasProcessedAsCompositeNode(ParameterAwareNormalizedNodeWriter.java:281)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter.write(ParameterAwareNormalizedNodeWriter.java:121)
      at org.opendaylight.restconf.jersey.providers.ParameterAwareNormalizedNodeWriter$OrderedParameterAwareNormalizedNodeWriter.write(ParameterAwareNormalizedNodeWriter.java:345)
      at org.opendaylight.restconf.jersey.providers.NormalizedNodeJsonBodyWriter.writeNormalizedNode(NormalizedNodeJsonBodyWriter.java:135)
      at org.opendaylight.restconf.jersey.providers.NormalizedNodeJsonBodyWriter.writeTo(NormalizedNodeJsonBodyWriter.java:93)
      at org.opendaylight.restconf.jersey.providers.NormalizedNodeJsonBodyWriter.writeTo(NormalizedNodeJsonBodyWriter.java:49)
      at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:306)
      at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1479)
      at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
      at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
      at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
      at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
      at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1507)
      at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:247)
      at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:210)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1478)
      at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:82)
      at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:294)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1478)
      at org.opendaylight.aaa.filterchain.filters.CustomFilterAdapter.doFilter(CustomFilterAdapter.java:85)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1478)
      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
      at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
      at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
      at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
      at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
      at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
      at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
      at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
      at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
      at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
      at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1478)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
      at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:69)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
      at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:240)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:427)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:75)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
      at org.eclipse.jetty.server.Server.handle(Server.java:370)
      at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
      at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:973)
      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1035)
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:641)
      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:231)
      at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
      at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
      at java.lang.Thread.run(Thread.java:745)

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            rovarga Robert Varga
            ivan.hrasko@pantheon.tech Ivan Hrasko
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: