Hide Forgot
+++ This bug was initially created as a clone of Bug #1310261 +++ Description of problem: When converting an .xls file to a GDT, globals defined in the spreadsheet are stored in a .gdrl file in the same package. However, if an update is made to values in the decision table and the project is built/deployed, applications running a kie-scanner will fail to deploy the kiebase with an error like the following: ERROR o.d.c.k.b.impl.KieContainerImpl - Unable to update KieBase: defaultKieBase to release example:scanner-reproducer:1.11 Rule Compilation error : [Rule name='Whatever'] defaultpkg/Rule_Whatever395648274.java (13:477) : list cannot be resolved where 'list' is the global variable defined in the .gdrl file and referenced in the modified rule. This behavior appears to apply to any rule referencing a global defined in a separate file. If the rule changes but the global file does not, the kiebase fails to compile. How reproducible: Always Steps to Reproduce: 1. Create a new Global Variable file in business-central 2. Define a global variable 3. Create a new GDT, Guided Rule, or DRL file 4. Reference the global variable in the rule. 5. Configure a kie-scanner in a client application to load the LATEST version of the project 6. Update the rule (but not the global variable) 7. Increment the version in the projects pom.xml 8. Build/Deploy the project Actual results: ERROR o.d.c.k.b.impl.KieContainerImpl - Unable to update KieBase: defaultKieBase to release example:scanner-reproducer:1.11 Rule Compilation error : [Rule name='Whatever'] defaultpkg/Rule_Whatever395648274.java (13:477) : list cannot be resolved Expected results: No error, kiebase updated with updated rules Additional info: --- Additional comment from JBoss Product and Program Management on 2016-02-19 17:20:18 EST --- Since this issue was entered in Red Hat Bugzilla, the release flag has been set to ? to ensure that it is properly evaluated for this release. --- Additional comment from David Murphy on 2016-02-19 17:24 EST --- Adding a simple reproducer scenario. Steps to reproduce: 1. Import brms-project into brms workbench 2. Build/Deploy the project 3. Run client/src/main/java/example/Client.java 4. When prompted, update reproducerRule in workbench, then increment project version and Build/Deploy again 5. Press ENTER on the console where Client is waiting 6. Observe exception --- Additional comment from Mario Fusco on 2016-02-22 06:12:16 EST --- Fixed by https://github.com/droolsjbpm/drools/commit/b271fc97080fa185d3e1360fc3223823307dc0a9
Fix cherry-picked to 6.3.x branch with https://github.com/droolsjbpm/drools/commit/bd3109437
Verified by running reproducer from Mario's commit.