Skip to content

Commit d6dbfec

Browse files
committed
Fix MessageFormat.Code#isFixedMap
1 parent 9b63463 commit d6dbfec

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

msgpack-core/src/main/java/org/msgpack/core/MessageFormat.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public static final boolean isFixedArray(byte b)
9898

9999
public static final boolean isFixedMap(byte b)
100100
{
101-
return (b & (byte) 0xe0) == Code.FIXMAP_PREFIX;
101+
return (b & (byte) 0xf0) == Code.FIXMAP_PREFIX;
102102
}
103103

104104
public static final boolean isFixedRaw(byte b)

msgpack-core/src/test/scala/org/msgpack/core/MessagePackTest.scala

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,38 @@ class MessagePackTest extends MessagePackSpec {
5959
}
6060
}
6161

62+
"detect fixarray values" in {
63+
64+
val packer = new MessagePackFactory().newBufferPacker()
65+
packer.packArrayHeader(0)
66+
packer.close
67+
val bytes = packer.toByteArray
68+
new MessagePackFactory().newUnpacker(bytes).unpackArrayHeader() shouldBe 0
69+
try {
70+
new MessagePackFactory().newUnpacker(bytes).unpackMapHeader()
71+
fail("Shouldn't reach here")
72+
}
73+
catch {
74+
case e: MessageTypeException => // OK
75+
}
76+
}
77+
78+
"detect fixmap values" in {
79+
80+
val packer = new MessagePackFactory().newBufferPacker()
81+
packer.packMapHeader(0)
82+
packer.close
83+
val bytes = packer.toByteArray
84+
new MessagePackFactory().newUnpacker(bytes).unpackMapHeader() shouldBe 0
85+
try {
86+
new MessagePackFactory().newUnpacker(bytes).unpackArrayHeader()
87+
fail("Shouldn't reach here")
88+
}
89+
catch {
90+
case e: MessageTypeException => // OK
91+
}
92+
}
93+
6294
"detect fixint quickly" in {
6395

6496
val N = 100000

0 commit comments

Comments
 (0)