Program: 113140
Project: 113140
Buggy source:
@SuppressWarnings("String_Node_Str") @Override protected Object defaultTypeDataFromBinary(final byte[] bytes){
  final ByteBuffer buf=ByteBuffer.wrap(bytes);
  final byte[] typeNameBytes=new byte[buf.getInt()];
  final byte[] namespaceBytes=new byte[buf.getInt()];
  final byte[] fieldVisibilityAtributeNameBytes=new byte[buf.getInt()];
  final byte[] visibilityManagementClassNameBytes=new byte[buf.getInt()];
  final byte[] timeAndRangeBytes=new byte[buf.getInt()];
  buf.get(typeNameBytes);
  buf.get(namespaceBytes);
  buf.get(fieldVisibilityAtributeNameBytes);
  buf.get(visibilityManagementClassNameBytes);
  buf.get(timeAndRangeBytes);
  final String typeName=StringUtils.stringFromBinary(typeNameBytes);
  final String namespace=StringUtils.stringFromBinary(namespaceBytes);
  visibilityAttributeName=StringUtils.stringFromBinary(fieldVisibilityAtributeNameBytes);
  final String visibilityManagementClassName=StringUtils.stringFromBinary(visibilityManagementClassNameBytes);
  try {
    fieldVisibilityManagement=(VisibilityManagement<SimpleFeature>)Class.forName(visibilityManagementClassName).newInstance();
  }
 catch (  final Exception ex) {
    LOGGER.error("String_Node_Str" + visibilityManagementClassName,ex);
  }
  final byte[] encodedTypeBytes=new byte[bytes.length - typeNameBytes.length - namespaceBytes.length- fieldVisibilityAtributeNameBytes.length- visibilityManagementClassNameBytes.length- timeAndRangeBytes.length- 20];
  buf.get(encodedTypeBytes);
  final String encodedType=StringUtils.stringFromBinary(encodedTypeBytes);
  try {
    setFeatureType(DataUtilities.createType(namespace,typeName,encodedType));
    final TimeDescriptors timeDescriptors=new TimeDescriptors();
    timeDescriptors.fromBinary(persistedType,timeAndRangeBytes);
    if (persistedType.getDescriptor(visibilityAttributeName) != null) {
      persistedType.getDescriptor(visibilityAttributeName).getUserData().put("String_Node_Str",Boolean.TRUE);
    }
    return reprojectedType;
  }
 catch (  final SchemaException e) {
    LOGGER.error("String_Node_Str",e);
  }
  return null;
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") @Override protected Object defaultTypeDataFromBinary(final byte[] bytes){
  final ByteBuffer buf=ByteBuffer.wrap(bytes);
  final byte[] typeNameBytes=new byte[buf.getInt()];
  final byte[] namespaceBytes=new byte[buf.getInt()];
  final byte[] fieldVisibilityAtributeNameBytes=new byte[buf.getInt()];
  final byte[] visibilityManagementClassNameBytes=new byte[buf.getInt()];
  final byte[] timeAndRangeBytes=new byte[buf.getInt()];
  buf.get(typeNameBytes);
  buf.get(namespaceBytes);
  buf.get(fieldVisibilityAtributeNameBytes);
  buf.get(visibilityManagementClassNameBytes);
  buf.get(timeAndRangeBytes);
  final String typeName=StringUtils.stringFromBinary(typeNameBytes);
  String namespace=StringUtils.stringFromBinary(namespaceBytes);
  if (namespace.length() == 0) {
    namespace=null;
  }
  visibilityAttributeName=StringUtils.stringFromBinary(fieldVisibilityAtributeNameBytes);
  final String visibilityManagementClassName=StringUtils.stringFromBinary(visibilityManagementClassNameBytes);
  try {
    fieldVisibilityManagement=(VisibilityManagement<SimpleFeature>)Class.forName(visibilityManagementClassName).newInstance();
  }
 catch (  final Exception ex) {
    LOGGER.error("String_Node_Str" + visibilityManagementClassName,ex);
  }
  final byte[] encodedTypeBytes=new byte[bytes.length - typeNameBytes.length - namespaceBytes.length- fieldVisibilityAtributeNameBytes.length- visibilityManagementClassNameBytes.length- timeAndRangeBytes.length- 20];
  buf.get(encodedTypeBytes);
  final String encodedType=StringUtils.stringFromBinary(encodedTypeBytes);
  try {
    setFeatureType(DataUtilities.createType(namespace,typeName,encodedType));
    final TimeDescriptors timeDescriptors=new TimeDescriptors();
    timeDescriptors.fromBinary(persistedType,timeAndRangeBytes);
    if (persistedType.getDescriptor(visibilityAttributeName) != null) {
      persistedType.getDescriptor(visibilityAttributeName).getUserData().put("String_Node_Str",Boolean.TRUE);
    }
    return reprojectedType;
  }
 catch (  final SchemaException e) {
    LOGGER.error("String_Node_Str",e);
  }
  return null;
}