#fixed code
                                @Test
    public void testDecodeWithData() throws IOException {
        JacksonJsonSupport jsonSupport = new JacksonJsonSupport();
        jsonSupport.addEventMapping("", "edwald", HashMap.class, Integer.class, String.class);
        PacketDecoder decoder = new PacketDecoder(jsonSupport, ackManager);

        Packet packet = decoder.decodePackets(Unpooled.copiedBuffer("5:::{\"name\":\"edwald\",\"args\":[{\"a\": \"b\"},2,\"3\"]}", CharsetUtil.UTF_8), null);
        Assert.assertEquals(PacketType.EVENT, packet.getType());
        Assert.assertEquals("edwald", packet.getName());
//        Assert.assertEquals(3, packet.getArgs().size());
//        Map obj = (Map) packet.getArgs().get(0);
//        Assert.assertEquals("b", obj.get("a"));
//        Assert.assertEquals(2, packet.getArgs().get(1));
//        Assert.assertEquals("3", packet.getArgs().get(2));
    }
#vulnerable code 
                                @Test
    public void testDecodeWithData() throws IOException {
        JacksonJsonSupport jsonSupport = new JacksonJsonSupport();
        jsonSupport.addEventMapping("", "edwald", HashMap.class, Integer.class, String.class);
        PacketDecoder decoder = new PacketDecoder(jsonSupport, ackManager);

        Packet packet = decoder.decodePacket("5:::{\"name\":\"edwald\",\"args\":[{\"a\": \"b\"},2,\"3\"]}", null);
        Assert.assertEquals(PacketType.EVENT, packet.getType());
        Assert.assertEquals("edwald", packet.getName());
//        Assert.assertEquals(3, packet.getArgs().size());
//        Map obj = (Map) packet.getArgs().get(0);
//        Assert.assertEquals("b", obj.get("a"));
//        Assert.assertEquals(2, packet.getArgs().get(1));
//        Assert.assertEquals("3", packet.getArgs().get(2));
    } 
                            #location 8 
                            #vulnerability type NULL_DEREFERENCE