[
https://issues.jboss.org/browse/DROOLS-450?page=com.atlassian.jira.plugin...
]
Maxime Falaize commented on DROOLS-450:
---------------------------------------
Hi Michael,
I think the problem is not the locale of the XLS file but the locale of the JRE. The
DataFormatter is created with no relation to the xls workbook. I tested to reproduce the
error with a different configuration in excel (settings to english locale) and the problem
is still here. However, when I set the JRE default locale to English when I start my app
(with Locale.setDefault(Locale.ENGLISH)), it works.
I am on a French Windows 7 (so french JRE). If you set your JRE Locale to FRENCH I think
you could reproduce the error.
Maybe we can force the locale of the DateFormatter to English only for the numbers ? It
would reduce the possibility of regressions.
Cannot use decimal formatters for integers in an excel decision
table
---------------------------------------------------------------------
Key: DROOLS-450
URL:
https://issues.jboss.org/browse/DROOLS-450
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 6.0.1.Final
Reporter: Maxime Falaize
Assignee: Mark Proctor
Priority: Minor
Attachments: issue_example.png
When I use decimal formatter in an excel action column for numbers that are in fact
integers, I am getting this exception :
{noformat}
Exception in thread "main" java.lang.RuntimeException: Error while creating
KieBase[Message [id=1, level=ERROR, path=com/sample/my_decision_table.xls, line=5,
column=0
text=Rule Compilation error The method setParameter(double) in the type MyObject is
not applicable for the arguments (int, int)]]
at
org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:260)
at
org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:400)
at
org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:375)
{noformat}
Actually, the system uses the format number "1,00000" (with comma in french)
instead of "1.00000" like it should use.
This is causing by the line 174 in org.drools.decisiontable.parser.xls.ExcelParser :
{code:java}
if ( num - Math.round( num ) != 0 )
{code}
I don't understand why we use the formatted value when this test is not passed.
I think the end users should have the possibility to keep the same formatter for the same
column, with integers or not.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira