X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Frestconf-nb-bierman02%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Frest%2Fimpl%2FRestconfDocumentedExceptionMapper.java;h=5561949f5e110ddd611ba4c90f06db29959411b2;hb=982e75ece2483e413befe3edd8fd90022a644f72;hp=c271bf33d2d28c856df14065f5574525ae40042d;hpb=61b5bba1c5f1be19252f65f67c43a6e9ba33feb3;p=netconf.git diff --git a/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/rest/impl/RestconfDocumentedExceptionMapper.java b/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/rest/impl/RestconfDocumentedExceptionMapper.java index c271bf33d2..5561949f5e 100644 --- a/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/rest/impl/RestconfDocumentedExceptionMapper.java +++ b/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/rest/impl/RestconfDocumentedExceptionMapper.java @@ -5,11 +5,9 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.netconf.sal.rest.impl; import com.google.common.base.Preconditions; -import com.google.common.base.Throwables; import com.google.common.collect.Iterables; import com.google.gson.stream.JsonWriter; import java.io.ByteArrayOutputStream; @@ -18,7 +16,7 @@ import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.net.URI; import java.nio.charset.StandardCharsets; -import java.util.Iterator; +import java.util.ArrayList; import java.util.List; import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; @@ -49,14 +47,14 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.ForwardingNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; -import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactory; +import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactorySupplier; import org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.codec.gson.JsonWriterFactory; import org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; @@ -90,7 +88,7 @@ public class RestconfDocumentedExceptionMapper implements ExceptionMapper accepts = headers.getAcceptableMediaTypes(); - if (accepts != null) { - accepts.remove(MediaType.WILDCARD_TYPE); + final List mediaTypeList = new ArrayList<>(); + if (headers.getMediaType() != null) { + mediaTypeList.add(headers.getMediaType()); } - LOG.debug("Accept headers: {}", accepts); - - final MediaType mediaType; - if (accepts != null && accepts.size() > 0) { - mediaType = accepts.get(0); // just pick the first one - } else { - // Default to the content type if there's no Accept header - mediaType = MediaType.APPLICATION_JSON_TYPE; - } + mediaTypeList.addAll(headers.getAcceptableMediaTypes()); + final MediaType mediaType = mediaTypeList.stream().filter(type -> !type.equals(MediaType.WILDCARD_TYPE)) + .findFirst().orElse(MediaType.APPLICATION_JSON_TYPE); LOG.debug("Using MediaType: {}", mediaType); @@ -136,7 +128,7 @@ public class RestconfDocumentedExceptionMapper implements ExceptionMapper errContBuild = + final DataContainerNodeBuilder errContBuild = Builders.containerBuilder((ContainerSchemaNode) errorsSchemaNode); final List schemaList = ControllerContext.findInstanceDataChildrenByName(errorsSchemaNode, @@ -170,7 +162,7 @@ public class RestconfDocumentedExceptionMapper implements ExceptionMapper errNodeValues = Builders + final DataContainerNodeBuilder errNodeValues = Builders .mapEntryBuilder(listStreamSchemaNode); List lsChildDataSchemaNode = ControllerContext.findInstanceDataChildrenByName( @@ -243,7 +235,8 @@ public class RestconfDocumentedExceptionMapper implements ExceptionMapper data = errorsNode.getData(); @@ -372,10 +363,9 @@ public class RestconfDocumentedExceptionMapper implements ExceptionMapper child : data.getValue()) { nnWriter.write(child); @@ -384,15 +374,13 @@ public class RestconfDocumentedExceptionMapper implements ExceptionMapper> iterator = data.getValue().iterator(); - while (iterator.hasNext()) { - final DataContainerChild child = iterator.next(); + for (final DataContainerChild child : data.getValue()) { nnWriter.write(child); nnWriter.flush(); }