La validación XML no libera el archivo xml

Estoy tratando de validar un archivo XML contra un archivo XSD en JAVA. Mi problema no es la validación en sí, ya que está funcionando bien. Mi problema es que el archivo XML no se libera después de la validación. Si intento acceder al archivo posteriormente, aparece el error "El archivo es utilizado por otro recurso".

Este error solo ocurre cuando la validación falla (se genera una excepción desde validator.validate (xmlSource);) Si el archivo se valida sin problemas, el archivo se libera y otros pueden acceder a él.

¿Algún idear?

public void validateXMLAgainstXSD(String xmlPath, String xsdPath) throws ParserException, IOException
  {
    Source xmlSource = null;
    File schemaFile = null;
    SchemaFactory schemaFactory = null;
    Schema schema = null;
    Validator validator = null;
    try 
    {
      schemaFile = new File(xsdPath);
      xmlSource = new StreamSource(new File(xmlPath));
      schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
      schema = schemaFactory.newSchema(schemaFile);
      validator = schema.newValidator();
      validator.validate(xmlSource);
    }
    catch (SAXException e)
    {
      //_log.error("ParsingDataFile: XML file could not be validated against XSD file: XML File=<", xmlFile.getAbsolutePath(), "> XSD file=<", xsdFile.getAbsolutePath(), ">. Exception=<", e, ">");
      xmlSource = null;
      schemaFile = null;
      schemaFactory = null;
      schema = null;
      validator.reset();
      validator = null;      
      //throw new ParserException(-1, ParserException.ERROR_CODE_XML_NOT_VALID, e);
    }
  }

Respuestas a la pregunta(1)

Su respuesta a la pregunta