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

Patrick Linehan commented on AVRO-697:
--------------------------------------

Shoot.  Just noticed that javac in Ant has the "-Werror" flag enabled, so I 
won't be able to directly access the signal-related code in sun.misc.  This is 
actually a completely reasonable setting for javac, but makes this particular 
bug a bit trickier.

The workaround I've used for this previously is to use basic reflection and an 
InvocationHandler to bypass javac's static checks.  If I coded this up, would 
it get accepted?

> Install SIGPIPE handler in the Avro tools main method.
> ------------------------------------------------------
>
>                 Key: AVRO-697
>                 URL: https://issues.apache.org/jira/browse/AVRO-697
>             Project: Avro
>          Issue Type: Improvement
>          Components: java
>            Reporter: Patrick Linehan
>
> The following command should complete quickly, no matter how many records 
> "myfile.avro" contains:
>   java -jar avro-tools.jar tojson myfile.avro | head
> However, because the tool JAR's main method does not install a SIGPIPE 
> handler, this command can be quite slow for large files.
> Suggested fix is to install a handler which calls "System.exit(128 + 
> signal.getNumber())" in response to SIGPIPE.  Typically the signal number 
> ("getNumber") is 13, but no need to hard code it.
> Potential issues:
> * Tests which invoke Main.main() will necessarily force the signal handler to 
> be installed.  This may be undesirable, as the entire test JVM will be 
> "infected" with the handler.  Workarounds exist.  Does not bother me, 
> personally, however.
> * Installing signal handlers generates compile-time warnings, if I'm not 
> mistaken.  Workarounds exist.  Does not bother me, personally, however.
> If this suggestion sounds reasonable, I'll post a patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to