diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkManager.java b/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkManager.java
index d57801b..69f849e 100644
--- a/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkManager.java
+++ b/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkManager.java
@@ -15,8 +15,8 @@
  */
 package org.onosproject.incubator.net.virtual.impl;
 
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Deactivate;
@@ -72,6 +72,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
@@ -354,13 +355,11 @@
     }
 
     @Override
-    public Set<DeviceId> getPhysicalDevices(NetworkId networkId,
-                                             VirtualDevice virtualDevice) {
+    public Set<DeviceId> getPhysicalDevices(NetworkId networkId, DeviceId deviceId) {
         checkNotNull(networkId, "Network ID cannot be null");
-        checkNotNull(virtualDevice, "Virtual device cannot be null");
-        Set<VirtualPort> virtualPortSet =
-                getVirtualPorts(networkId, virtualDevice.id());
-        Set<DeviceId> physicalDeviceSet = Sets.newConcurrentHashSet();
+        checkNotNull(deviceId, "Virtual device ID cannot be null");
+        Set<VirtualPort> virtualPortSet = getVirtualPorts(networkId, deviceId);
+        Set<DeviceId> physicalDeviceSet = new HashSet<>();
 
         virtualPortSet.forEach(virtualPort -> {
             if (virtualPort.realizedBy() != null) {
@@ -368,7 +367,7 @@
             }
         });
 
-        return physicalDeviceSet;
+        return ImmutableSet.copyOf(physicalDeviceSet);
     }
 
     private final Map<ServiceKey, VnetService> networkServices = Maps.newConcurrentMap();
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkManagerTest.java b/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkManagerTest.java
index 9d4086e..250dc84f 100644
--- a/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkManagerTest.java
+++ b/incubator/net/src/test/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkManagerTest.java
@@ -378,32 +378,28 @@
 
         Set<DeviceId> physicalDeviceSet;
         Set<DeviceId> testSet = new HashSet<>();
-        physicalDeviceSet = manager.getPhysicalDevices(virtualNetwork1.id(), vDevice1InVnet1);
+        physicalDeviceSet = manager.getPhysicalDevices(virtualNetwork1.id(), vDevice1InVnet1.id());
         testSet.add(PHYDID1);
         testSet.add(PHYDID2);
         assertEquals("The physical devices 1 did not match", testSet, physicalDeviceSet);
-        physicalDeviceSet.clear();
         testSet.clear();
 
-        physicalDeviceSet = manager.getPhysicalDevices(virtualNetwork1.id(), vDevice2InVnet1);
+        physicalDeviceSet = manager.getPhysicalDevices(virtualNetwork1.id(), vDevice2InVnet1.id());
         testSet.add(PHYDID3);
         testSet.add(PHYDID4);
         assertEquals("The physical devices 2 did not match", testSet, physicalDeviceSet);
-        physicalDeviceSet.clear();
         testSet.clear();
 
-        physicalDeviceSet = manager.getPhysicalDevices(virtualNetwork2.id(), vDevice1InVnet2);
+        physicalDeviceSet = manager.getPhysicalDevices(virtualNetwork2.id(), vDevice1InVnet2.id());
         testSet.add(PHYDID1);
         testSet.add(PHYDID2);
         assertEquals("The physical devices 1 did not match", testSet, physicalDeviceSet);
-        physicalDeviceSet.clear();
         testSet.clear();
 
-        physicalDeviceSet = manager.getPhysicalDevices(virtualNetwork2.id(), vDevice2InVnet2);
+        physicalDeviceSet = manager.getPhysicalDevices(virtualNetwork2.id(), vDevice2InVnet2.id());
         testSet.add(PHYDID3);
         testSet.add(PHYDID4);
         assertEquals("The physical devices 2 did not match", testSet, physicalDeviceSet);
-        physicalDeviceSet.clear();
         testSet.clear();
     }
 
