[jboss-jira] [JBoss JIRA] (JBRULES-3707) ObjectDataCompiler converter does not compile all template rules

Martin Weiler (JIRA) jira-events at lists.jboss.org
Thu Jan 3 07:30:08 EST 2013


    [ https://issues.jboss.org/browse/JBRULES-3707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12743351#comment-12743351 ] 

Martin Weiler commented on JBRULES-3707:
----------------------------------------

Your template (Freight.drl) has only one template column 'pol'. So the template engine stops processing when it finds an empty value for 'pol' (= it is considered as 'tableFinished'). You can confirm that 'PORT_CODE_FROM' column in BRETEST_50000.xlsx has an empty cell at row 1289.

To avoid this kind of confusion, include a column value which always exists. 
                
> ObjectDataCompiler converter does not compile all template rules
> ----------------------------------------------------------------
>
>                 Key: JBRULES-3707
>                 URL: https://issues.jboss.org/browse/JBRULES-3707
>             Project: JBRULES
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: drools-compiler (expert)
>    Affects Versions: 5.3.0.Final
>         Environment: Windows 7 32 bit
> Eclipse version - Juno
> Java version 1.7
>            Reporter: Guy Baharav
>            Assignee: Mark Proctor
>              Labels: Commpiler, Templates
>         Attachments: Pricing.rar
>
>
> When trying to compile a rule template with a datasource of a lot of rows (more than 1000), the compilers only compiles the first 1286 lines in the datasource.
> Here is the code I am using:
> //50,000 classes are created in the collection
> Collection<FRTRule> freights = FilesLoader.GetFreightRules();
> ObjectDataCompiler converter = new ObjectDataCompiler();
> //a very simple rule template is loaded.
> final InputStream templateStream = new Object().getClass().getResourceAsStream( "/Rules/Freight.drl" );
> //only 1286 rules are created in the drl string.
> String drl = converter.compile( freights, templateStream );
> Here is the rules template syntax:
> template header
> pol
> package com.zim.pricing.rules
> import com.zim.PricingPOC.PricingUI.FRTRule;
> template Pricing
> rule "Pricing_@{row.rowNumber}"
> when
>    m : FRTRule(pol == "@{pol}")
> then
>    m.setPol("1");
> end
> end template
> What could the reason be that the compiler only compiles 1286 rules?
> Thanks,
> Guy

--
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


More information about the jboss-jira mailing list