Buggy code:
public abstract class NBTUtils { public static final NBTUtils nbtUtils ; public Object createTag ( Object javaObject ) throws NBTConvertException { if ( javaObject == null ) return null ; if ( javaObject instanceof NBTCompound ) return cloneTag ( ( ( NBTCompound ) ( javaObject ) ) . getHandle ( ) ) ; if ( javaObject instanceof NBTList ) return cloneTag ( ( ( NBTList ) ( javaObject ) ) . getHandle ( ) ) ; if ( javaObject instanceof Boolean ) { if ( ( ( Boolean ) ( javaObject ) ) ) return createTagByte ( ( ( byte ) ( 1 ) ) ) ; else <START_BUG> return ( ( byte ) ( 0 ) ) ; <END_BUG> } if ( javaObject instanceof Collection ) return new NBTList ( ( ( Collection ) ( javaObject ) ) ) . getHandle ( ) ; if ( javaObject instanceof Short ) return createTagShort ( ( ( Short ) ( javaObject ) ) ) ; if ( javaObject instanceof CharSequence ) return createTagString ( javaObject . toString ( ) ) ; if ( javaObject instanceof Byte ) return createTagByte ( ( ( Byte ) ( javaObject ) ) ) ; if ( javaObject instanceof Integer ) return createTagInt ( ( ( Integer ) ( javaObject ) ) ) ; if ( javaObject instanceof Float ) return createTagFloat ( ( ( Float ) ( javaObject ) ) ) ; if ( javaObject instanceof Double ) return createTagDouble ( ( ( Double ) ( javaObject ) ) ) ; if ( javaObject instanceof Long ) return createTagLong ( ( ( Long ) ( javaObject ) ) ) ; if ( javaObject instanceof byte [ ] ) return createTagByteArray ( ( ( byte [ ] ) ( javaObject ) ) ) ; if ( javaObject instanceof int [ ] ) return createTagIntArray ( ( ( int [ ] ) ( javaObject ) ) ) ; if ( javaObject instanceof Map ) return new NBTCompound ( ( ( Map ) ( javaObject ) ) ) . getHandle ( ) ; if ( javaObject instanceof Object [ ] ) return new NBTList ( Arrays . asList ( ( ( Object [ ] ) ( javaObject ) ) ) ) . getHandle ( ) ; throw new NBTConvertException ( javaObject ) ; } public Object createTag ( Object value , byte type ) throws NBTConvertException { } public Object convertValue ( Object value , byte type ) throws NBTConvertException { } public abstract Object createTagByte ( Byte a ) { } public abstract Object createTagShort ( Short a ) { } public abstract Object createTagInt ( Integer a ) { } public abstract Object createTagLong ( Long a ) { } public abstract Object createTagFloat ( Float a ) { } public abstract Object createTagDouble ( Double a ) { } public abstract Object createTagString ( CharSequence a ) { } public abstract Object createTagByteArray ( byte [ ] a ) { } public abstract Object createTagIntArray ( int [ ] a ) { } public abstract Object getValue ( Object tag ) throws NBTReadException { } protected abstract void setRawValue ( Object tag , Object value ) throws NBTReadException { } public void setValue ( Object tag , Object value ) throws NBTConvertException { } public abstract byte getTagType ( Object tag ) throws NBTReadException { } public abstract Object createTagOfType ( byte type ) { } public abstract Object cloneTag ( Object tag ) { } public abstract Object createTagCompound ( ) { } public abstract Object createTagList ( ) { } public abstract Map < String , Object > getHandleMap ( Object nbtTagCompound ) { } public abstract List < Object > getHandleList ( Object nbtTagList ) { } public abstract byte getNBTTagListType ( Object nbtTagList ) { } public abstract void setNBTTagListType ( Object nbtTagList , byte type ) { } public abstract boolean isNBTTag ( Object tag ) { } public abstract void readInputToTag ( DataInput input , Object tag ) throws IOException { } public abstract void writeTagDataToOutput ( DataOutput output , Object tag ) throws IOException { } public void writeTagToOutput ( DataOutput output , Object tag ) throws IOException { } public Object readTagOfType ( DataInput input , byte type ) throws IOException { } public Object readTag ( DataInput input ) throws IOException { } public abstract void seTagName ( Object tag , String name ) { } public abstract String getTagName ( Object tag ) { } No newline ; at end ; of file ; }

Fix:
return createTagByte ( ( ( byte ) ( 0 ) ) ) ;