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

Restconf reports status 500 when stream does not exist

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • 1.13.4, 2.0.3
    • None
    • restconf-nb

      This was found while investigating NETCONF-800: when requesting a non-existent stream using:

      curl -u admin:admin http://127.0.0.1:8181/rests/data/ietf-restconf-monitoring:restconf-state/streams/stream/data-change-event-subscription/opendaylight-inventory:nodes/datastore=CONFIGURATION/scope=BASE
      

      we end up with a HTTP status 500. This boils down to a IAE being thrown and not wrapped:

      11:52:49.327 WARN [qtp348753156-382] /rests/data/ietf-restconf-monitoring:restconf-state/streams/stream/data-change-event-subscription/opendaylight-inventory:nodes/datastore=CONFIGURATION/scope=BASE
      javax.servlet.ServletException: javax.servlet.ServletException: java.lang.IllegalArgumentException: Listener doesn't exist : data-change-event-subscription/opendaylight-inventory:nodes/datastore=CONFIGURATION/scope=BASE
              at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:90) ~[?:?]
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[?:?]
              at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[?:?]
      
      [snip]
      
      Caused by: javax.servlet.ServletException: java.lang.IllegalArgumentException: Listener doesn't exist : data-change-event-subscription/opendaylight-inventory:nodes/datastore=CONFIGURATION/scope=BASE
              at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:432) ~[?:?]
      
      [snip]
      
      Caused by: java.lang.IllegalArgumentException: Listener doesn't exist : data-change-event-subscription/opendaylight-inventory:nodes/datastore=CONFIGURATION/scope=BASE
              at com.google.common.base.Preconditions.checkArgument(Preconditions.java:142) ~[?:?]
              at org.opendaylight.restconf.nb.rfc8040.rests.services.impl.SubscribeToStreamUtil.subscribeToDataStream(SubscribeToStreamUtil.java:201) ~[?:?]
              at org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfStreamsSubscriptionServiceImpl.subscribeToStream(RestconfStreamsSubscriptionServiceImpl.java:104) ~[?:?]
              at org.opendaylight.restconf.nb.rfc8040.services.wrapper.ServicesWrapper.subscribeToStream(ServicesWrapper.java:164) ~[?:?]
      
      

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

              Created:
              Updated:
              Resolved: