Upgrade fasterXML libraries for OS-9
Upgrade fasterXML to version 2.9.5 to address security vulnerability
Wrap calls to treeRead(InputStream) to handle new behavior of null streams
Change-Id: Id199cfacd0cf9e5371dc33de9f1e058c2e72eaa5
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/ApplicationsWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/ApplicationsWebResource.java
index 4a71ffd..24ad50a 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/ApplicationsWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/ApplicationsWebResource.java
@@ -39,6 +39,7 @@
import java.util.Set;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
/**
* Manage inventory of applications.
@@ -96,7 +97,7 @@
public Response installApp(InputStream raw) {
Application app;
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(raw);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), raw);
URL url = new URL(jsonTree.get(URL).asText());
boolean activate = false;
if (jsonTree.has(ACTIVATE)) {
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/ClusterWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/ClusterWebResource.java
index 4ffb445..664f0eb 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/ClusterWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/ClusterWebResource.java
@@ -38,6 +38,7 @@
import java.util.List;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
/**
* Manage cluster of ONOS instances.
@@ -92,7 +93,7 @@
@Produces(MediaType.APPLICATION_JSON)
public Response formCluster(InputStream config) throws IOException {
JsonCodec<ControllerNode> codec = codec(ControllerNode.class);
- ObjectNode root = (ObjectNode) mapper().readTree(config);
+ ObjectNode root = readTreeFromStream(mapper(), config);
List<ControllerNode> nodes = codec.decode((ArrayNode) root.path("nodes"), this);
JsonNode partitionSizeNode = root.get("partitionSize");
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/ComponentConfigWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/ComponentConfigWebResource.java
index 13b8375..9d3bcca 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/ComponentConfigWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/ComponentConfigWebResource.java
@@ -39,6 +39,7 @@
import java.util.Set;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
/**
* Manage component configurations.
@@ -105,7 +106,7 @@
@DefaultValue("false") @QueryParam("preset") boolean preset,
InputStream request) throws IOException {
ComponentConfigService service = get(ComponentConfigService.class);
- ObjectNode props = (ObjectNode) mapper().readTree(request);
+ ObjectNode props = readTreeFromStream(mapper(), request);
List<String> errorMsgs = new ArrayList<String>();
if (preset) {
props.fieldNames().forEachRemaining(k -> {
@@ -151,7 +152,7 @@
public Response unsetConfigs(@PathParam("component") String component,
InputStream request) throws IOException {
ComponentConfigService service = get(ComponentConfigService.class);
- ObjectNode props = (ObjectNode) mapper().readTree(request);
+ ObjectNode props = readTreeFromStream(mapper(), request);
props.fieldNames().forEachRemaining(k -> service.unsetProperty(component, k));
return Response.noContent().build();
}
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/DeviceKeyWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/DeviceKeyWebResource.java
index 52f8ae7..2bed18b 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/DeviceKeyWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/DeviceKeyWebResource.java
@@ -39,6 +39,7 @@
import java.io.InputStream;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
/**
* Query and Manage Device Keys.
@@ -96,7 +97,7 @@
public Response addDeviceKey(InputStream stream) {
try {
DeviceKeyAdminService service = get(DeviceKeyAdminService.class);
- ObjectNode root = (ObjectNode) mapper().readTree(stream);
+ ObjectNode root = readTreeFromStream(mapper(), stream);
DeviceKey deviceKey = codec(DeviceKey.class).decode(root, this);
service.addKey(deviceKey);
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/DpisWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/DpisWebResource.java
index d3ff886..b59c7e8 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/DpisWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/DpisWebResource.java
@@ -40,6 +40,7 @@
import java.util.List;
import java.util.stream.Collectors;
+import static org.onlab.util.Tools.readTreeFromStream;
import static org.slf4j.LoggerFactory.getLogger;
/**
@@ -292,7 +293,7 @@
ObjectNode result;
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
log.debug("jsonTree={}", jsonTree);
DpiStatistics ds = codec(DpiStatistics.class).decode(jsonTree, this);
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/FlowObjectiveWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/FlowObjectiveWebResource.java
index e6f7e9c..56a4755 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/FlowObjectiveWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/FlowObjectiveWebResource.java
@@ -39,6 +39,8 @@
import java.io.IOException;
import java.io.InputStream;
+import static org.onlab.util.Tools.readTreeFromStream;
+
/**
* Manage flow objectives.
*/
@@ -74,7 +76,7 @@
InputStream stream) {
try {
UriBuilder locationBuilder = null;
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
validateDeviceId(deviceId, jsonTree);
if (appId != null) {
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/FlowsWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/FlowsWebResource.java
index 1bc7e98..f70382d 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/FlowsWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/FlowsWebResource.java
@@ -52,6 +52,7 @@
import static org.onlab.util.Tools.nullIsIllegal;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
/**
* Query and program flow rules.
@@ -113,7 +114,7 @@
@Produces(MediaType.APPLICATION_JSON)
public Response createFlows(@QueryParam("appId") String appId, InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
ArrayNode flowsArray = nullIsIllegal((ArrayNode) jsonTree.get(FLOWS),
FLOW_ARRAY_REQUIRED);
@@ -248,7 +249,7 @@
@QueryParam("appId") String appId,
InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode specifiedDeviceId = jsonTree.get("deviceId");
if (specifiedDeviceId != null &&
!specifiedDeviceId.asText().equals(deviceId)) {
@@ -312,7 +313,7 @@
List<FlowEntry> rulesToRemove = new ArrayList<>();
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode jsonFlows = jsonTree.get("flows");
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/GroupsWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/GroupsWebResource.java
index 1af502b..a0875d5 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/GroupsWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/GroupsWebResource.java
@@ -46,6 +46,7 @@
import org.onlab.util.HexString;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
/**
* Query and program group rules.
@@ -148,7 +149,7 @@
InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode specifiedDeviceId = jsonTree.get("deviceId");
if (specifiedDeviceId != null &&
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/HostsWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/HostsWebResource.java
index 26adef8..3e5dc21 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/HostsWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/HostsWebResource.java
@@ -57,6 +57,7 @@
import java.util.Set;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
import static org.onosproject.net.HostId.hostId;
/**
@@ -139,7 +140,7 @@
URI location;
try {
// Parse the input stream
- ObjectNode root = (ObjectNode) mapper().readTree(stream);
+ ObjectNode root = readTreeFromStream(mapper(), stream);
HostProviderRegistry hostProviderRegistry = get(HostProviderRegistry.class);
InternalHostProvider hostProvider = new InternalHostProvider();
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/IntentsWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/IntentsWebResource.java
index 278fa07..297f70e 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/IntentsWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/IntentsWebResource.java
@@ -57,6 +57,7 @@
import java.util.concurrent.TimeUnit;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
import static org.onosproject.net.intent.IntentState.FAILED;
import static org.onosproject.net.intent.IntentState.WITHDRAWN;
import static org.slf4j.LoggerFactory.getLogger;
@@ -297,7 +298,7 @@
public Response createIntent(InputStream stream) {
try {
IntentService service = get(IntentService.class);
- ObjectNode root = (ObjectNode) mapper().readTree(stream);
+ ObjectNode root = readTreeFromStream(mapper(), stream);
Intent intent = codec(Intent.class).decode(root, this);
service.submit(intent);
UriBuilder locationBuilder = uriInfo.getBaseUriBuilder()
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/MastershipWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/MastershipWebResource.java
index 99ec5a4..cfd0f26 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/MastershipWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/MastershipWebResource.java
@@ -40,6 +40,7 @@
import java.util.Set;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
/**
* Manage the mastership of ONOS instances.
@@ -190,7 +191,7 @@
public Response setRole(InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode deviceIdJson = jsonTree.get(DEVICE_ID);
JsonNode nodeIdJson = jsonTree.get(NODE_ID);
MastershipRole role = codec(MastershipRole.class).decode(jsonTree, this);
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java
index 31f91c7..6fbe1b3 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/MetersWebResource.java
@@ -44,6 +44,7 @@
import java.io.InputStream;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
import static org.slf4j.LoggerFactory.getLogger;
/**
@@ -138,7 +139,7 @@
public Response createMeter(@PathParam("deviceId") String deviceId,
InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode specifiedDeviceId = jsonTree.get("deviceId");
if ((specifiedDeviceId != null &&
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/MulticastRouteWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/MulticastRouteWebResource.java
index 374605b..cdfd76e 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/MulticastRouteWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/MulticastRouteWebResource.java
@@ -25,6 +25,7 @@
import org.onosproject.rest.AbstractWebResource;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -79,7 +80,7 @@
final String ingressStr = "ingress";
MulticastRouteService service = get(MulticastRouteService.class);
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
McastRoute route = codec(McastRoute.class).decode(jsonTree, this);
service.add(route);
if (jsonTree.has(ingressStr)) {
@@ -110,7 +111,7 @@
public Response deleteRoute(InputStream stream) {
MulticastRouteService service = get(MulticastRouteService.class);
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
McastRoute route = codec(McastRoute.class).decode(jsonTree, this);
service.remove(route);
} catch (IOException ex) {
@@ -141,7 +142,7 @@
try {
McastRoute route = new McastRoute(IpAddress.valueOf(source), IpAddress.valueOf(group),
McastRoute.Type.STATIC);
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
jsonTree.path("sinks").forEach(node -> {
ConnectPoint sink = ConnectPoint.deviceConnectPoint(node.asText());
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/NetworkConfigWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/NetworkConfigWebResource.java
index 8aacbb6..e50e011 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/NetworkConfigWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/NetworkConfigWebResource.java
@@ -41,6 +41,7 @@
import static org.onlab.util.Tools.emptyIsNotFound;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
/**
* Manage network configurations.
@@ -207,7 +208,7 @@
@SuppressWarnings("unchecked")
public Response upload(InputStream request) throws IOException {
NetworkConfigService service = get(NetworkConfigService.class);
- ObjectNode root = (ObjectNode) mapper().readTree(request);
+ ObjectNode root = readTreeFromStream(mapper(), request);
List<String> errorMsgs = new ArrayList<String>();
root.fieldNames()
.forEachRemaining(sk -> {
@@ -241,7 +242,7 @@
public Response upload(@PathParam("subjectClassKey") String subjectClassKey,
InputStream request) throws IOException {
NetworkConfigService service = get(NetworkConfigService.class);
- ObjectNode root = (ObjectNode) mapper().readTree(request);
+ ObjectNode root = readTreeFromStream(mapper(), request);
SubjectFactory subjectFactory =
nullIsNotFound(service.getSubjectFactory(subjectClassKey),
subjectClassNotValidErrorString(subjectClassKey));
@@ -269,7 +270,7 @@
@PathParam("subjectKey") String subjectKey,
InputStream request) throws IOException {
NetworkConfigService service = get(NetworkConfigService.class);
- ObjectNode root = (ObjectNode) mapper().readTree(request);
+ ObjectNode root = readTreeFromStream(mapper(), request);
SubjectFactory subjectFactory =
nullIsNotFound(service.getSubjectFactory(subjectClassKey),
subjectClassNotValidErrorString(subjectClassKey));
@@ -301,7 +302,7 @@
@PathParam("configKey") String configKey,
InputStream request) throws IOException {
NetworkConfigService service = get(NetworkConfigService.class);
- JsonNode root = mapper().readTree(request);
+ JsonNode root = readTreeFromStream(mapper(), request);
SubjectFactory subjectFactory =
nullIsNotFound(service.getSubjectFactory(subjectClassKey),
subjectClassNotValidErrorString(subjectClassKey));
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/RegionsWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/RegionsWebResource.java
index 5f1119e..04fb8ad 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/RegionsWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/RegionsWebResource.java
@@ -43,6 +43,7 @@
import java.util.Set;
import static org.onlab.util.Tools.nullIsNotFound;
+import static org.onlab.util.Tools.readTreeFromStream;
/**
* Manages region and device membership.
@@ -119,7 +120,7 @@
public Response createRegion(InputStream stream) {
URI location;
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
final Region region = codec(Region.class).decode(jsonTree, this);
final Region resultRegion = regionAdminService.createRegion(region.id(),
region.name(), region.type(), region.masters());
@@ -146,7 +147,7 @@
public Response updateRegion(@PathParam("regionId") String regionId,
InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode specifiedRegionId = jsonTree.get("id");
if (specifiedRegionId != null &&
@@ -242,7 +243,7 @@
* @throws IOException
*/
private Set<DeviceId> extractDeviceIds(InputStream stream) throws IOException {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode deviceIdsJson = jsonTree.get("deviceIds");
if (deviceIdsJson == null || deviceIdsJson.size() == 0) {
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/TenantWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/TenantWebResource.java
index 6e7627e..9250edf 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/TenantWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/TenantWebResource.java
@@ -38,6 +38,8 @@
import java.io.IOException;
import java.io.InputStream;
+import static org.onlab.util.Tools.readTreeFromStream;
+
/**
* Query and manage tenants of virtual networks.
*/
@@ -116,7 +118,7 @@
* @throws IOException if unable to parse the request
*/
private TenantId getTenantIdFromJsonStream(InputStream stream) throws IOException {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode specifiedTenantId = jsonTree.get("id");
if (specifiedTenantId == null) {
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/VirtualNetworkWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/VirtualNetworkWebResource.java
index d9b39f7..0e3504c 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/VirtualNetworkWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/VirtualNetworkWebResource.java
@@ -51,6 +51,8 @@
import java.util.Set;
import java.util.stream.Collectors;
+import static org.onlab.util.Tools.readTreeFromStream;
+
/**
* Query and Manage Virtual Network elements.
*/
@@ -176,7 +178,7 @@
public Response createVirtualDevice(@PathParam("networkId") long networkId,
InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
final VirtualDevice vdevReq = codec(VirtualDevice.class).decode(jsonTree, this);
JsonNode specifiedNetworkId = jsonTree.get("networkId");
if (specifiedNetworkId == null || specifiedNetworkId.asLong() != (networkId)) {
@@ -250,7 +252,7 @@
@PathParam("deviceId") String virtDeviceId,
InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
// final VirtualPort vportReq = codec(VirtualPort.class).decode(jsonTree, this);
JsonNode specifiedNetworkId = jsonTree.get("networkId");
JsonNode specifiedDeviceId = jsonTree.get("deviceId");
@@ -335,7 +337,7 @@
public Response createVirtualLink(@PathParam("networkId") long networkId,
InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode specifiedNetworkId = jsonTree.get("networkId");
if (specifiedNetworkId == null || specifiedNetworkId.asLong() != (networkId)) {
throw new IllegalArgumentException(INVALID_FIELD + "networkId");
@@ -368,7 +370,7 @@
public Response removeVirtualLink(@PathParam("networkId") long networkId,
InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode specifiedNetworkId = jsonTree.get("networkId");
if (specifiedNetworkId != null &&
specifiedNetworkId.asLong() != (networkId)) {
@@ -416,7 +418,7 @@
public Response createVirtualHost(@PathParam("networkId") long networkId,
InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode specifiedNetworkId = jsonTree.get("networkId");
if (specifiedNetworkId == null || specifiedNetworkId.asLong() != (networkId)) {
throw new IllegalArgumentException(INVALID_FIELD + "networkId");
@@ -450,7 +452,7 @@
public Response removeVirtualHost(@PathParam("networkId") long networkId,
InputStream stream) {
try {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode specifiedNetworkId = jsonTree.get("networkId");
if (specifiedNetworkId != null &&
specifiedNetworkId.asLong() != (networkId)) {
@@ -474,7 +476,7 @@
* @throws IOException if unable to parse the request
*/
private JsonNode getFromJsonStream(InputStream stream, String jsonFieldName) throws IOException {
- ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream);
+ ObjectNode jsonTree = readTreeFromStream(mapper(), stream);
JsonNode jsonNode = jsonTree.get(jsonFieldName);
if (jsonNode == null) {
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyResource.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyResource.java
index 7fed76b..e0b629c 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyResource.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyResource.java
@@ -32,6 +32,7 @@
import java.io.InputStream;
import java.util.Map;
+import static org.onlab.util.Tools.readTreeFromStream;
import static org.slf4j.LoggerFactory.getLogger;
/**
@@ -114,7 +115,7 @@
@Consumes("application/json")
@Deprecated
public Response setSprites(InputStream stream) throws IOException {
- JsonNode root = mapper.readTree(stream);
+ JsonNode root = readTreeFromStream(mapper, stream);
String name = root.path("defn_name").asText("sprites");
get(SpriteService.class).put(name, root);
return Response.ok().build();