[NETCONF-646] Impossible to subscribe to RESTCONF notification stream due to error Created: 24/Oct/19  Updated: 08/Feb/21  Resolved: 08/Feb/21

Status: Resolved
Project: netconf
Component/s: restconf-nb
Affects Version/s: Sodium, Sodium SR1
Fix Version/s: None

Type: Bug Priority: High
Reporter: Valentin Mayamsin Assignee: Sanjana Babu
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates NETCONF-663 Get notification streams error Resolved

 Description   

curl  -X GET  http://localhost:8181/rests/data/ietf-restconf-monitoring:restconf-state/streams/stream=new-numbers/access=JSON

{"ietf-restconf-monitoring:access":[

{"encoding":"JSON","location":"ws://localhost:8181/rests/notification-stream/restconf-test:new-numbers/JSON"}

]}

 

 

curl  -X GET  http://localhost:8181/rests/data/ietf-restconf-monitoring:restconf-state/streams/stream=new-numbers/access=JSON/location
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 500 Request failed.</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /rests/data/ietf-restconf-monitoring:restconf-state/streams/stream=new-numbers/access=JSON/location. Reason:
<pre>    Request failed.</pre></p>
</body>
</html>

 

Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
       at java.lang.String.substring(String.java:1927) ~[?:?]
       at org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataServiceImpl.readData(RestconfDataServiceImpl.java:155) ~[?:?]
       at org.opendaylight.restconf.nb.rfc8040.services.wrapper.ServicesWrapper.readData(ServicesWrapper.java:117) ~[?:?]
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
       at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
       at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[?:?]
       at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) ~[?:?]
       at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) ~[?:?]
       at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java
:160) ~[?:?]
       at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) ~[?:?]
       at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[?:?]
       at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[?:?]
       at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[?:?]
       at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) ~[?:?]
       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) ~[?:?]
       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.CrossOriginFilter.handle(CrossOriginFilter.java:311) ~[?:?]
       at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:265) ~[?:?]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) ~[?:?]
       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.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:1642) ~[?:?]
       at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:51) ~[?:?]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) ~[?:?]
       at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:215) ~[?:?]
       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:1634) ~[?:?]
       at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) ~[?:?]
       at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[?:?]
       at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) ~[?:?]
       at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) ~[?:?]
       at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) ~[?:?]
       at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) ~[?:?]
       at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) ~[?:?]
       at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) ~[?:?]
       at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) ~[?:?]
       at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) ~[?:?]
       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.session.SessionHandler.doScope(SessionHandler.java:1564) ~[?:?]
       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.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) ~[?:?]
       ... 15 more



 Comments   
Comment by Valentin Mayamsin [ 22/Jan/20 ]

Confirmed bug with Sodium SR1

 

javax.servlet.ServletException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
       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) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:311) ~[159:org.eclipse.jetty.servlets:9.4.12.v20180830]
       at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:265) ~[159:org.eclipse.jetty.servlets:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       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.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:1642) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.opendaylight.restconf.nb.rfc8040.web.LicenseFilter.doFilter(LicenseFilter.java:127) ~[291:org.opendaylight.netconf.restconf-nb-rfc8040-optima-sl:1.10.1]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:51) ~[159:org.eclipse.jetty.servlets:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:215) ~[168:org.eclipse.jetty.websocket.server:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.opendaylight.aaa.filterchain.filters.CustomFilterAdapter.doFilter(CustomFilterAdapter.java:78) ~[205:org.opendaylight.aaa.filterchain:0.10.1]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[334:org.ops4j.pax.web.pax-web-jetty:7.2.5]
       at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) ~[155:org.eclipse.jetty.security:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) ~[334:org.ops4j.pax.web.pax-web-jetty:7.2.5]
       at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) ~[334:org.ops4j.pax.web.pax-web-jetty:7.2.5]
       at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.Server.handle(Server.java:503) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) ~[157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) ~[149:org.eclipse.jetty.io:9.4.12.v20180830]
       at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[149:org.eclipse.jetty.io:9.4.12.v20180830]
       at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) ~[149:org.eclipse.jetty.io:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) ~[160:org.eclipse.jetty.util:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) ~[160:org.eclipse.jetty.util:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) ~[160:org.eclipse.jetty.util:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:132) ~[160:org.eclipse.jetty.util:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) [160:org.eclipse.jetty.util:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) [160:org.eclipse.jetty.util:9.4.12.v20180830]
       at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
       at java.lang.String.substring(String.java:1927) ~[?:?]
       at org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataServiceImpl.readData(RestconfDataServiceImpl.java:170) ~[291:org.opendaylight.netconf.restc
onf-nb-rfc8040-optima-sl:1.10.1]
       at org.opendaylight.restconf.nb.rfc8040.services.wrapper.ServicesWrapper.readData(ServicesWrapper.java:115) ~[291:org.opendaylight.netconf.restconf-nb-rfc8040-opti
ma-sl:1.10.1]
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
       at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
       at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[?:?]
       at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) ~[?:?]
       at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) ~[?:?]
       at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) ~[?
:?]
       at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) ~[?:?]
       at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[?:?]
       at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[?:?]
       at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[?:?]
       at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) ~[?:?]
       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) ~[?:?]
       ... 61 more

