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

Travis Woodruff commented on PIG-3988:
--------------------------------------

This patch moves the option parsing members to local variables in the 
constructor, since that's the only place they're used. Since the 
CommandLineParser is no longer static, access by multiple threads is no longer 
an issue.

It also removes use of the OptionBuilder class and configures the Option via 
setters instead.


> PigStorage: CommandLineParser is not thread safe
> ------------------------------------------------
>
>                 Key: PIG-3988
>                 URL: https://issues.apache.org/jira/browse/PIG-3988
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.13.0
>            Reporter: Travis Woodruff
>            Assignee: Travis Woodruff
>            Priority: Minor
>             Fix For: 0.13.0
>
>         Attachments: PIG-3988-1.patch
>
>
> PigStorage uses commons-cli to parse options. The CommandLineParser is stored 
> as a static member. This can cause issues when two threads instantiate 
> PigStorage at the same time, since CommandLineParser stores state in a 
> non-thread-safe way.
> OptionBuilder, used in populateValidOptions(), is also not thread safe, as it 
> stores its state in static members.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to