Description
The schema compiler leaves the schema file open. This is demonstrated on the following code:
File schemaFile = new File("schema.avsc");
SpecificCompiler.compileSchema(new File[]
, new File("output"));
Files.delete(schemaFile.toPath());
On Windows I get "java.nio.file.FileSystemException: schema.avsc: The process cannot access the file because it is being used by another process."
The problem is in Schema.java, method parse(File). This method creates a JsonParser for the schema file but never closes it, so the parser stays open together with the FileInputStream created by it. Closing the parser fixes the problem. I believe the same should be done for the other types of inputs as the json parsers do use more resources that should be freed. So I propose to close the parser in the parse(JsonParser) method. I will attach the patch.
This is almost a blocker for our project and I would really appreciate if we can have this resolved for 1.8. Please let me know if that's possible and whether I should go ahead with merging the change myself (it's my first contribution here).