Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-1449

Confusing error messages in certain combination of invalid type declerations/imports

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Obsolete
    • Icon: Minor Minor
    • None
    • 6.5.0.Final
    • build, tools
    • None
    • NEW
    • NEW

      The following drools will make the error handling flip:

      Unable to find source-code formatter for language: drools. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
      package dialogue;
      
      import java.util.Unkown
      
      declare DefaultReply
      	symbol:Unkown
      end
      
      

      Will result in:

      [ERROR] Failed to execute goal org.kie:kie-maven-plugin:6.5.0.Final:build (default-build) on project salve_drools: Execution default-build of goal org.kie:kie-maven-plugin:6.5.0.Final:build failed: A required class was missing while executing org.kie:kie-maven-plugin:6.5.0.Final:build: Ljava/util/Unkown;
      [ERROR] -----------------------------------------------------
      [ERROR] realm = extension>org.kie:kie-maven-plugin:6.5.0.Final
      [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
      [ERROR] urls[0] = file:/home/username/.m2/repository/org/kie/kie-maven-plugin/6.5.0.Final/kie-maven-plugin-6.5.0.Final.jar
      [ERROR] urls[1] = file:/home/username/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
      [ERROR] urls[2] = file:/home/username/.m2/repository/org/eclipse/aether/aether-util/1.0.0.v20140518/aether-util-1.0.0.v20140518.jar
      [ERROR] urls[3] = file:/home/username/.m2/repository/javax/enterprise/cdi-api/1.0-SP4/cdi-api-1.0-SP4.jar
      [ERROR] urls[4] = file:/home/username/.m2/repository/org/jboss/spec/javax/interceptor/jboss-interceptors-api_1.1_spec/1.0.1.Final/jboss-interceptors-api_1.1_spec-1.0.1.Final.jar
      [ERROR] urls[5] = file:/home/username/.m2/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar
      [ERROR] urls[6] = file:/home/username/.m2/repository/org/sonatype/sisu/sisu-guice/3.2.3/sisu-guice-3.2.3-no_aop.jar
      [ERROR] urls[7] = file:/home/username/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
      [ERROR] urls[8] = file:/home/username/.m2/repository/com/google/guava/guava/13.0.1/guava-13.0.1.jar
      [ERROR] urls[9] = file:/home/username/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.jar
      [ERROR] urls[10] = file:/home/username/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
      [ERROR] urls[11] = file:/home/username/.m2/repository/org/sonatype/plexus/plexus-cipher/1.7/plexus-cipher-1.7.jar
      [ERROR] urls[12] = file:/home/username/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
      [ERROR] urls[13] = file:/home/username/.m2/repository/org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.jar
      [ERROR] urls[14] = file:/home/username/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar
      [ERROR] urls[15] = file:/home/username/.m2/repository/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar
      [ERROR] urls[16] = file:/home/username/.m2/repository/com/google/collections/google-collections/1.0/google-collections-1.0.jar
      [ERROR] urls[17] = file:/home/username/.m2/repository/junit/junit/4.12/junit-4.12.jar
      [ERROR] urls[18] = file:/home/username/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
      [ERROR] urls[19] = file:/home/username/.m2/repository/com/google/protobuf/protobuf-java/2.6.0/protobuf-java-2.6.0.jar
      [ERROR] urls[20] = file:/home/username/.m2/repository/org/drools/drools-core/6.5.0.Final/drools-core-6.5.0.Final.jar
      [ERROR] urls[21] = file:/home/username/.m2/repository/org/mvel/mvel2/2.2.8.Final/mvel2-2.2.8.Final.jar
      [ERROR] urls[22] = file:/home/username/.m2/repository/commons-codec/commons-codec/1.4/commons-codec-1.4.jar
      [ERROR] urls[23] = file:/home/username/.m2/repository/org/drools/drools-compiler/6.5.0.Final/drools-compiler-6.5.0.Final.jar
      [ERROR] urls[24] = file:/home/username/.m2/repository/org/antlr/antlr-runtime/3.5/antlr-runtime-3.5.jar
      [ERROR] urls[25] = file:/home/username/.m2/repository/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2.jar
      [ERROR] urls[26] = file:/home/username/.m2/repository/com/thoughtworks/xstream/xstream/1.4.9/xstream-1.4.9.jar
      [ERROR] urls[27] = file:/home/username/.m2/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar
      [ERROR] urls[28] = file:/home/username/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar
      [ERROR] urls[29] = file:/home/username/.m2/repository/org/kie/kie-api/6.5.0.Final/kie-api-6.5.0.Final.jar
      [ERROR] urls[30] = file:/home/username/.m2/repository/org/kie/kie-internal/6.5.0.Final/kie-internal-6.5.0.Final.jar
      [ERROR] urls[31] = file:/home/username/.m2/repository/org/drools/drools-decisiontables/6.5.0.Final/drools-decisiontables-6.5.0.Final.jar
      [ERROR] urls[32] = file:/home/username/.m2/repository/org/apache/poi/poi-ooxml/3.13/poi-ooxml-3.13.jar
      [ERROR] urls[33] = file:/home/username/.m2/repository/org/apache/poi/poi-ooxml-schemas/3.13/poi-ooxml-schemas-3.13.jar
      [ERROR] urls[34] = file:/home/username/.m2/repository/org/apache/xmlbeans/xmlbeans/2.3.0/xmlbeans-2.3.0.jar
      [ERROR] urls[35] = file:/home/username/.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar
      [ERROR] urls[36] = file:/home/username/.m2/repository/org/apache/poi/poi/3.13/poi-3.13.jar
      [ERROR] urls[37] = file:/home/username/.m2/repository/org/drools/drools-templates/6.5.0.Final/drools-templates-6.5.0.Final.jar
      [ERROR] urls[38] = file:/home/username/.m2/repository/org/drools/drools-scorecards/6.5.0.Final/drools-scorecards-6.5.0.Final.jar
      [ERROR] urls[39] = file:/home/username/.m2/repository/org/drools/drools-pmml/6.5.0.Final/drools-pmml-6.5.0.Final.jar
      [ERROR] urls[40] = file:/home/username/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.11/jaxb-impl-2.2.11.jar
      [ERROR] urls[41] = file:/home/username/.m2/repository/com/sun/xml/bind/jaxb-core/2.2.11/jaxb-core-2.2.11.jar
      [ERROR] urls[42] = file:/home/username/.m2/repository/org/jbpm/jbpm-bpmn2/6.5.0.Final/jbpm-bpmn2-6.5.0.Final.jar
      [ERROR] urls[43] = file:/home/username/.m2/repository/org/jbpm/jbpm-flow-builder/6.5.0.Final/jbpm-flow-builder-6.5.0.Final.jar
      [ERROR] urls[44] = file:/home/username/.m2/repository/org/jbpm/jbpm-flow/6.5.0.Final/jbpm-flow-6.5.0.Final.jar
      [ERROR] urls[45] = file:/home/username/.m2/repository/joda-time/joda-time/1.6.2/joda-time-1.6.2.jar
      [ERROR] urls[46] = file:/home/username/.m2/repository/org/drools/drools-workbench-models-guided-dtable/6.5.0.Final/drools-workbench-models-guided-dtable-6.5.0.Final.jar
      [ERROR] urls[47] = file:/home/username/.m2/repository/org/drools/drools-workbench-models-datamodel-api/6.5.0.Final/drools-workbench-models-datamodel-api-6.5.0.Final.jar
      [ERROR] urls[48] = file:/home/username/.m2/repository/org/drools/drools-workbench-models-commons/6.5.0.Final/drools-workbench-models-commons-6.5.0.Final.jar
      [ERROR] urls[49] = file:/home/username/.m2/repository/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar
      [ERROR] urls[50] = file:/home/username/.m2/repository/org/drools/drools-workbench-models-guided-template/6.5.0.Final/drools-workbench-models-guided-template-6.5.0.Final.jar
      [ERROR] urls[51] = file:/home/username/.m2/repository/org/drools/drools-workbench-models-guided-scorecard/6.5.0.Final/drools-workbench-models-guided-scorecard-6.5.0.Final.jar
      [ERROR] urls[52] = file:/home/username/.m2/repository/org/slf4j/slf4j-simple/1.7.2/slf4j-simple-1.7.2.jar
      [ERROR] Number of foreign imports: 1
      [ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
      [ERROR]
      [ERROR] -----------------------------------------------------: java.util.Unkown
      [ERROR] -> [Help 1]
      [ERROR]
      [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
      [ERROR] Re-run Maven using the -X switch to enable full debug logging.
      [ERROR]
      [ERROR] For more information about the errors and possible solutions, please read the following articles:
      [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
      [ERROR]
      [ERROR] After correcting the problems, you can resume the build with the command
      [ERROR] mvn <goals> -rf :salve_drools


      If the type decleration does not use the symbol ie:

      package dialogue;
      
      import java.util.Unkown
      
      declare DefaultReply
      	symbol:String
      end
      
      

      the error message becomes a lot better:

      [ERROR] Unable to build KieBaseModel:rules
      Error importing : 'java.util.Unkown'
      [ function parseUtteranceparseUtterance (line:-5): Only a type can be imported. java.util.Unkown resolves to a package
      ]
      Rule Compilation error : [Rule name='Parse raw user utterence into parsed utterance (something we understand)']
      dialogue/Rule_Parse_raw_user_utterence_into_parsed_utterance_$u40$something_we_understand$u41$1360960339.java (2:300) : Only a type can be imported. java.util.Unkown resolves to a package
      dialogue/Rule_Parse_raw_user_utterence_into_parsed_utterance_$u40$something_we_understand$u41$1360960339.java (2:1068) : The import dialogue.ParseUtterance cannot be resolved
      dialogue/Rule_Parse_raw_user_utterence_into_parsed_utterance_$u40$something_we_understand$u41$1360960339.java (8:1848) : The method parseUtterance(PatternDatabase, UnparsedUserUtterance, String) is undefined for the type Rule_Parse_raw_user_utterence_into_parsed_utterance_$u40$something_we_understand$u41$1360960339

      Rule Compilation error : [Rule name='Pick out the first symbol and insert it']
      dialogue/Rule_Pick_out_the_first_symbol_and_insert_it851572034.java (2:300) : Only a type can be imported. java.util.Unkown resolves to a package
      _ [... other rules that fail (not sure if I can show them) .. ]_

      Error importing : 'dialogue.ParseUtterance.parseUtterance'

      [ERROR] Message [id=1, kieBase=rules, level=ERROR, path=model.drl, line=1, column=0
      text=Error importing : 'java.util.Unkown']
      [ERROR] Message [id=2, kieBase=rules, level=ERROR, path=rules.drl, line=-5, column=0
      text=[ function parseUtteranceparseUtterance (line:-5): Only a type can be imported. java.util.Unkown resolves to a package
      ]]
      [ERROR] Message [id=3, kieBase=rules, level=ERROR, path=rules.drl, line=32, column=0
      text=Rule Compilation error Only a type can be imported. java.util.Unkown resolves to a package
      The import dialogue.ParseUtterance cannot be resolved
      The method parseUtterance(PatternDatabase, UnparsedUserUtterance, String) is undefined for the type Rule_Parse_raw_user_utterence_into_parsed_utterance_$u40$something_we_understand$u41$1360960339]
      [ERROR] Message [id=4, kieBase=rules, level=ERROR, path=rules.drl, line=81, column=0
      text=Rule Compilation error Only a type can be imported. java.util.Unkown resolves to a package
      The import dialogue.ParseUtterance cannot be resolved]
      [ERROR] Message [id=5, kieBase=rules, level=ERROR, path=rules.drl, line=7, column=0
      text=Rule Compilation error Only a type can be imported. java.util.Unkown resolves to a package
      The import dialogue.ParseUtterance cannot be resolved
      The constructor DefaultReply(Symbol) is undefined]
      [ERROR] Message [id=6, kieBase=rules, level=ERROR, path=rules.drl, line=90, column=0
      text=Rule Compilation error Only a type can be imported. java.util.Unkown resolves to a package
      The import dialogue.ParseUtterance cannot be resolved]
      [ERROR] Message [id=7, kieBase=rules, level=ERROR, path=rules.drl, line=72, column=0
      text=Rule Compilation error Only a type can be imported. java.util.Unkown resolves to a package
      The import dialogue.ParseUtterance cannot be resolved
      The method randomLiteral(Random) is undefined for the type String]
      [ERROR] Message [id=8, kieBase=rules, level=ERROR, path=rules.drl, line=-1, column=0
      text=Error importing : 'dialogue.ParseUtterance.parseUtterance']


      What I'm missing from the first case is the file name where the linking fails, and the line numbers where Unkown occurs.
      It should also be much more obvious about what symbol can't be found.

      Dumping each jar that is used is not very helpful since most people will use maven. It should dump instead all the maven dependencies.

            Unassigned Unassigned
            superpwnzormegaman Jappie Klooster (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: