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