You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "sdhalex (Jira)" <ji...@apache.org> on 2019/12/21 09:39:00 UTC

[jira] [Commented] (SOLR-8876) Morphlines fails with "No command builder registered for ..." when using Java 9 due to morphline "importCommands" config option attempting to resolve classname globs

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

sdhalex commented on SOLR-8876:
-------------------------------

Excuse me,  has this bug been fixed in the newest version?  Or need we still do the same workaround to avoid this bug now ? Thx. [~hossman][~uschindler]






> Morphlines fails with "No command builder registered for ..." when using Java 9 due to morphline "importCommands" config option attempting to resolve classname globs
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-8876
>                 URL: https://issues.apache.org/jira/browse/SOLR-8876
>             Project: Solr
>          Issue Type: Bug
>          Components: contrib - MapReduce, contrib - morphlines-cell, contrib - morphlines-core
>            Reporter: Uwe Schindler
>            Assignee: Chris M. Hostetter
>            Priority: Major
>              Labels: Java9
>             Fix For: 6.5, 7.0
>
>         Attachments: SOLR-8876.patch
>
>
> When running Solr in java9, and using the morphlines contrib(s) users may encounter vague errors such as...
> {noformat}
> No command builder registered for COMMAND_NAME
> {noformat}
> This error comes directly from the morphlines code, and relates to the use of wildcards in the {{importCommands}} declaration of of morphlines {{\*.conf}} files used -- for example...
> {noformat}
> importCommands : ["org.kitesdk.**", "org.apache.solr.**"]
> {noformat}
> Using wildcards like {{\*}} and {{\*\*}} in morphline's {{importCommands}} config options do not work in java9 due to changes in the underlying JVM classloader.
> This issue is tracked up stream in: https://github.com/kite-sdk/kite/issues/469
> ----
> *WORK AROUND*
> The workaround is to only use fully qualified command class names in {{importCommands}} declaration, one for each distinct command used in that {{conf}} file.
> Example:
> {noformat}
> # Old config, does not work in java9
> # importCommands : ["org.kitesdk.**", "org.apache.solr.**"]
> # replaced with...
> # using globs (foo.bar.* or foo.bar.**) will not work in Java9 due to classpath scanning limitations
> # so we enumarate every command (builder) we know this config uses below. (see SOLR-8876)
> importCommands : ["org.kitesdk.morphline.stdlib.LogDebugBuilder",
>                   "org.apache.solr.morphlines.solr.SanitizeUnknownSolrFieldsBuilder",
>                   "org.apache.solr.morphlines.solr.LoadSolrBuilder"]
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org