Bug 1310261

Summary: Kie-scanner fails to update kiebase if a modified rule makes reference to a global defined in a .gdrl file.
Product: [Retired] JBoss BRMS Platform 6 Reporter: David Murphy <dmurphy>
Component: BREAssignee: Mario Fusco <mfusco>
Status: CLOSED EOL QA Contact: Jiri Petrlik <jpetrlik>
Severity: high Docs Contact:
Priority: high    
Version: 6.2.0CC: jpetrlik
Target Milestone: DR2   
Target Release: 6.3.0   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1310685 1310884 (view as bug list) Environment:
Last Closed: 2020-03-27 19:02:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1310685, 1310884    
Attachments:
Description Flags
Reproducer none

Description David Murphy 2016-02-19 22:15:56 UTC
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:

Comment 2 David Murphy 2016-02-19 22:24:07 UTC
Created attachment 1128677 [details]
Reproducer

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

Comment 4 Jiri Petrlik 2016-03-04 10:06:21 UTC
Verified using BxMS 6.3.0.DR2 and attached reproducer.