Report data-missing when an invalid stream is requested 42/97142/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 11 Aug 2021 13:41:54 +0000 (15:41 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 11 Aug 2021 13:48:58 +0000 (15:48 +0200)
We should not be throwing a random IAE, but rather use a
RestconfDocumentedException to report the correct status.

JIRA: NETCONF-802
Change-Id: I4ac0a24f0acb059f08d14ab0abd4021e91b0d07b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/SubscribeToStreamUtil.java

index b3aeb075cdd27199719ce6436819af70c3021291..c9f6b6b000cde11b926e271d5fd3d48d461640f4 100644 (file)
@@ -179,10 +179,9 @@ abstract class SubscribeToStreamUtil {
         }
 
         final String streamName = ListenersBroker.createStreamNameFromUri(identifier);
-
-        final ListenerAdapter listener = ListenersBroker.getInstance()
-            .getDataChangeListenerFor(streamName)
-            .orElseThrow(() -> new IllegalArgumentException("Listener does not exist : " + streamName));
+        final ListenerAdapter listener = ListenersBroker.getInstance().getDataChangeListenerFor(streamName)
+            .orElseThrow(() -> new RestconfDocumentedException("No listener found for stream " + streamName,
+                ErrorType.PROTOCOL.APPLICATION, ErrorTag.DATA_MISSING));
 
         listener.setQueryParams(
                 notificationQueryParams.getStart(),