...
diff --git a/release-notes/VERSION b/release-notes/VERSION
index ae666fe..dffd5d3 100644
--- a/release-notes/VERSION
+++ b/release-notes/VERSION
@@ -18,6 +18,7 @@
class loader and Class.forName, as necessary
* [JACKSON-803]: Problems with Smile, parsing of long names
(reported by D Lam)
+ * [JACKSON-804]: Allow byte range up to 255, for interoperability with unsigned bytes
------------------------------------------------------------------------
=== History: ===
diff --git a/src/java/org/codehaus/jackson/JsonParser.java b/src/java/org/codehaus/jackson/JsonParser.java
index a48f236..b8e221c 100644
--- a/src/java/org/codehaus/jackson/JsonParser.java
+++ b/src/java/org/codehaus/jackson/JsonParser.java
@@ -33,7 +33,8 @@
implements Closeable, Versioned
{
private final static int MIN_BYTE_I = (int) Byte.MIN_VALUE;
- private final static int MAX_BYTE_I = (int) Byte.MAX_VALUE;
+ // [JACKSON-804]: allow range up to 255 (instead of Java's 127) for better interoperability
+ private final static int MAX_BYTE_I = 255;
private final static int MIN_SHORT_I = (int) Short.MIN_VALUE;
private final static int MAX_SHORT_I = (int) Short.MAX_VALUE;
diff --git a/src/mapper/java/org/codehaus/jackson/map/deser/std/StdDeserializer.java b/src/mapper/java/org/codehaus/jackson/map/deser/std/StdDeserializer.java
index 40dce9b..fa0aacf 100644
--- a/src/mapper/java/org/codehaus/jackson/map/deser/std/StdDeserializer.java
+++ b/src/mapper/java/org/codehaus/jackson/map/deser/std/StdDeserializer.java
@@ -202,7 +202,8 @@
throw ctxt.weirdStringException(_valueClass, "not a valid Byte value");
}
// So far so good: but does it fit?
- if (value < Byte.MIN_VALUE || value > Byte.MAX_VALUE) {
+ // as per [JACKSON-804], allow range up to 255, inclusive
+ if (value < Byte.MIN_VALUE || value > 255) {
throw ctxt.weirdStringException(_valueClass, "overflow, value can not be represented as 8-bit value");
}
return Byte.valueOf((byte) value);
diff --git a/src/mapper/java/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java b/src/mapper/java/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java
index 524a3f2..7639b7c 100644
--- a/src/mapper/java/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java
+++ b/src/mapper/java/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java
@@ -128,7 +128,8 @@
public Byte _parse(String key, DeserializationContext ctxt) throws JsonMappingException
{
int value = _parseInt(key);
- if (value < Byte.MIN_VALUE || value > Byte.MAX_VALUE) {
+ // as per [JACKSON-804], allow range up to 255, inclusive
+ if (value < Byte.MIN_VALUE || value > 255) {
throw ctxt.weirdKeyException(_keyClass, key, "overflow, value can not be represented as 8-bit value");
}
return Byte.valueOf((byte) value);