diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/LinkCollectionIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/LinkCollectionIntentCompiler.java
index 5dda4ee..53c4287 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/LinkCollectionIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/LinkCollectionIntentCompiler.java
@@ -112,8 +112,7 @@
     private List<FlowRule> createRules(LinkCollectionIntent intent, DeviceId deviceId,
                                        Set<PortNumber> inPorts, Set<PortNumber> outPorts) {
         TrafficTreatment.Builder defaultTreatmentBuilder = DefaultTrafficTreatment.builder();
-        outPorts.stream()
-                .forEach(defaultTreatmentBuilder::setOutput);
+        outPorts.forEach(defaultTreatmentBuilder::setOutput);
         TrafficTreatment outputOnlyTreatment = defaultTreatmentBuilder.build();
         Set<PortNumber> ingressPorts = Collections.emptySet();
         Set<PortNumber> egressPorts = Collections.emptySet();
@@ -138,8 +137,7 @@
 
             if (!intent.applyTreatmentOnEgress()) {
                 TrafficTreatment.Builder ingressTreatmentBuilder = DefaultTrafficTreatment.builder(intent.treatment());
-                outPorts.stream()
-                        .forEach(ingressTreatmentBuilder::setOutput);
+                outPorts.forEach(ingressTreatmentBuilder::setOutput);
                 intentTreatment = ingressTreatmentBuilder.build();
 
                 if (ingressPorts.contains(inPort)) {
@@ -153,8 +151,7 @@
                 if (outPorts.stream().allMatch(egressPorts::contains)) {
                     TrafficTreatment.Builder egressTreatmentBuilder =
                             DefaultTrafficTreatment.builder(intent.treatment());
-                    outPorts.stream()
-                            .forEach(egressTreatmentBuilder::setOutput);
+                    outPorts.forEach(egressTreatmentBuilder::setOutput);
 
                     selectorBuilder = DefaultTrafficSelector.builder(intent.selector());
                     treatment = egressTreatmentBuilder.build();
@@ -343,4 +340,4 @@
         });
         return defaultSelectorBuilder;
     }
-}
\ No newline at end of file
+}
