The class metadata/Nutch.java public static final String ARG_SEGMENT = "segment" is not used correctly. In some cases Fetcher and ParseSegment it is interpreted as a single segmenet, in others CrawlDb, LinkDb, IndexingJob as an array of segments. Such misunderstanding leads to inconsistency of usage of the parameter.
After a discussion with Sebastian Nagel the proposed solution is to allow the usage of both array and a string in all cases. That gives an opportunity to not introduce the broken changes.
A path is proposed.
*The question left is refactoring, all these five components share the same code(two versions of the same code to be precise). Shouldn't we extract a method and reduce duplicates? *