<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:15:52 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[NETCONF-777] Http 500 internal server error when deleting non existing data</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-777</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;Restconf DELETE on non existing netconf device data results in HTTP 500 - internal server error instead of 409. The problem appeared in Silicon release and I believe was introduced in &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/netconf/+/92446&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/c/netconf/+/92446&lt;/a&gt; by ditching the DeleteDataTransactionUtil.checkItemExists in DeleteDataTransactionUtil.deleteData. &lt;br/&gt;
 For example:&lt;br/&gt;
 1. We have data some data on ../yang-ext:mount/network-topology:network-topology&lt;br/&gt;
 2. DELETE ../yang-ext:mount/network-topology:network-topology , works fine, data is deleted and Http 204 is returned.&lt;br/&gt;
 3. DELETE ../yang-ext:mount/network-topology:network-topology , returns Http 500, instead of 409 as it did in previous releases and as I believe is stated in restconf spec.&lt;/p&gt;

&lt;p&gt;I also observed the same thing happening when manipulating(POST/PUT) data to netconf device that is not valid according to schema, I think the problem is this &lt;a href=&quot;https://git.opendaylight.org/gerrit/gitweb?p=netconf.git;a=blob;f=restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/FutureCallbackTx.java;h=e4c88f22a683aa27aa7a4902fc885a1fc0cfe190;hb=b7f3957ae8363a7a4f26c3b75cc4f7dfc202d462#l100&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;problematic-check&lt;/a&gt; which in these cases is never true so this &lt;a href=&quot;https://git.opendaylight.org/gerrit/gitweb?p=netconf.git;a=blob;f=restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/FutureCallbackTx.java;h=e4c88f22a683aa27aa7a4902fc885a1fc0cfe190;hb=b7f3957ae8363a7a4f26c3b75cc4f7dfc202d462#l133&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;exception&lt;/a&gt; is returned and since that exception did not map the DocumentedException.ErrorTag it later results in error code 500.&lt;/p&gt;

&lt;p&gt;Steps to reproduce:&lt;br/&gt;
 download silicon release&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;./karaf clean&lt;/li&gt;
	&lt;li&gt;feature:install odl-netconf-topology odl-restconf-nb-rfc8040&lt;/li&gt;
	&lt;li&gt;start netconf-testtool with md-sal :
	&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
		&lt;li&gt;create folder schemaToaster with yang &lt;a href=&quot;https://github.com/YangModels/yang/blob/master/experimental/odp/toaster.yang&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;model&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;java -jar netconf-testtool-1.13.2-SNAPSHOT-executable.jar --schemas-dir schemaToaster --md-sal true&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;add testtool to topology-netconf:
	&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
		&lt;li&gt;restconf PUT on &lt;a href=&quot;http://127.0.0.1:8181/rests/data/network-topology:network-topology/topology=topology-netconf/node=testtool&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://127.0.0.1:8181/rests/data/network-topology:network-topology/topology=topology-netconf/node=testtool&lt;/a&gt; with payload:&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
 {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;netconf-topology:node&quot;&lt;/span&gt; :[ 
    	{
	      &lt;span class=&quot;code-quote&quot;&gt;&quot;node-id&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;testtool&quot;&lt;/span&gt;,
	      &lt;span class=&quot;code-quote&quot;&gt;&quot;host&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;127.0.0.1&quot;&lt;/span&gt;,
	      &lt;span class=&quot;code-quote&quot;&gt;&quot;port&quot;&lt;/span&gt;: 17830,
	      &lt;span class=&quot;code-quote&quot;&gt;&quot;username&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;admin&quot;&lt;/span&gt;,
	      &lt;span class=&quot;code-quote&quot;&gt;&quot;password&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;admin&quot;&lt;/span&gt;,
	      &lt;span class=&quot;code-quote&quot;&gt;&quot;tcp-only&quot;&lt;/span&gt;: &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;,
	      &lt;span class=&quot;code-quote&quot;&gt;&quot;keepalive-delay&quot;&lt;/span&gt;: 0,
	      &lt;span class=&quot;code-quote&quot;&gt;&quot;netconf-node-configuration:schemaless&quot;&lt;/span&gt;: &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;
        }
    ]
  } 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;when device is connected execute restconf DELETE on toaster:toaster via mount point of the device:&lt;br/&gt;
 DELETE &lt;a href=&quot;http://127.0.0.1:8181/rests/data/network-topology:network-topology/topology=topology-netconf/node=ru-device/yang-ext:mount/toaster:toaster&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://127.0.0.1:8181/rests/data/network-topology:network-topology/topology=topology-netconf/node=ru-device/yang-ext:mount/toaster:toaster&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;You should get Http error code 500 internal-server-error and message :
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
{
    &lt;span class=&quot;code-quote&quot;&gt;&quot;errors&quot;&lt;/span&gt;: {
        &lt;span class=&quot;code-quote&quot;&gt;&quot;error&quot;&lt;/span&gt;: [
            {
                &lt;span class=&quot;code-quote&quot;&gt;&quot;error-type&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;application&quot;&lt;/span&gt;,
                &lt;span class=&quot;code-quote&quot;&gt;&quot;error-tag&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;operation-failed&quot;&lt;/span&gt;,
                &lt;span class=&quot;code-quote&quot;&gt;&quot;error-info&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;NetconfDocumentedException{message=RPC during tx failed. Data is missing, cannot execute DELETE operation , errorType=PROTOCOL, errorTag=DATA_MISSING, errorSeverity=ERROR, errorInfo={}}&quot;&lt;/span&gt;,
                &lt;span class=&quot;code-quote&quot;&gt;&quot;error-message&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;Transaction failed&quot;&lt;/span&gt;
            }
        ]
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;which is wrong and should be 409.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Logs from karaf:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;12:25:26.435 INFO [remote-connector-processing-executor-13] RemoteDevice
{testtool}: Netconf connector initialized successfully
 12:25:46.191 WARN [nioEventLoopGroupCloseable-3-8] RemoteDevice{testtool}
: Error reply from remote device, request: &amp;lt;rpc message-id=&quot;m-1&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;
 &amp;lt;edit-config&amp;gt;
 &amp;lt;target&amp;gt;
 &amp;lt;candidate/&amp;gt;
 &amp;lt;/target&amp;gt;
 &amp;lt;config&amp;gt;
 &amp;lt;toaster xmlns=&quot;http://netconfcentral.org/ns/toaster&quot; xmlns:op=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot; op:operation=&quot;delete&quot;/&amp;gt;
 &amp;lt;/config&amp;gt;
 &amp;lt;/edit-config&amp;gt;
 &amp;lt;/rpc&amp;gt;
 , response: &amp;lt;rpc-reply xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot; message-id=&quot;m-1&quot;&amp;gt;
 &amp;lt;rpc-error&amp;gt;
 &amp;lt;error-type&amp;gt;protocol&amp;lt;/error-type&amp;gt;
 &amp;lt;error-tag&amp;gt;data-missing&amp;lt;/error-tag&amp;gt;
 &amp;lt;error-severity&amp;gt;error&amp;lt;/error-severity&amp;gt;
 &amp;lt;error-message&amp;gt;Data is missing, cannot execute DELETE operation&amp;lt;/error-message&amp;gt;
 &amp;lt;/rpc-error&amp;gt;
 &amp;lt;/rpc-reply&amp;gt;
org.opendaylight.netconf.api.NetconfDocumentedException: Data is missing, cannot execute DELETE operation
 at org.opendaylight.netconf.api.NetconfDocumentedException.fromXMLDocument(NetconfDocumentedException.java:53) ~[bundleFile:?]
 at org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil.checkSuccessReply(NetconfMessageTransformUtil.java:311) ~[bundleFile:?]
 at org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator.processMessage(NetconfDeviceCommunicator.java:326) [bundleFile:?]
 at org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:269) [bundleFile:?]
 at org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:48) [bundleFile:?]
 at org.opendaylight.netconf.nettyutil.AbstractNetconfSession.handleMessage(AbstractNetconfSession.java:64) [bundleFile:?]
 at org.opendaylight.netconf.nettyutil.AbstractNetconfSession.channelRead0(AbstractNetconfSession.java:187) [bundleFile:?]
 at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) [bundleFile:4.1.59.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [bundleFile:4.1.59.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [bundleFile:4.1.59.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [bundleFile:4.1.59.Final]
 at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [bundleFile:4.1.59.Final]
 at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [bundleFile:4.1.59.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [bundleFile:4.1.59.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [bundleFile:4.1.59.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [bundleFile:4.1.59.Final]
 at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [bundleFile:4.1.59.Final]
 at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [bundleFile:4.1.59.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [bundleFile:4.1.59.Final]
 at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:61) [bundleFile:4.1.59.Final]
 at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:370) [bundleFile:4.1.59.Final]
 at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) [bundleFile:4.1.59.Final]
 at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) [bundleFile:4.1.59.Final]
 at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) [bundleFile:4.1.59.Final]
 at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [bundleFile:4.1.59.Final]
 at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [bundleFile:4.1.59.Final]
 at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [bundleFile:4.1.59.Final]
 at java.lang.Thread.run(Thread.java:829) [?:?]
 12:25:46.192 WARN [nioEventLoopGroupCloseable-3-8] RemoteDevice
{testtool}
: Edit candidate invoked unsuccessfully: [RpcError [message=Data is missing, cannot execute DELETE operation, severity=ERROR, errorType=PROTOCOL, tag=data-missing, applicationTag=null, info=, cause=null]]
 12:25:46.216 WARN [qtp1554864162-673] Transaction(DELETE) FAILED!
 java.util.concurrent.ExecutionException: NetconfDocumentedException{message=RPC during tx failed. Data is missing, cannot execute DELETE operation , errorType=PROTOCOL, errorTag=DATA_MISSING, errorSeverity=ERROR, errorInfo={}}
 at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:564) ~[bundleFile:?]
 at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:545) ~[bundleFile:?]
 at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:102) ~[bundleFile:?]
 at com.google.common.util.concurrent.ForwardingFluentFuture.get(ForwardingFluentFuture.java:65) ~[bundleFile:?]
 at org.opendaylight.restconf.nb.rfc8040.rests.utils.FutureCallbackTx.addCallback(FutureCallbackTx.java:82) ~[bundleFile:?]
 at org.opendaylight.restconf.nb.rfc8040.rests.utils.DeleteDataTransactionUtil.deleteData(DeleteDataTransactionUtil.java:53) ~[bundleFile:?]
 at org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataServiceImpl.deleteData(RestconfDataServiceImpl.java:367) ~[bundleFile:?]
 at org.opendaylight.restconf.nb.rfc8040.services.wrapper.ServicesWrapper.deleteData(ServicesWrapper.java:138) ~[bundleFile:?]
 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
 at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
 at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
 at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
 at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76) ~[?:?]
 at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148) ~[?:?]
 at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191) ~[?:?]
 at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:200) ~[?:?]
 at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:103) ~[?:?]
 at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:493) ~[?:?]
 at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415) ~[?:?]
 at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104) ~[?:?]
 at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277) ~[?:?]
 at org.glassfish.jersey.internal.Errors$1.call(Errors.java:272) ~[?:?]
 at org.glassfish.jersey.internal.Errors$1.call(Errors.java:268) ~[?:?]
 at org.glassfish.jersey.internal.Errors.process(Errors.java:316) ~[?:?]
 at org.glassfish.jersey.internal.Errors.process(Errors.java:298) ~[?:?]
 at org.glassfish.jersey.internal.Errors.process(Errors.java:268) ~[?:?]
 at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289) ~[?:?]
 at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256) ~[?:?]
 at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703) ~[?:?]
 at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416) ~[?:?]
 at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370) ~[?:?]
 at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389) ~[?:?]
 at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342) ~[?:?]
 at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229) ~[?:?]
 at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1402) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1651) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:319) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:273) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1638) ~[bundleFile:9.4.31.v20200723]
 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:1638) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1638) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:567) ~[bundleFile:9.4.31.v20200723]
 at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1377) ~[bundleFile:9.4.31.v20200723]
 at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:294) ~[bundleFile:?]
 at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:507) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.31.v20200723]
 at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:82) ~[bundleFile:?]
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.Server.handle(Server.java:501) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) ~[bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) [bundleFile:9.4.31.v20200723]
 at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) [bundleFile:9.4.31.v20200723]
 at java.lang.Thread.run(Thread.java:829) [?:?]
 Caused by: org.opendaylight.netconf.api.NetconfDocumentedException: RPC during tx failed. Data is missing, cannot execute DELETE operation 
 at org.opendaylight.restconf.nb.rfc8040.rests.transactions.NetconfRestconfTransaction.mapRpcErrorsToNetconfDocException(NetconfRestconfTransaction.java:289) ~[bundleFile:?]
 at org.opendaylight.restconf.nb.rfc8040.rests.transactions.NetconfRestconfTransaction$1.lambda$onSuccess$0(NetconfRestconfTransaction.java:134) ~[bundleFile:?]
 at com.google.common.util.concurrent.Futures$FutureCombiner$1.call(Futures.java:750) ~[bundleFile:?]
 at com.google.common.util.concurrent.Futures$FutureCombiner$1.call(Futures.java:747) ~[bundleFile:?]
 at com.google.common.util.concurrent.CombinedFuture$CallableInterruptibleTask.runInterruptibly(CombinedFuture.java:188) ~[bundleFile:?]
 at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) ~[bundleFile:?]
 at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) ~[bundleFile:?]
 at com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask.execute(CombinedFuture.java:105) ~[bundleFile:?]
 at com.google.common.util.concurrent.CombinedFuture.handleAllCompleted(CombinedFuture.java:62) ~[bundleFile:?]
 at com.google.common.util.concurrent.AggregateFuture.processCompleted(AggregateFuture.java:282) ~[bundleFile:?]
 at com.google.common.util.concurrent.AggregateFuture.decrementCountAndMaybeComplete(AggregateFuture.java:264) ~[bundleFile:?]
 at com.google.common.util.concurrent.AggregateFuture.access$200(AggregateFuture.java:42) ~[bundleFile:?]
 at com.google.common.util.concurrent.AggregateFuture$2.run(AggregateFuture.java:176) ~[bundleFile:?]
 at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) ~[bundleFile:?]
 at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1174) ~[bundleFile:?]
 at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:969) ~[bundleFile:?]
 at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:738) ~[bundleFile:?]
 at com.google.common.util.concurrent.CombinedFuture$CallableInterruptibleTask.setValue(CombinedFuture.java:193) ~[bundleFile:?]
 at com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask.afterRanInterruptibly(CombinedFuture.java:137) ~[bundleFile:?]
 at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:133) ~[bundleFile:?]
 at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) ~[bundleFile:?]
 at com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask.execute(CombinedFuture.java:105) ~[bundleFile:?]
 at com.google.common.util.concurrent.CombinedFuture.handleAllCompleted(CombinedFuture.java:62) ~[bundleFile:?]
 at com.google.common.util.concurrent.AggregateFuture.processCompleted(AggregateFuture.java:282) ~[bundleFile:?]
 at com.google.common.util.concurrent.AggregateFuture.decrementCountAndMaybeComplete(AggregateFuture.java:264) ~[bundleFile:?]
 at com.google.common.util.concurrent.AggregateFuture.access$200(AggregateFuture.java:42) ~[bundleFile:?]
 at com.google.common.util.concurrent.AggregateFuture$2.run(AggregateFuture.java:176) ~[bundleFile:?]
 at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) ~[bundleFile:?]
 at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1174) ~[bundleFile:?]
 at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:969) ~[bundleFile:?]
 at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:738) ~[bundleFile:?]
 at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:47) ~[bundleFile:?]
 at org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceRpc$1.onSuccess(NetconfDeviceRpc.java:62) ~[?:?]
 at org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceRpc$1.onSuccess(NetconfDeviceRpc.java:58) ~[?:?]
 at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1089) ~[bundleFile:?]
 at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) ~[bundleFile:?]
 at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1174) ~[bundleFile:?]
 at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:969) ~[bundleFile:?]
 at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:738) ~[bundleFile:?]
 at org.opendaylight.netconf.sal.connect.netconf.listener.UncancellableFuture.set(UncancellableFuture.java:45) ~[?:?]
 at org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator.processMessage(NetconfDeviceCommunicator.java:337) ~[?:?]
 at org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:269) ~[?:?]
 at org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:48) ~[?:?]
 at org.opendaylight.netconf.nettyutil.AbstractNetconfSession.handleMessage(AbstractNetconfSession.java:64) ~[?:?]
 at org.opendaylight.netconf.nettyutil.AbstractNetconfSession.channelRead0(AbstractNetconfSession.java:187) ~[?:?]
 at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[?:?]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[?:?]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[?:?]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[?:?]
 at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[?:?]
 at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) ~[?:?]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[?:?]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[?:?]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[?:?]
 at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[?:?]
 at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) ~[?:?]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[?:?]
 at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:61) ~[?:?]
 at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:370) ~[?:?]
 at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[?:?]
 at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[?:?]
 at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[?:?]
 at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[?:?]
 at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[?:?]
 at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[?:?]
 ... 1 more
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="34043">NETCONF-777</key>
            <summary>Http 500 internal server error when deleting non existing data</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="tcere">Tomas Cere</assignee>
                                    <reporter username="marekzatko">Marek Za&#357;ko</reporter>
                        <labels>
                            <label>pt</label>
                    </labels>
                <created>Wed, 19 May 2021 12:33:45 +0000</created>
                <updated>Wed, 2 Jun 2021 10:54:24 +0000</updated>
                            <resolved>Wed, 2 Jun 2021 10:54:24 +0000</resolved>
                                    <version>1.13.0</version>
                                    <fixVersion>2.0.0</fixVersion>
                    <fixVersion>1.13.3</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="69232" author="rovarga" created="Thu, 20 May 2021 19:52:41 +0000"  >&lt;p&gt;So the problem is that the NetconfDocumentedException created by NetconfRestconfTransaction.mapRpcErrorsToNetconfDocException() should be wrapped in a TransactionCommitFailedException, as per the FluentFuture&amp;lt;CommitInfo&amp;gt; semantics of the datastore.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03y2v:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>