Uploaded image for project: 'Red Hat Decision Manager'
  1. Red Hat Decision Manager
  2. RHDM-462

Empty "Validation errors" popup in Decision/Business Central

XMLWordPrintable

    • CR1
    • Hide
      • If you test with BRMS 6.4.x on EAP 6, comment out filter-spec as suggested in "Description"
      • Access to decision-central
      • Create a project
      • Upload a Spreadsheet (attached 8000rows-spreadsheet.xls) to make the project heavy. Please ignore Indexing error.
      • Create a DRL with the below content and save.
        rule "hello"
          when
            String()
          then
            System.out.println("Hello");
        end
        
      • Click "Validate" for the DRL 5 or 6 times quickly
      • You will see an empty "Validation errors" popup. If not, try again.
      • After you see it some times, you can reproduce the issue even with one click.
      • You may also reproduce the issue by clicking "Validate" for the Spreadsheet. (In this case, you don't need to click very quickly)
      Show
      If you test with BRMS 6.4.x on EAP 6, comment out filter-spec as suggested in "Description" Access to decision-central Create a project Upload a Spreadsheet (attached 8000rows-spreadsheet.xls) to make the project heavy. Please ignore Indexing error. Create a DRL with the below content and save. rule "hello" when String() then System.out.println("Hello"); end Click "Validate" for the DRL 5 or 6 times quickly You will see an empty "Validation errors" popup. If not, try again. After you see it some times, you can reproduce the issue even with one click. You may also reproduce the issue by clicking "Validate" for the Spreadsheet. (In this case, you don't need to click very quickly)

      When you quickly press "Validate" button multiple times for DRL or Decision table, sometimes an empty "Validation errors" dialog pops up (See attached empty-validation-error.png). After some tries, you will see the empty "Validation errors" more constantly even with one click.

      Conditions to reproduce are:

      • The project (rule assets) is heavy to some extent
      • The asset where you press "Validate" can be a small DRL. If the asset is large (e.g. spreadsheet), it's easier to reproduce (you don't need to click very quickly).
      • Reproducible with BRMS 6.4.x and RHDM 7.0.0. But not reproducible with BRMS 6.3.x.

      See more details in "Steps to Reproduce"

      You will see 3 kinds of errors. Below are errors of RHDM 7.0.0:

      15:10:55,231 ERROR [org.kie.workbench.common.services.backend.builder.core.Builder] (default task-52) null: java.lang.NullPointerException
      	at org.drools.core.rule.JavaDialectRuntimeData.removeRule(JavaDialectRuntimeData.java:382)
      	at org.drools.core.rule.DialectRuntimeRegistry.removeRule(DialectRuntimeRegistry.java:90)
      	at org.drools.core.definitions.impl.KnowledgePackageImpl.removeRule(KnowledgePackageImpl.java:512)
      	at org.drools.core.definitions.impl.KnowledgePackageImpl.removeRulesGeneratedFromResource(KnowledgePackageImpl.java:726)
      	at org.drools.core.definitions.impl.KnowledgePackageImpl.removeObjectsGeneratedFromResource(KnowledgePackageImpl.java:681)
      	at org.drools.compiler.compiler.PackageRegistry.removeObjectsGeneratedFromResource(PackageRegistry.java:113)
      	at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.removeObjectsGeneratedFromResource(KnowledgeBuilderImpl.java:2238)
      	at org.drools.compiler.kie.builder.impl.KieBuilderSetImpl.buildChanges(KieBuilderSetImpl.java:137)
      	at org.drools.compiler.kie.builder.impl.KieBuilderSetImpl.build(KieBuilderSetImpl.java:95)
      	at org.kie.workbench.common.services.backend.builder.core.Builder.buildIncrementally(Builder.java:529)
      	at org.kie.workbench.common.services.backend.builder.core.Builder.addResource(Builder.java:358)
      	at org.kie.workbench.common.services.backend.builder.core.Builder.updateResource(Builder.java:415)
      	at org.kie.workbench.common.services.backend.validation.asset.ValidatorBuildService.doValidation(ValidatorBuildService.java:136)
      	at org.kie.workbench.common.services.backend.validation.asset.ValidatorBuildService.validate(ValidatorBuildService.java:74)
      	at org.kie.workbench.common.services.backend.validation.asset.ValidatorBuildService$Proxy$_$$_WeldClientProxy.validate(Unknown Source)
      	at org.kie.workbench.common.services.backend.validation.asset.DefaultGenericKieValidator.validate(DefaultGenericKieValidator.java:47)
      	at org.kie.workbench.common.services.backend.validation.asset.DefaultGenericKieValidator$Proxy$_$$_WeldClientProxy.validate(Unknown Source)
      	at org.drools.workbench.screens.drltext.backend.server.DRLTextEditorServiceImpl.validate(DRLTextEditorServiceImpl.java:258)
      	at org.drools.workbench.screens.drltext.backend.server.DRLTextEditorServiceImpl.validate(DRLTextEditorServiceImpl.java:60)
      	at org.drools.workbench.screens.drltext.backend.server.DRLTextEditorServiceImpl$Proxy$_$$_WeldClientProxy.validate(Unknown Source)
      ...
      
      15:12:06,375 ERROR [org.kie.workbench.common.services.backend.builder.core.Builder] (default task-63) null: java.lang.NullPointerException
      	at org.drools.compiler.rule.builder.dialect.java.JavaDialect.compileAll(JavaDialect.java:430)
      	at org.drools.compiler.compiler.DialectCompiletimeRegistry.compileAll(DialectCompiletimeRegistry.java:61)
      	at org.drools.compiler.compiler.PackageRegistry.compileAll(PackageRegistry.java:109)
      	at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.compileAll(KnowledgeBuilderImpl.java:1548)
      	at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.wireAllRules(KnowledgeBuilderImpl.java:1060)
      	at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.buildRules(KnowledgeBuilderImpl.java:2634)
      	at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.buildPackages(KnowledgeBuilderImpl.java:2565)
      	at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.buildPackages(CompositeKnowledgeBuilderImpl.java:109)
      	at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:99)
      	at org.drools.compiler.kie.builder.impl.KieBuilderSetImpl.buildChanges(KieBuilderSetImpl.java:152)
      	at org.drools.compiler.kie.builder.impl.KieBuilderSetImpl.build(KieBuilderSetImpl.java:95)
      	at org.kie.workbench.common.services.backend.builder.core.Builder.buildIncrementally(Builder.java:529)
      	at org.kie.workbench.common.services.backend.builder.core.Builder.addResource(Builder.java:358)
      	at org.kie.workbench.common.services.backend.builder.core.Builder.updateResource(Builder.java:415)
      	at org.kie.workbench.common.services.backend.validation.asset.ValidatorBuildService.doValidation(ValidatorBuildService.java:136)
      	at org.kie.workbench.common.services.backend.validation.asset.ValidatorBuildService.validate(ValidatorBuildService.java:74)
      	at org.kie.workbench.common.services.backend.validation.asset.ValidatorBuildService$Proxy$_$$_WeldClientProxy.validate(Unknown Source)
      	at org.kie.workbench.common.services.backend.validation.asset.DefaultGenericKieValidator.validate(DefaultGenericKieValidator.java:47)
      	at org.kie.workbench.common.services.backend.validation.asset.DefaultGenericKieValidator$Proxy$_$$_WeldClientProxy.validate(Unknown Source)
      ...
      
      15:12:06,742 ERROR [org.kie.workbench.common.services.backend.builder.core.Builder] (default task-64) null: java.lang.NullPointerException
      	at org.drools.compiler.kie.builder.impl.KieBuilderSetImpl.findResourcesWithErrors(KieBuilderSetImpl.java:105)
      	at org.drools.compiler.kie.builder.impl.KieBuilderSetImpl.registerInitialErrors(KieBuilderSetImpl.java:69)
      	at org.drools.compiler.kie.builder.impl.KieBuilderSetImpl.<init>(KieBuilderSetImpl.java:59)
      	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.createFileSet(KieBuilderImpl.java:861)
      	at org.kie.workbench.common.services.backend.builder.core.Builder.buildIncrementally(Builder.java:529)
      	at org.kie.workbench.common.services.backend.builder.core.Builder.addResource(Builder.java:358)
      	at org.kie.workbench.common.services.backend.builder.core.Builder.updateResource(Builder.java:415)
      	at org.kie.workbench.common.services.backend.validation.asset.ValidatorBuildService.doValidation(ValidatorBuildService.java:136)
      	at org.kie.workbench.common.services.backend.validation.asset.ValidatorBuildService.validate(ValidatorBuildService.java:74)
      	at org.kie.workbench.common.services.backend.validation.asset.ValidatorBuildService$Proxy$_$$_WeldClientProxy.validate(Unknown Source)
      	at org.kie.workbench.common.services.backend.validation.asset.DefaultGenericKieValidator.validate(DefaultGenericKieValidator.java:47)
      	at org.kie.workbench.common.services.backend.validation.asset.DefaultGenericKieValidator$Proxy$_$$_WeldClientProxy.validate(Unknown Source)
      	at org.drools.workbench.screens.drltext.backend.server.DRLTextEditorServiceImpl.validate(DRLTextEditorServiceImpl.java:258)
      	at org.drools.workbench.screens.drltext.backend.server.DRLTextEditorServiceImpl.validate(DRLTextEditorServiceImpl.java:60)
      	at org.drools.workbench.screens.drltext.backend.server.DRLTextEditorServiceImpl$Proxy$_$$_WeldClientProxy.validate(Unknown Source)
      ...
      

      After you hit the 3rd error (KieBuilderSetImpl.findResourcesWithErrors()), this issue seems to become constant. (internal KnowledgeBuilderError objects get broken?)

      NOTE: If you run BRMS on EAP 6, you have to comment out filter-spec in logger in standalone.xml. If you don't, the error stacktrace would not be logged.

              <subsystem xmlns="urn:jboss:domain:logging:1.5">
                  <console-handler name="CONSOLE">
                      <level name="INFO"/>
                      <!-- <filter-spec value="not(match(&quot;HQ222190&quot;))"/> -->
                      <formatter>
                          <named-formatter name="COLOR-PATTERN"/>
                      </formatter>
                  </console-handler>
                  <periodic-rotating-file-handler name="FILE" autoflush="true">
                      <!-- <filter-spec value="not(match(&quot;HQ222190&quot;))"/> -->
                      <formatter>
      

            trikkola Toni Rikkola
            rhn-support-tkobayas Toshiya Kobayashi
            Barbora Kapustova Barbora Kapustova
            Barbora Kapustova Barbora Kapustova
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: