Use ServerException in JaxRsRestconfCallback.transform() 29/111729/2
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 19 May 2024 15:23:26 +0000 (17:23 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 19 May 2024 15:46:06 +0000 (17:46 +0200)
We have only a single implementation which throws, convert it to
ServerException.

JIRA: NETCONF-1188
Change-Id: I8127549346956632c311252c57e1dcb4c9d587e6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/JaxRsRestconf.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/jaxrs/JaxRsRestconfCallback.java

index e24dc222f92729e7e09f89172e4ee8069383f2cc..79ad7bfddc7f172614101bb44a026a65f2abb8e8 100644 (file)
@@ -50,7 +50,6 @@ import org.opendaylight.restconf.api.HttpStatusCode;
 import org.opendaylight.restconf.api.MediaTypes;
 import org.opendaylight.restconf.api.QueryParameters;
 import org.opendaylight.restconf.api.query.PrettyPrintParam;
-import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.common.errors.RestconfFuture;
 import org.opendaylight.restconf.nb.rfc8040.ErrorTagMapping;
 import org.opendaylight.restconf.nb.rfc8040.URLConstants;
@@ -72,6 +71,7 @@ import org.opendaylight.restconf.server.api.OperationInputBody;
 import org.opendaylight.restconf.server.api.PatchStatusContext;
 import org.opendaylight.restconf.server.api.RestconfServer;
 import org.opendaylight.restconf.server.api.ServerError;
+import org.opendaylight.restconf.server.api.ServerException;
 import org.opendaylight.restconf.server.api.ServerRequest;
 import org.opendaylight.restconf.server.api.XmlChildBody;
 import org.opendaylight.restconf.server.api.XmlDataPostBody;
@@ -869,12 +869,12 @@ public final class JaxRsRestconf implements ParamConverterProvider {
     private static void completeModulesGET(final RestconfFuture<ModulesGetResult> future, final AsyncResponse ar) {
         future.addCallback(new JaxRsRestconfCallback<>(ar) {
             @Override
-            Response transform(final ModulesGetResult result) {
+            Response transform(final ModulesGetResult result) throws ServerException {
                 final Reader reader;
                 try {
                     reader = result.source().openStream();
                 } catch (IOException e) {
-                    throw new RestconfDocumentedException("Cannot open source", e);
+                    throw new ServerException("Cannot open source", e);
                 }
                 return Response.ok(reader).build();
             }
index b60f3481137fede14e8127ee98ba4fb8738f0306..4aa03289e609000fd962452ae4013cbfb94548a9 100644 (file)
@@ -13,6 +13,7 @@ import javax.ws.rs.container.AsyncResponse;
 import javax.ws.rs.core.Response;
 import org.opendaylight.restconf.common.errors.RestconfCallback;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
+import org.opendaylight.restconf.server.api.ServerException;
 
 /**
  * A {@link RestconfCallback} completing an {@link AsyncResponse}.
@@ -31,8 +32,8 @@ abstract class JaxRsRestconfCallback<V> extends RestconfCallback<V> {
         final Response response;
         try {
             response = transform(result);
-        } catch (RestconfDocumentedException e) {
-            onFailure(e);
+        } catch (ServerException e) {
+            onFailure(e.toLegacy());
             return;
         }
         ar.resume(response);
@@ -43,5 +44,5 @@ abstract class JaxRsRestconfCallback<V> extends RestconfCallback<V> {
         ar.resume(failure);
     }
 
-    abstract Response transform(V result) throws RestconfDocumentedException;
+    abstract Response transform(V result) throws ServerException;
 }