Committed by
Gerrit Code Review
Fixed a defect where packet requests issued from different instances resulted in…
… 'redundant' packet requests due to different order of criteria serialization. Change-Id: Ice8a0fea11b993fd4fc50b8093e02203fd76c772
Showing
1 changed file
with
8 additions
and
1 deletions
... | @@ -29,16 +29,21 @@ import org.onosproject.net.flow.criteria.Criteria; | ... | @@ -29,16 +29,21 @@ import org.onosproject.net.flow.criteria.Criteria; |
29 | import org.onosproject.net.flow.criteria.Criterion; | 29 | import org.onosproject.net.flow.criteria.Criterion; |
30 | 30 | ||
31 | import java.util.Collections; | 31 | import java.util.Collections; |
32 | +import java.util.Comparator; | ||
32 | import java.util.HashMap; | 33 | import java.util.HashMap; |
33 | import java.util.Map; | 34 | import java.util.Map; |
34 | import java.util.Objects; | 35 | import java.util.Objects; |
35 | import java.util.Set; | 36 | import java.util.Set; |
37 | +import java.util.TreeSet; | ||
36 | 38 | ||
37 | /** | 39 | /** |
38 | * Default traffic selector implementation. | 40 | * Default traffic selector implementation. |
39 | */ | 41 | */ |
40 | public final class DefaultTrafficSelector implements TrafficSelector { | 42 | public final class DefaultTrafficSelector implements TrafficSelector { |
41 | 43 | ||
44 | + private static final Comparator<? super Criterion> TYPE_COMPARATOR = | ||
45 | + (c1, c2) -> c1.type().compareTo(c2.type()); | ||
46 | + | ||
42 | private final Set<Criterion> criteria; | 47 | private final Set<Criterion> criteria; |
43 | 48 | ||
44 | private static final TrafficSelector EMPTY | 49 | private static final TrafficSelector EMPTY |
... | @@ -50,7 +55,9 @@ public final class DefaultTrafficSelector implements TrafficSelector { | ... | @@ -50,7 +55,9 @@ public final class DefaultTrafficSelector implements TrafficSelector { |
50 | * @param criteria criteria | 55 | * @param criteria criteria |
51 | */ | 56 | */ |
52 | private DefaultTrafficSelector(Set<Criterion> criteria) { | 57 | private DefaultTrafficSelector(Set<Criterion> criteria) { |
53 | - this.criteria = ImmutableSet.copyOf(criteria); | 58 | + TreeSet<Criterion> elements = new TreeSet<>(TYPE_COMPARATOR); |
59 | + elements.addAll(criteria); | ||
60 | + this.criteria = ImmutableSet.copyOf(elements); | ||
54 | } | 61 | } |
55 | 62 | ||
56 | @Override | 63 | @Override | ... | ... |
-
Please register or login to post a comment