Comment by Valentin Mayamsin [ 22/Jan/20 ]

Also accessing 'location' without accessing 'streams' first causes NPE:

 

javax.servlet.ServletException: java.lang.NullPointerException
       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) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:311) ~[159:org.eclipse.jetty.servlets:9.4.12.v20180830]
       at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:265) ~[159:org.eclipse.jetty.servlets:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       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.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:1642) ~[158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.opendaylight.restconf.nb.rfc8040.web.LicenseFilter.doFilter(LicenseFilter.java:127) [291:org.opendaylight.netconf.restconf-nb-rfc8040-optima-sl:1.10.1]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) [158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:51) [159:org.eclipse.jetty.servlets:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) [158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:215) [168:org.eclipse.jetty.websocket.server:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) [158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.opendaylight.aaa.filterchain.filters.CustomFilterAdapter.doFilter(CustomFilterAdapter.java:78) [205:org.opendaylight.aaa.filterchain:0.10.1]
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) [158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) [158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [334:org.ops4j.pax.web.pax-web-jetty:7.2.5]
       at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [155:org.eclipse.jetty.security:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) [334:org.ops4j.pax.web.pax-web-jetty:7.2.5]
       at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) [158:org.eclipse.jetty.servlet:9.4.12.v20180830]
       at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [334:org.ops4j.pax.web.pax-web-jetty:7.2.5]
       at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.Server.handle(Server.java:503) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) [157:org.eclipse.jetty.server:9.4.12.v20180830]
       at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) [149:org.eclipse.jetty.io:9.4.12.v20180830]
       at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [149:org.eclipse.jetty.io:9.4.12.v20180830]
       at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) [149:org.eclipse.jetty.io:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) [160:org.eclipse.jetty.util:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) [160:org.eclipse.jetty.util:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) [160:org.eclipse.jetty.util:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) [160:org.eclipse.jetty.util:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) [160:org.eclipse.jetty.util:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) [160:org.eclipse.jetty.util:9.4.12.v20180830]
       at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) [160:org.eclipse.jetty.util:9.4.12.v20180830]
       at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.NullPointerException
       at org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataServiceImpl.readData(RestconfDataServiceImpl.java:169) ~[291:org.opendaylight.netconf.restc
onf-nb-rfc8040-optima-sl:1.10.1]
       at org.opendaylight.restconf.nb.rfc8040.services.wrapper.ServicesWrapper.readData(ServicesWrapper.java:115) ~[291:org.opendaylight.netconf.restconf-nb-rfc8040-opti
ma-sl:1.10.1]
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
       at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
       at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[?:?]
       at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) ~[?:?]
       at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) ~[?:?]
       at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) ~[?
:?]
       at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) ~[?:?]
       at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[?:?]
       at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[?:?]
       at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[?:?]
       at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) ~[?:?]
       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) ~[?:?]
       ... 62 more

Comment by Jamo Luhrsen [ 06/Mar/20 ]

Can you add the POST used to create this to start with?

Comment by Valentin Mayamsin [ 29/Apr/20 ]

jluhrsen there is no POST, only GET. You can try with any stream you can find on curl  -X GET  http://localhost:8181/rests/data/ietf-restconf-monitoring:restconf-state/streams

Comment by Jamo Luhrsen [ 30/Apr/20 ]

I can't reproduce this, can you help me. Since this was filed for Sodium, I took that main release and installed odl-restconf-all

then doing a GET on http://controller-ip:8181/rests/data/ietf-restconf-monitoring:restconf-state/streams I get the below output

<streams xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring">
    <stream>
        <name>replayComplete</name>
        <description>This notification is sent to signal the end of a replay
portion of a subscription.</description>
        <replay-support>true</replay-support>
        <access>
            <encoding>JSON</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/nc-notifications:replayComplete/JSON</location>
        </access>
        <access>
            <encoding>XML</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/nc-notifications:replayComplete</location>
        </access>
    </stream>
    <stream>
        <name>netconf-config-change</name>
        <description>Generated when the NETCONF server detects that the
<running> or <startup> configuration datastore
has been changed by a management session.
The notification summarizes the edits that
have been detected.

The server MAY choose to also generate this
notification while loading a datastore during the
boot process for the device.</description>
        <replay-support>true</replay-support>
        <access>
            <encoding>JSON</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-netconf-notifications:netconf-config-change/JSON</location>
        </access>
        <access>
            <encoding>XML</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-netconf-notifications:netconf-config-change</location>
        </access>
    </stream>
    <stream>
        <name>yang-library-change</name>
        <description>Generated when the set of modules and submodules supported
