[ 
https://issues.apache.org/jira/browse/AVRO-1036?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13214888#comment-13214888
 ] 

George Fletcher commented on AVRO-1036:
---------------------------------------

So the bug is that findFile() returns and InputStream and the Idl class 
constructor that takes an InputStream is created by the javacc processing of 
the Idl.jj file. This Idl constructor does not set the inputDir field of the 
Idl class and hence the Idl object created from the stream returned by 
findFile() has lost the sourceDirectory. This causes an import statement 
processed by this Idl object to fail, because the file can not be found as the 
"sourceDirectory is "lost".

I'm not very happy with my current solution as it seems a little "hacky". 
Suggestions appreciated.

Current solution...

1. Add a setSrcDir() method to the Idl class (added to Idl.jj)
2. Modify the ImportIdl() method to first create the Idl instance from the 
InputStream returned by findFile() and then call the setSrcDir() setter 
chaining the current inputDir into the created Idl instance.
                
> IDL processing fails with multi-level nested imports
> ----------------------------------------------------
>
>                 Key: AVRO-1036
>                 URL: https://issues.apache.org/jira/browse/AVRO-1036
>             Project: Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.6.2
>            Reporter: George Fletcher
>             Fix For: 1.6.3
>
>
> The change to support finding IDL related files on the classpath in addition 
> to the maven-plugin defined directory caused the context of the 
> "sourceDirectory" to be lost when the InputStream return by findFile() is 
> used to create a new Idl instance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to