Committed by
Yuta HIGUCHI
Fix NPE in LincOELambdaQuery.
- Fix for NPE issue reported by Jimmy Yan Change-Id: Ie2dfea3fea7dec1bcff73549056f707b9e502b1a
Showing
1 changed file
with
16 additions
and
8 deletions
| ... | @@ -15,6 +15,7 @@ | ... | @@ -15,6 +15,7 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.driver.optical.query; | 16 | package org.onosproject.driver.optical.query; |
| 17 | 17 | ||
| 18 | +import org.onlab.util.GuavaCollectors; | ||
| 18 | import org.onosproject.net.ChannelSpacing; | 19 | import org.onosproject.net.ChannelSpacing; |
| 19 | import org.onosproject.net.GridType; | 20 | import org.onosproject.net.GridType; |
| 20 | import org.onosproject.net.OchSignal; | 21 | import org.onosproject.net.OchSignal; |
| ... | @@ -24,9 +25,9 @@ import org.onosproject.net.behaviour.LambdaQuery; | ... | @@ -24,9 +25,9 @@ import org.onosproject.net.behaviour.LambdaQuery; |
| 24 | import org.onosproject.net.device.DeviceService; | 25 | import org.onosproject.net.device.DeviceService; |
| 25 | import org.onosproject.net.driver.AbstractHandlerBehaviour; | 26 | import org.onosproject.net.driver.AbstractHandlerBehaviour; |
| 26 | 27 | ||
| 27 | -import java.util.Collections; | 28 | +import com.google.common.collect.ImmutableSet; |
| 29 | + | ||
| 28 | import java.util.Set; | 30 | import java.util.Set; |
| 29 | -import java.util.stream.Collectors; | ||
| 30 | import java.util.stream.IntStream; | 31 | import java.util.stream.IntStream; |
| 31 | 32 | ||
| 32 | /** | 33 | /** |
| ... | @@ -42,19 +43,26 @@ public class LincOELambdaQuery extends AbstractHandlerBehaviour implements Lambd | ... | @@ -42,19 +43,26 @@ public class LincOELambdaQuery extends AbstractHandlerBehaviour implements Lambd |
| 42 | 43 | ||
| 43 | private static final int LAMBDA_COUNT = 80; | 44 | private static final int LAMBDA_COUNT = 80; |
| 44 | 45 | ||
| 46 | + /** | ||
| 47 | + * OMS ports expose 80 fixed grid lambdas of 50GHz width, | ||
| 48 | + * centered around the ITU-T center frequency 193.1 THz. | ||
| 49 | + */ | ||
| 50 | + private static final Set<OchSignal> OMS_LAMDAS = IntStream.range(0, LAMBDA_COUNT) | ||
| 51 | + .mapToObj(x -> new OchSignal(GridType.DWDM, ChannelSpacing.CHL_50GHZ, x - (LAMBDA_COUNT / 2), 4)) | ||
| 52 | + .collect(GuavaCollectors.toImmutableSet()); | ||
| 53 | + | ||
| 45 | @Override | 54 | @Override |
| 46 | public Set<OchSignal> queryLambdas(PortNumber port) { | 55 | public Set<OchSignal> queryLambdas(PortNumber port) { |
| 47 | DeviceService deviceService = this.handler().get(DeviceService.class); | 56 | DeviceService deviceService = this.handler().get(DeviceService.class); |
| 57 | + | ||
| 48 | Port p = deviceService.getPort(this.data().deviceId(), port); | 58 | Port p = deviceService.getPort(this.data().deviceId(), port); |
| 49 | 59 | ||
| 50 | // OCh ports don't expose lambda resources | 60 | // OCh ports don't expose lambda resources |
| 51 | - if (!p.type().equals(Port.Type.OMS)) { | 61 | + if (p == null || |
| 52 | - return Collections.emptySet(); | 62 | + !p.type().equals(Port.Type.OMS)) { |
| 63 | + return ImmutableSet.of(); | ||
| 53 | } | 64 | } |
| 54 | 65 | ||
| 55 | - // OMS ports expose 80 fixed grid lambdas of 50GHz width, centered around the ITU-T center frequency 193.1 THz. | 66 | + return OMS_LAMDAS; |
| 56 | - return IntStream.range(0, LAMBDA_COUNT) | ||
| 57 | - .mapToObj(x -> new OchSignal(GridType.DWDM, ChannelSpacing.CHL_50GHZ, x - (LAMBDA_COUNT / 2), 4)) | ||
| 58 | - .collect(Collectors.toSet()); | ||
| 59 | } | 67 | } |
| 60 | } | 68 | } | ... | ... |
-
Please register or login to post a comment