Bug 1325783

Summary: OptaPlanner Kie server: Cannot marshall best solution score
Product: [Retired] JBoss BRMS Platform 6 Reporter: Karel Suta <ksuta>
Component: Kie-ServerAssignee: Geoffrey De Smet <gdesmet>
Status: CLOSED EOL QA Contact: Karel Suta <ksuta>
Severity: high Docs Contact: Tomas 'Sheldon' Radej <tradej>
Priority: high    
Version: 6.3.0CC: etirelli, lpetrovi, tradej
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
The Realtime Decision Server is unable to correctly marshall the score of Business Resource Planner's best solution. The best solution's score is incorrectly unmarshalled—The response contains an empty score or a score with the default value. The affected marshalling formats are JAXB (the functionality is entirely unavailable) and JSON (the only unmarshallable classes are BendableLongScore, BendableBigDecimalScore, and BendableScore). The XSTREAM format is not affected. There is currently no workaround. The Realtime Decision Server is unable to correctly marshall Business Resource Planner's best solution if called immediately, before the solver has had a chance to start. When running more solvers then the thread pool size (defaults to half the number of CPU cores), it can take a while before the solver to start.
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-27 19:37:59 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:
Embargoed:

Description Karel Suta 2016-04-11 08:04:36 UTC
Description of problem:
Kie server is unable to correctly marshall score of OptaPlanner's best solution.
This issue affects mainly JAXB, although there are problems also with JSON.
XSTREAM seems to handle marshalling correctly.
See [1]


Version-Release number of selected component (if applicable):
Kie server 6.3.0.ER2

How reproducible:
Reproducer in PR https://github.com/droolsjbpm/droolsjbpm-integration/pull/422

Steps to Reproduce:
1. Run OptaPlanner integration test in [2] , method testGetBestSolution().
2. Check score value for returned best solution for different marshallings.
3.

Actual results:
Best solution score is incorrectly unmarshalled. Response contains empty score or score with default value.

Expected results:
Best solution score is unmarshalled correctly.

Additional info:

[1] https://issues.jboss.org/browse/PLANNER-565
[2] https://github.com/droolsjbpm/droolsjbpm-integration/blob/master/kie-server-parent/kie-server-tests/kie-server-integ-tests-optaplanner/src/test/java/org/kie/server/integrationtests/optaplanner/OptaplannerIntegrationTest.java

Comment 3 Geoffrey De Smet 2016-04-19 15:13:55 UTC
Yes. It's partially solved, with these PR's:
  https://github.com/droolsjbpm/droolsjbpm-integration/pull/419
  https://github.com/droolsjbpm/droolsjbpm-integration/pull/420
but there's still a (less likely) race condition with those fixes.

There is probably no full fix that doesn't change the API (which we can only do in 7.0). But I 'll get those PR's merged first (but keep ignoring the tests for now).

Comment 4 Karel Suta 2016-04-19 15:23:29 UTC
Geoffrey, I think you are referring to fix for https://bugzilla.redhat.com/show_bug.cgi?id=1325824

This BZ is actually about problem with marshalling of initialized best solution score. See reproducer and commens in PR https://github.com/droolsjbpm/droolsjbpm-integration/pull/422

Comment 5 Geoffrey De Smet 2016-05-09 19:05:08 UTC
I've adjusted the Docs text, because the JSON/JAXB marshalling issues was actually fixed by Maciej, but there is still an race condition when the best solution is returned before the the solver starts.

Comment 6 Karel Suta 2016-05-10 15:57:00 UTC
I have returned there back previous Doc text as marshalling issue is still present in 6.3.
Now Doc text contains informations about both issues.

Comment 7 Geoffrey De Smet 2016-05-10 16:31:21 UTC
+1

Comment 8 Geoffrey De Smet 2016-07-14 11:40:35 UTC
This is fixed for 7.0.