Pavel Safrata created AVRO-1715:
-----------------------------------

             Summary: Compiling a schema leaves the schema file open
                 Key: AVRO-1715
                 URL: https://issues.apache.org/jira/browse/AVRO-1715
             Project: Avro
          Issue Type: Bug
          Components: java
    Affects Versions: 1.7.7, 1.8.0
            Reporter: Pavel Safrata
             Fix For: 1.8.0


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[] { schemaFile }, 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).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to