Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Per @ewilson-radblue:
Addresses #464 (I suppose creating that issue wasn't necessary).
The problem was when using fields specified in an IngestFormatOptionProvider from a plugin. In AbstractIngestCommandLineDriver, it tries to parse the command on line 108 but does not call IngestFormatOptionProvider's applyOptions() method until it calls getPluginProviders() on line 141. It would try to reparse the command on line 162 with the additional options, but the failed parse on line 108 throws an exception and never gets to that line. Also, if the 'f' flag is not specified, the custom options are never added at all.
The fix is to set the parameter 'stopAtNonOption' to 'true' for CommandLineParser.parse() so that it doesn't throw an exception on an unrecognized parameter. This allows it to pull out the 'f' flag value and apply the flags for the appropriate plugins. Also, moved the application of the plugins' custom parameters to apply even in cases where the 'f' flag is not specified.