From 84d8f8c03850c998ba1ae37b72050bf2c59f186f Mon Sep 17 00:00:00 2001 From: Moiz Raja Date: Thu, 20 Mar 2014 17:22:53 -0700 Subject: [PATCH] Fix bug in PortConvertor#maskPortConfigFields This method was trying to set a passed reference to a different value and expecting to see it set in the caller This won't work in java because java passes object references also as a value See http://www.javaworld.com/article/2077424/learn-java/does-java-pass-by-reference-or-pass-by-value.html Change-Id: I809f0887fb435b5ae2dd2b91304b8c20fa2adb17 Signed-off-by: Moiz Raja Signed-off-by: Michal Rehak --- .../md/core/sal/convertor/PortConvertor.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PortConvertor.java b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PortConvertor.java index e11eb8dca6..5ef457b594 100644 --- a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PortConvertor.java +++ b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PortConvertor.java @@ -50,20 +50,18 @@ public final class PortConvertor { PortModInputBuilder portModInputBuilder = new PortModInputBuilder(); portModInputBuilder.setAdvertise(getPortFeatures(source.getAdvertisedFeatures())); portModInputBuilder.setPortNo(new PortNumber(source.getPortNumber())); - maskPortConfigFields(source.getConfiguration(), config); + config = maskPortConfigFields(source.getConfiguration()); portModInputBuilder.setConfig(config); portModInputBuilder.setHwAddress(new MacAddress(source.getHardwareAddress())); - config = null; - maskPortConfigFields(source.getMask(), config); + config = maskPortConfigFields(source.getMask()); portModInputBuilder.setMask(config); portModInputBuilder.setVersion(version); return portModInputBuilder.build(); } - private static void maskPortConfigFields( - org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortConfig configData, - PortConfig config) { + private static PortConfig maskPortConfigFields( + org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortConfig configData) { Boolean portDown = false; Boolean noRecv = false; Boolean noFwd = false; @@ -77,7 +75,7 @@ public final class PortConvertor { if (configData.isPORTDOWN()) portDown = true; - config = new PortConfig(noFwd, noPacketIn, noRecv, portDown); + return new PortConfig(noFwd, noPacketIn, noRecv, portDown); } @@ -113,7 +111,7 @@ public final class PortConvertor { OFPortDescDataBuilder.setHwAddr(source.getHardwareAddress()); OFPortDescDataBuilder.setName(source.getName()); - maskPortConfigFields(source.getConfiguration(), config); + config = maskPortConfigFields(source.getConfiguration()); OFPortDescDataBuilder.setConfig(config); -- 2.36.6