diff --git a/core/common/src/test/java/org/onosproject/codec/impl/CriterionJsonMatcher.java b/core/common/src/test/java/org/onosproject/codec/impl/CriterionJsonMatcher.java
index 2bc611c..2a4c138 100644
--- a/core/common/src/test/java/org/onosproject/codec/impl/CriterionJsonMatcher.java
+++ b/core/common/src/test/java/org/onosproject/codec/impl/CriterionJsonMatcher.java
@@ -134,7 +134,7 @@
      * @return true if the JSON matches the criterion, false otherwise.
      */
     private boolean matchCriterion(EthTypeCriterion criterion) {
-        final int ethType = criterion.ethType();
+        final int ethType = criterion.ethType().toShort();
         final int jsonEthType = jsonCriterion.get("ethType").intValue();
         if (ethType != jsonEthType) {
             description.appendText("ethType was "
diff --git a/core/common/src/test/java/org/onosproject/codec/impl/FlowRuleCodecTest.java b/core/common/src/test/java/org/onosproject/codec/impl/FlowRuleCodecTest.java
index 2e0e8b3..2a93b55 100644
--- a/core/common/src/test/java/org/onosproject/codec/impl/FlowRuleCodecTest.java
+++ b/core/common/src/test/java/org/onosproject/codec/impl/FlowRuleCodecTest.java
@@ -22,6 +22,7 @@
 
 import org.junit.Before;
 import org.junit.Test;
+import org.onlab.packet.EthType;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.IpPrefix;
@@ -148,7 +149,7 @@
         assertThat(rule.selector().criteria().size(), is(1));
         Criterion criterion1 = rule.selector().criteria().iterator().next();
         assertThat(criterion1.type(), is(Criterion.Type.ETH_TYPE));
-        assertThat(((EthTypeCriterion) criterion1).ethType(), is(2054));
+        assertThat(((EthTypeCriterion) criterion1).ethType(), is(new EthType(2054)));
 
         assertThat(rule.treatment().allInstructions().size(), is(1));
         Instruction instruction1 = rule.treatment().allInstructions().get(0);
@@ -356,7 +357,7 @@
         Criterion criterion;
 
         criterion = getCriterion(Criterion.Type.ETH_TYPE);
-        assertThat(((EthTypeCriterion) criterion).ethType(), is(2054));
+        assertThat(((EthTypeCriterion) criterion).ethType(), is(new EthType(2054)));
 
         criterion = getCriterion(Criterion.Type.ETH_DST);
         assertThat(((EthCriterion) criterion).mac(),
