Bug 1310261 - Kie-scanner fails to update kiebase if a modified rule makes reference to a global defined in a .gdrl file.
Summary: Kie-scanner fails to update kiebase if a modified rule makes reference to a g...
Keywords:
Status: CLOSED EOL
Alias: None
Product: JBoss BRMS Platform 6
Classification: Retired
Component: BRE
Version: 6.2.0
Hardware: x86_64
OS: Unspecified
high
high
Target Milestone: DR2
: 6.3.0
Assignee: Mario Fusco
QA Contact: Jiri Petrlik
URL:
Whiteboard:
Depends On:
Blocks: 1310685 1310884
TreeView+ depends on / blocked
 
Reported: 2016-02-19 22:15 UTC by David Murphy
Modified: 2020-03-27 19:02 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1310685 1310884 (view as bug list)
Environment:
Last Closed: 2020-03-27 19:02:52 UTC
Type: Bug


Attachments (Terms of Use)
Reproducer (1.72 KB, application/octet-stream)
2016-02-19 22:24 UTC, David Murphy
no flags Details

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.


Note You need to log in before you can comment on or make changes to this bug.