Make PCEPErrors work on Uint8 20/85120/7
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 15 Oct 2019 14:02:54 +0000 (16:02 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 15 Oct 2019 14:36:13 +0000 (16:36 +0200)
These values are unsinged bytes, make sure we operate on them
rather than forcing conversion to short.

Change-Id: I9c77ad81a7832e74dad8301518fdd727956a48c7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPErrorObjectParser.java
pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/FiniteStateMachineTest.java
pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPSessionImplTest.java
pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/UtilTest.java
pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/PCEPErrorIdentifier.java
pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/PCEPErrors.java
pcep/spi/src/test/java/org/opendaylight/protocol/pcep/spi/APITest.java
pcep/topology/topology-provider/src/test/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListenerTest.java

index bd08548581598aa4c4268047ed8706fc3da09a7a..566133904c0ae5705000b2b263308e689e00f67c 100644 (file)
@@ -61,7 +61,7 @@ public final class PCEPErrorObjectParser extends AbstractObjectWithTlvsParser<Er
     @Override
     public void addTlv(final ErrorObjectBuilder builder, final Tlv tlv) {
         if (tlv instanceof ReqMissing
-                && builder.getType().toJava() == PCEPErrors.SYNC_PATH_COMP_REQ_MISSING.getErrorType()) {
+                && PCEPErrors.SYNC_PATH_COMP_REQ_MISSING.getErrorType().equals(builder.getType())) {
             builder.setTlvs(new TlvsBuilder().setReqMissing((ReqMissing) tlv).build());
         }
     }
index 9305ca52fa72afe15e9aca57a71956da77c4efe5..82d9f98eef87d42e9f25e9e90e16d1cbce9f7b24 100644 (file)
@@ -97,8 +97,8 @@ public class FiniteStateMachineTest extends AbstractPCEPSessionTest {
         assertEquals(2, this.msgsSend.size());
         assertTrue(this.msgsSend.get(1) instanceof Pcerr);
         final Errors obj = ((Pcerr) this.msgsSend.get(1)).getPcerrMessage().getErrors().get(0);
-        assertEquals(PCEPErrors.NOT_POSSIBLE_WITHOUT_TLS.getErrorType(), obj.getErrorObject().getType().shortValue());
-        assertEquals(PCEPErrors.NOT_POSSIBLE_WITHOUT_TLS.getErrorValue(), obj.getErrorObject().getValue().shortValue());
+        assertEquals(PCEPErrors.NOT_POSSIBLE_WITHOUT_TLS.getErrorType(), obj.getErrorObject().getType());
+        assertEquals(PCEPErrors.NOT_POSSIBLE_WITHOUT_TLS.getErrorValue(), obj.getErrorObject().getValue());
         assertEquals(DefaultPCEPSessionNegotiator.State.FINISHED, this.tlsSessionNegotiator.getState());
     }
 
@@ -115,8 +115,8 @@ public class FiniteStateMachineTest extends AbstractPCEPSessionTest {
         assertEquals(2, this.msgsSend.size());
         assertTrue(this.msgsSend.get(1) instanceof Pcerr);
         final Errors obj = ((Pcerr) this.msgsSend.get(1)).getPcerrMessage().getErrors().get(0);
-        assertEquals(PCEPErrors.NON_STARTTLS_MSG_RCVD.getErrorType(), obj.getErrorObject().getType().shortValue());
-        assertEquals(PCEPErrors.NON_STARTTLS_MSG_RCVD.getErrorValue(), obj.getErrorObject().getValue().shortValue());
+        assertEquals(PCEPErrors.NON_STARTTLS_MSG_RCVD.getErrorType(), obj.getErrorObject().getType());
+        assertEquals(PCEPErrors.NON_STARTTLS_MSG_RCVD.getErrorValue(), obj.getErrorObject().getValue());
         assertEquals(this.tlsSessionNegotiator.getState(), DefaultPCEPSessionNegotiator.State.FINISHED);
     }
 
index 15d17b2991fe69cc15f8a36f2231f86e8326993f..b6009dc54749b338d4dc6ef226be43f209b08241 100644 (file)
@@ -5,7 +5,6 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.protocol.pcep.impl;
 
 import org.junit.After;
@@ -72,8 +71,7 @@ public class PCEPSessionImplTest extends AbstractPCEPSessionTest {
         Assert.assertTrue(this.msgsSend.get(0) instanceof Pcerr);
         final Pcerr pcErr = (Pcerr) this.msgsSend.get(0);
         final ErrorObject errorObj = pcErr.getPcerrMessage().getErrors().get(0).getErrorObject();
-        Assert.assertEquals(
-            PCEPErrors.ATTEMPT_2ND_SESSION, PCEPErrors.forValue(errorObj.getType(), errorObj.getValue()));
+        Assert.assertEquals(PCEPErrors.ATTEMPT_2ND_SESSION, PCEPErrors.forValue(errorObj.getType(), errorObj.getValue()));
     }
 
     @Test
@@ -139,10 +137,8 @@ public class PCEPSessionImplTest extends AbstractPCEPSessionTest {
         final ErrorMessages errMsgs = msgs.getErrorMessages();
         Assert.assertEquals(1, errMsgs.getReceivedErrorMsgCount().intValue());
         Assert.assertEquals(0, errMsgs.getSentErrorMsgCount().intValue());
-        Assert.assertEquals(
-            PCEPErrors.LSP_RSVP_ERROR.getErrorType(), errMsgs.getLastReceivedError().getErrorType().shortValue());
-        Assert.assertEquals(
-            PCEPErrors.LSP_RSVP_ERROR.getErrorValue(), errMsgs.getLastReceivedError().getErrorValue().shortValue());
+        Assert.assertEquals(PCEPErrors.LSP_RSVP_ERROR.getErrorType(), errMsgs.getLastReceivedError().getErrorType());
+        Assert.assertEquals(PCEPErrors.LSP_RSVP_ERROR.getErrorValue(), errMsgs.getLastReceivedError().getErrorValue());
 
         this.session.sendMessage(Util.createErrorMessage(PCEPErrors.UNKNOWN_PLSP_ID, null));
         final Messages msgs2 = this.session.getMessages();
@@ -152,10 +148,8 @@ public class PCEPSessionImplTest extends AbstractPCEPSessionTest {
         final ErrorMessages errMsgs2 = msgs2.getErrorMessages();
         Assert.assertEquals(1, errMsgs2.getReceivedErrorMsgCount().intValue());
         Assert.assertEquals(1, errMsgs2.getSentErrorMsgCount().intValue());
-        Assert.assertEquals(
-            PCEPErrors.UNKNOWN_PLSP_ID.getErrorType(), errMsgs2.getLastSentError().getErrorType().shortValue());
-        Assert.assertEquals(
-            PCEPErrors.UNKNOWN_PLSP_ID.getErrorValue(), errMsgs2.getLastSentError().getErrorValue().shortValue());
+        Assert.assertEquals(PCEPErrors.UNKNOWN_PLSP_ID.getErrorType(), errMsgs2.getLastSentError().getErrorType());
+        Assert.assertEquals(PCEPErrors.UNKNOWN_PLSP_ID.getErrorValue(), errMsgs2.getLastSentError().getErrorValue());
     }
 
     @Test
index 368264c0aca3f8229d39424e2c1143a0f5b24e22..8475f45d896c10aee5409f3bacf1cb68f43a8bef 100644 (file)
@@ -5,7 +5,6 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.protocol.pcep.impl;
 
 import java.lang.reflect.Constructor;
@@ -34,8 +33,8 @@ public class UtilTest {
         final SessionCase sessionCase = (SessionCase) errMsg.getPcerrMessage().getErrorType();
         Assert.assertEquals(OPEN, sessionCase.getSession().getOpen());
         final ErrorObject errorObject = errMsg.getPcerrMessage().getErrors().get(0).getErrorObject();
-        Assert.assertEquals(PCEPErrors.BAD_LABEL_VALUE.getErrorType(), errorObject.getType().shortValue());
-        Assert.assertEquals(PCEPErrors.BAD_LABEL_VALUE.getErrorValue(), errorObject.getValue().shortValue());
+        Assert.assertEquals(PCEPErrors.BAD_LABEL_VALUE.getErrorType(), errorObject.getType());
+        Assert.assertEquals(PCEPErrors.BAD_LABEL_VALUE.getErrorValue(), errorObject.getValue());
     }
 
     @Test
@@ -45,8 +44,8 @@ public class UtilTest {
         final Pcerr errMsg = (Pcerr) msg;
         Assert.assertNull(errMsg.getPcerrMessage().getErrorType());
         final ErrorObject errorObject = errMsg.getPcerrMessage().getErrors().get(0).getErrorObject();
-        Assert.assertEquals(PCEPErrors.BAD_LABEL_VALUE.getErrorType(), errorObject.getType().shortValue());
-        Assert.assertEquals(PCEPErrors.BAD_LABEL_VALUE.getErrorValue(), errorObject.getValue().shortValue());
+        Assert.assertEquals(PCEPErrors.BAD_LABEL_VALUE.getErrorType(), errorObject.getType());
+        Assert.assertEquals(PCEPErrors.BAD_LABEL_VALUE.getErrorValue(), errorObject.getValue());
     }
 
     @Test(expected = UnsupportedOperationException.class)
index 56f67e66a92c909f26f67a1d80c7c7424d873150..592fa9b38ad24719e368a007a811d2ed10d9d32f 100644 (file)
@@ -7,7 +7,12 @@
  */
 package org.opendaylight.protocol.pcep.spi;
 
+import static java.util.Objects.requireNonNull;
+
 import java.io.Serializable;
+import java.util.Objects;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.Uint8;
 
 /**
  * Caret for combination of Error-type and Error-value.
@@ -15,30 +20,25 @@ import java.io.Serializable;
 final class PCEPErrorIdentifier implements Serializable {
     private static final long serialVersionUID = 2434590156751699872L;
 
-    // FIXME: these should be Uint8s
-    private final short type;
-    private final short value;
+    private final @NonNull Uint8 type;
+    private final @NonNull Uint8 value;
 
-    PCEPErrorIdentifier(final short type, final short value) {
-        this.type = type;
-        this.value = value;
+    PCEPErrorIdentifier(final Uint8 type, final Uint8 value) {
+        this.type = requireNonNull(type);
+        this.value = requireNonNull(value);
     }
 
-    public short getType() {
-        return this.type;
+    @NonNull Uint8  getType() {
+        return type;
     }
 
-    public short getValue() {
-        return this.value;
+    @NonNull Uint8  getValue() {
+        return value;
     }
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + this.type;
-        result = prime * result + this.value;
-        return result;
+        return Objects.hash(type, value);
     }
 
     @Override
@@ -46,11 +46,11 @@ final class PCEPErrorIdentifier implements Serializable {
         if (this == obj) {
             return true;
         }
-        if (obj == null || this.getClass() != obj.getClass()) {
+        if (!(obj instanceof PCEPErrorIdentifier)) {
             return false;
         }
         final PCEPErrorIdentifier other = (PCEPErrorIdentifier) obj;
-        return this.type == other.type && this.value == other.value;
+        return type.equals(other.type) && value.equals(other.value);
     }
 
     @Override
index ee521bb738eca8d0473ca412c5eb23f81219de0b..a9390b95e7a34dfbb997f381c3ad268acdf7eac9 100644 (file)
@@ -354,23 +354,22 @@ public enum PCEPErrors {
     private PCEPErrorIdentifier errorId;
 
     public static PCEPErrors forValue(final Uint8 errorType, final Uint8 errorValue) {
-        return VALUE_MAP.get(new PCEPErrorIdentifier(errorType.toJava(), errorValue.toJava()));
+        return VALUE_MAP.get(new PCEPErrorIdentifier(errorType, errorValue));
     }
 
     PCEPErrors(final int type, final int value) {
-        this.errorId = new PCEPErrorIdentifier((short) type, (short) value);
+        this.errorId = new PCEPErrorIdentifier(Uint8.valueOf(type), Uint8.valueOf(value));
     }
 
     private PCEPErrorIdentifier getErrorIdentifier() {
-        return this.errorId;
+        return errorId;
     }
 
-    // FIXME: these should be Uint8s
-    public short getErrorType() {
-        return this.errorId.getType();
+    public Uint8 getErrorType() {
+        return errorId.getType();
     }
 
-    public short getErrorValue() {
-        return this.errorId.getValue();
+    public Uint8 getErrorValue() {
+        return errorId.getValue();
     }
 }
index ac5958b5e82c7262d7052ef19277ec327810c438..db59dfb9cfeb8dfd9a5e40c087b1d4708620ab72 100644 (file)
@@ -47,7 +47,7 @@ public class APITest {
         assertFalse(un.isProcessingRule());
         assertEquals(PCEPErrors.CT_AND_SETUP_PRIORITY_DO_NOT_FORM_TE_CLASS, un.getError());
         assertEquals(PCEPErrors.CT_AND_SETUP_PRIORITY_DO_NOT_FORM_TE_CLASS.getErrorType(),
-            un.getErrors().get(0).getErrorObject().getType().shortValue());
+            un.getErrors().get(0).getErrorObject().getType());
 
         final Object o = new CCloseBuilder().build();
         UnknownObject unknown = new UnknownObject(PCEPErrors.LSP_RSVP_ERROR, o);
index d95706ee4dbf83bf9a0cb098dc7d2d94df890226..31843cd445ef6e3ef7a0ac3780a9091c035d8ae8 100755 (executable)
@@ -304,8 +304,8 @@ public class Stateful07TopologySessionListenerTest
         assertEquals(FailureType.Failed, output.getFailure());
         assertEquals(1, output.getError().size());
         final ErrorObject err = output.getError().get(0).getErrorObject();
-        assertEquals(PCEPErrors.NON_ZERO_PLSPID.getErrorType(), err.getType().shortValue());
-        assertEquals(PCEPErrors.NON_ZERO_PLSPID.getErrorValue(), err.getValue().shortValue());
+        assertEquals(PCEPErrors.NON_ZERO_PLSPID.getErrorType(), err.getType());
+        assertEquals(PCEPErrors.NON_ZERO_PLSPID.getErrorValue(), err.getValue());
     }
 
     @Test