Bug fixes for optical use case.

Change-Id: I62bff2ec639957043890bf06b8ba0d9abe0b6b04
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalPathIntentCompiler.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalPathIntentCompiler.java
index 8b17246..614ab90 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalPathIntentCompiler.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalPathIntentCompiler.java
@@ -123,7 +123,7 @@
 
         for (Link link : intent.path().links()) {
             TrafficTreatment.Builder treatmentBuilder = DefaultTrafficTreatment.builder();
-            if (!isTransparent(link.src().deviceId())) {
+            if (!isTransparent(current.deviceId())) {
                 treatmentBuilder.add(Instructions.modL0Lambda(intent.lambda()));
             }
             treatmentBuilder.setOutput(link.src().port());
@@ -136,6 +136,7 @@
                     .fromApp(appId)
                     .makePermanent()
                     .build();
+            selectorBuilder = DefaultTrafficSelector.builder();
 
             if (!isNoFlowRule(current.deviceId())) {
                 rules.add(rule);
@@ -143,7 +144,7 @@
 
             current = link.dst();
             selectorBuilder.matchInPort(link.dst().port());
-            if (!isTransparent(link.dst().deviceId())) {
+            if (!isTransparent(current.deviceId())) {
                 selectorBuilder.add(Criteria.matchLambda(intent.lambda()));
                 selectorBuilder.add(Criteria.matchOchSignalType(intent.signalType()));
             }
@@ -184,7 +185,7 @@
 
         for (Link link : Lists.reverse(intent.path().links())) {
             TrafficTreatment.Builder treatmentBuilder = DefaultTrafficTreatment.builder();
-            if (isTransparent(link.dst().deviceId())) {
+            if (!isTransparent(current.deviceId())) {
                 treatmentBuilder.add(Instructions.modL0Lambda(intent.lambda()));
             }
             treatmentBuilder.setOutput(link.dst().port());
@@ -197,6 +198,7 @@
                     .fromApp(appId)
                     .makePermanent()
                     .build();
+            selectorBuilder = DefaultTrafficSelector.builder();
 
             if (!isNoFlowRule(current.deviceId())) {
                 rules.add(rule);
@@ -204,7 +206,7 @@
 
             current = link.src();
             selectorBuilder.matchInPort(link.src().port());
-            if (isTransparent(link.src().deviceId())) {
+            if (!isTransparent(current.deviceId())) {
                 selectorBuilder.add(Criteria.matchLambda(intent.lambda()));
                 selectorBuilder.add(Criteria.matchOchSignalType(intent.signalType()));
             }