Program: 135149
Project: 135149
Buggy source:
@Test public void testParserShouldReadObject() throws IOException {
  MessagePacker packer=new MessagePacker(out);
  packer.packMapHeader(6);
  packer.packString("String_Node_Str");
  packer.packString("String_Node_Str");
  packer.packString("String_Node_Str");
  packer.packInt(Integer.MIN_VALUE);
  packer.packString("String_Node_Str");
{
    packer.packMapHeader(2);
    packer.packString("String_Node_Str");
    packer.packString("String_Node_Str");
    packer.packString("String_Node_Str");
    packer.packInt(Integer.MAX_VALUE);
  }
  packer.packString("String_Node_Str");
  packer.packDouble(Double.MAX_VALUE);
  packer.packString("String_Node_Str");
  packer.packLong(Long.MIN_VALUE);
  packer.packString("String_Node_Str");
  BigInteger bigInteger=new BigInteger(Long.toString(Long.MAX_VALUE));
  packer.packBigInteger(bigInteger.add(BigInteger.ONE));
  packer.flush();
  byte[] bytes=out.toByteArray();
  TypeReference<Map<String,Object>> typeReference=new TypeReference<Map<String,Object>>(){
  }
;
  Map<String,Object> object=objectMapper.readValue(bytes,typeReference);
  assertEquals(6,object.keySet().size());
  int bitmap=0;
  for (  Map.Entry<String,Object> entry : object.entrySet()) {
    String k=entry.getKey();
    Object v=entry.getValue();
    if (k.equals("String_Node_Str")) {
      bitmap|=1 << 0;
      assertEquals("String_Node_Str",v);
    }
 else     if (k.equals("String_Node_Str")) {
      bitmap|=1 << 1;
      assertEquals((long)Integer.MIN_VALUE,v);
    }
 else     if (k.equals("String_Node_Str")) {
      bitmap|=1 << 2;
      Map<String,Object> child=(Map<String,Object>)v;
      assertEquals(2,child.keySet().size());
      for (      Map.Entry<String,Object> childEntry : child.entrySet()) {
        String ck=childEntry.getKey();
        Object cv=childEntry.getValue();
        if (ck.equals("String_Node_Str")) {
          bitmap|=1 << 3;
          assertEquals("String_Node_Str",cv);
        }
 else         if (ck.equals("String_Node_Str")) {
          bitmap|=1 << 4;
          assertEquals((long)Integer.MAX_VALUE,cv);
        }
      }
    }
 else     if (k.equals("String_Node_Str")) {
      bitmap|=1 << 5;
      assertEquals(Double.MAX_VALUE,(Double)v,0.0001f);
    }
 else     if (k.equals("String_Node_Str")) {
      bitmap|=1 << 6;
      assertEquals(Long.MIN_VALUE,v);
    }
 else     if (k.equals("String_Node_Str")) {
      bitmap|=1 << 7;
      BigInteger bi=new BigInteger(Long.toString(Long.MAX_VALUE));
      assertEquals(bi.add(BigInteger.ONE),v);
    }
  }
  assertEquals(0xFF,bitmap);
}

Fixed version (ground truth):
@Test public void testParserShouldReadObject() throws IOException {
  MessagePacker packer=new MessagePacker(out);
  packer.packMapHeader(7);
  packer.packString("String_Node_Str");
  packer.packString("String_Node_Str");
  packer.packString("String_Node_Str");
  packer.packInt(Integer.MIN_VALUE);
  packer.packString("String_Node_Str");
{
    packer.packMapHeader(2);
    packer.packString("String_Node_Str");
    packer.packString("String_Node_Str");
    packer.packString("String_Node_Str");
    packer.packInt(Integer.MAX_VALUE);
  }
  packer.packString("String_Node_Str");
  packer.packDouble(Double.MAX_VALUE);
  packer.packString("String_Node_Str");
  packer.packLong(Long.MIN_VALUE);
  packer.packString("String_Node_Str");
  BigInteger bigInteger=new BigInteger(Long.toString(Long.MAX_VALUE));
  packer.packBigInteger(bigInteger.add(BigInteger.ONE));
  packer.packString("String_Node_Str");
{
    packer.packArrayHeader(3);
    packer.packFloat(Float.MIN_VALUE);
    packer.packNil();
    packer.packString("String_Node_Str");
  }
  packer.flush();
  byte[] bytes=out.toByteArray();
  TypeReference<Map<String,Object>> typeReference=new TypeReference<Map<String,Object>>(){
  }
;
  Map<String,Object> object=objectMapper.readValue(bytes,typeReference);
  assertEquals(7,object.keySet().size());
  int bitmap=0;
  for (  Map.Entry<String,Object> entry : object.entrySet()) {
    String k=entry.getKey();
    Object v=entry.getValue();
    if (k.equals("String_Node_Str")) {
      bitmap|=1 << 0;
      assertEquals("String_Node_Str",v);
    }
 else     if (k.equals("String_Node_Str")) {
      bitmap|=1 << 1;
      assertEquals((long)Integer.MIN_VALUE,v);
    }
 else     if (k.equals("String_Node_Str")) {
      bitmap|=1 << 2;
      Map<String,Object> child=(Map<String,Object>)v;
      assertEquals(2,child.keySet().size());
      for (      Map.Entry<String,Object> childEntry : child.entrySet()) {
        String ck=childEntry.getKey();
        Object cv=childEntry.getValue();
        if (ck.equals("String_Node_Str")) {
          bitmap|=1 << 3;
          assertEquals("String_Node_Str",cv);
        }
 else         if (ck.equals("String_Node_Str")) {
          bitmap|=1 << 4;
          assertEquals((long)Integer.MAX_VALUE,cv);
        }
      }
    }
 else     if (k.equals("String_Node_Str")) {
      bitmap|=1 << 5;
      assertEquals(Double.MAX_VALUE,(Double)v,0.0001f);
    }
 else     if (k.equals("String_Node_Str")) {
      bitmap|=1 << 6;
      assertEquals(Long.MIN_VALUE,v);
    }
 else     if (k.equals("String_Node_Str")) {
      bitmap|=1 << 7;
      BigInteger bi=new BigInteger(Long.toString(Long.MAX_VALUE));
      assertEquals(bi.add(BigInteger.ONE),v);
    }
 else     if (k.equals("String_Node_Str")) {
      bitmap|=1 << 8;
      List<? extends Serializable> expected=Arrays.asList((double)Float.MIN_VALUE,null,"String_Node_Str");
      assertEquals(expected,v);
    }
  }
  assertEquals(0x1FF,bitmap);
}