[
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)