by the server has changed.</description>
        <replay-support>true</replay-support>
        <access>
            <encoding>JSON</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-yang-library:yang-library-change/JSON</location>
        </access>
        <access>
            <encoding>XML</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-yang-library:yang-library-change</location>
        </access>
    </stream>
    <stream>
        <name>netconf-session-start</name>
        <description>Generated when a NETCONF server detects that a
NETCONF session has started.  A server MAY generate
this event for non-NETCONF management sessions.
Indicates the identity of the user that started
the session.</description>
        <replay-support>true</replay-support>
        <access>
            <encoding>JSON</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-netconf-notifications:netconf-session-start/JSON</location>
        </access>
        <access>
            <encoding>XML</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-netconf-notifications:netconf-session-start</location>
        </access>
    </stream>
    <stream>
        <name>netconf-session-end</name>
        <description>Generated when a NETCONF server detects that a
NETCONF session has terminated.
A server MAY optionally generate this event for
non-NETCONF management sessions.  Indicates the
identity of the user that owned the session,
and why the session was terminated.</description>
        <replay-support>true</replay-support>
        <access>
            <encoding>JSON</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-netconf-notifications:netconf-session-end/JSON</location>
        </access>
        <access>
            <encoding>XML</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-netconf-notifications:netconf-session-end</location>
        </access>
    </stream>
    <stream>
        <name>netconf-confirmed-commit</name>
        <description>Generated when a NETCONF server detects that a
confirmed-commit event has occurred.  Indicates the event
and the current state of the confirmed-commit procedure
in progress.</description>
        <replay-support>true</replay-support>
        <access>
            <encoding>JSON</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-netconf-notifications:netconf-confirmed-commit/JSON</location>
        </access>
        <access>
            <encoding>XML</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-netconf-notifications:netconf-confirmed-commit</location>
        </access>
    </stream>
    <stream>
        <name>notificationComplete</name>
        <description>This notification is sent to signal the end of a notification
subscription. It is sent in the case that stopTime was
specified during the creation of the subscription..</description>
        <replay-support>true</replay-support>
        <access>
            <encoding>JSON</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/nc-notifications:notificationComplete/JSON</location>
        </access>
        <access>
            <encoding>XML</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/nc-notifications:notificationComplete</location>
        </access>
    </stream>
    <stream>
        <name>netconf-capability-change</name>
        <description>Generated when the NETCONF server detects that
the server capabilities have changed.
Indicates which capabilities have been added, deleted,
and/or modified.  The manner in which a server
capability is changed is outside the scope of this
document.</description>
        <replay-support>true</replay-support>
        <access>
            <encoding>JSON</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-netconf-notifications:netconf-capability-change/JSON</location>
        </access>
        <access>
            <encoding>XML</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/ietf-netconf-notifications:netconf-capability-change</location>
        </access>
    </stream>
    <stream>
        <name>data-changed-notification</name>
        <description>Data change notification.</description>
        <replay-support>true</replay-support>
        <access>
            <encoding>JSON</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/sal-remote:data-changed-notification/JSON</location>
        </access>
        <access>
            <encoding>XML</encoding>
            <location>ws://127.0.0.1:8181/rests/notification-stream/sal-remote:data-changed-notification</location>
        </access>
    </stream>
</streams>

I just picked the first one listed 'replayComplete' and issued a GET to http://controller-ip:8181/rests/data/ietf-restconf-monitoring:restconf-state/streams/stream=replayComplete

the output was fine:

<stream xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring">
    <name>replayComplete</name>
    <description>This notification is sent to signal the end of a replay
portion of a subscription.</description>
    <replay-support>true</replay-support>
    <access>
        <encoding>JSON</encoding>
        <location>ws://127.0.0.1:8181/rests/notification-stream/nc-notifications:replayComplete/JSON</location>
    </access>
    <access>
        <encoding>XML</encoding>
        <location>ws://127.0.0.1:8181/rests/notification-stream/nc-notifications:replayComplete</location>
    </access>
</stream>

I don't see the stream 'new-numbers', but guessing is that is from some test app you are working with.

Comment by Jamo Luhrsen [ 30/Apr/20 ]

OH! the trick is adding /access=JSON/location

ok, I can reproduce with that.

Comment by Jamo Luhrsen [ 01/May/20 ]

This is a duplicate of NETCONF-663 which has a fix under
review:

master: https://git.opendaylight.org/gerrit/c/netconf/+/88873
stable/magnesium: https://git.opendaylight.org/gerrit/c/netconf/+/89553

Comment by Tomas Cere [ 08/Feb/21 ]

As jamo said, duplicate of https://jira.opendaylight.org/browse/NETCONF-663

Generated at Wed Feb 07 20:15:32 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.