I'll inform if the error still remains.
Need to test with big data.
@Data and @EqualsAndHashCode annotation is lombok library to create setter
and getter while compile.
2012/1/20 Michael Anstis <michael.anstis(a)gmail.com>
Does your problem remain?
The DRL and Java code appear fine.
If you are still having problems, please explain your entire process to
replicate the problem: from authoring in Guvnor, to creating a
KnowledgeBase, Session and calling fireAllRules. Can you please also advise
if the problem remains if you don't include the @Data and
@EqualsAndHashCode annotations on your bean (not knowing what they do, or
how they might affect drools-expert, it is worth removing them to try and
isolate the cause of your problem).
With kind regards,
Mike
2012/1/19 mujoko mujoko <mujoko.mujoko(a)gmail.com>
> Hi
>
>
>
> Here is my CDR class
>
> package com.rbtsb.tm.meter.model;
>
> import java.text.DateFormat;
> import java.text.ParseException;
> import java.text.SimpleDateFormat;
> import java.util.Date;
>
> import javax.persistence.Transient;
>
> import lombok.Data;
> import lombok.EqualsAndHashCode;
>
> import org.apache.log4j.Logger;
>
> /**
> * This Class is the same as CDRRepository with additional 2 attribute,
> and
> * created for Rule Purpose.
> *
> * @author akhfa
> */
> @Data
> @EqualsAndHashCode(callSuper = false)
> public class CDR implements CSVData {
>
> /**
> * log Injected.
> */
> private static final Logger LOG = Logger.getLogger(CDR.class);
>
> /**
> * nxxSrvUsageCode.
> */
> private String nxxSrvUsageCode;
> /**
> * aNumber.
> */
> private String aNumber;
> /**
> * bNumber.
> */
> private String bNumber;
> /**
> * cNumber.
> */
> private String cNumber;
> /**
> * stdTollUsageDate.
> */
> private String stdTollUsageDate;
>
> /** this is helper for stdTollUsage date with format 'yyyymmdd'. */
> private Date usageDate;
>
> /** getter for usageDate, for ruleEngine purpose. */
> public Date getUsageDate() {
> // txt format 'yyyymmdd'
> String strDate = this.stdTollUsageDate;
> DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
> try {
> this.usageDate = formatter.parse(strDate);
> } catch (ParseException pe) {
> LOG.error(pe.getMessage());
> }
> return this.usageDate;
> }
>
> /**
> * stdTollStartTime.
> */
> private String stdTollStartTime;
> /**
> * tollRatedFullAmount.
> */
> private String tollRatedFullAmount;
> /**
> * tollRatedChargedAmount.
> */
> private String tollRatedChargedAmount;
> /**
> * tollSurchargeAmount.
> */
> private String tollSurchargeAmount;
> /**
> * stdTollDurationTime.
> */
> private String stdTollDurationTime;
> /**
> * geogLocName.
> */
> private String geogLocName;
> /**
> * callClassCode.
> */
> private String callClassCode;
> /**
> * callTypeCode.
> */
> private String callTypeCode;
> /**
> * billingChargeCode.
> */
> private String billingChargeCode;
> /**
> * billingClassCode.
> */
> private String billingClassCode;
> /**
> * tlDiscountCode.
> */
> private String tlDiscountCode;
> /**
> * remarksA.
> */
> private String remarksA;
> /**
> * remarksB.
> */
> private String remarksB;
> /**
> * rateBandCode.
> */
> private String rateBandCode;
> /**
> * emergenSpareOlnosIndicator.
> */
> private String emergenSpareOlnosIndicator;
> /**
> * ttmc.
> */
> private String ttmc;
> /**
> * mobileAlphaCode.
> */
> private String mobileAlphaCode;
> /**
> * customerProfile
> */
> private CustomerProfile customerProfile;
>
> private String tag = "0";
>
> /**
> * TosDatCode List
> */
> // private List<TosDatCode> tosDatCodeList = null;
>
> /** Boolean field for rule purpose. */
> private Boolean isDrop = false;
>
> /** Boolean field for rule purpose. */
> // private Boolean isTag = false;
>
> /** For rule purpose, describe reason why CDR is dropped. */
> private String dropReason;
>
> /** For rule purpose, ProductTagging. */
> private String productName;
>
> /** For rule purpose, ProductTagging. */
> private String specialIndicator;
>
> /** For rule purpose, ProductTagging. */
>
> private String productRuleName;
>
> public boolean isDrop() {
> return isDrop;
> }
>
> }
>
> On Wed, Jan 18, 2012 at 7:57 PM, Wolfgang Laun <wolfgang.laun(a)gmail.com>wrote:
>
>> Please show field and getter declarations in class CDR
>> -W
>>
>> On 18/01/2012, mujoko mujoko <mujoko.mujoko(a)gmail.com> wrote:
>> > For your info, for the same rules. It's not always happen, the error
>> some
>> > times coming.
>> > For me the rule is fine (I used guvnor)
>> > Here is the rule
>> >
>> > import com.rbtsb.tm.meter.model.CDR;
>> > import org.apache.log4j.Logger;
>> >
>> > global Logger log;
>> >
>> > rule "ProductTag-FixedSMS"
>> >
>> > when
>> > $cdr : CDR(callClassCode == "F1" || callClassCode ==
"F2" )
>> > then
>> > $cdr.setProductName("fixedsms");
>> > end
>> >
>> >
>> >
>> > 2012/1/18 Michael Anstis <michael.anstis(a)gmail.com>
>> >
>> >> You're going to give a little more information, such as the DRL
you're
>> >> unable to compile.
>> >>
>> >> 2012/1/18 mujoko mujoko <mujoko.mujoko(a)gmail.com>
>> >>
>> >>> Hi Drools Users,
>> >>>
>> >>> I'm new member, Mujoko.
>> >>> I got issue regarding my rules. Several times got exception when
>> trying
>> >>> to
>> >>> create KnowledgeSession. I used drools-core 5.3.0.Final and
>> >>> drools-compiler 5.3.0.Final.
>> >>>
>> >>> java.lang.ArrayIndexOutOfBoundsException: -1
>> >>> at org.mvel2.asm.Frame.merge(Frame.java:1373)
>> >>> at org.mvel2.asm.Frame.merge(Frame.java:1350)
>> >>> at
>> org.mvel2.asm.MethodWriter.visitMaxs(MethodWriter.java:1282)
>> >>> at
>> >>>
>> >>>
>>
org.drools.rule.builder.dialect.asm.ClassGenerator$MethodDescr.write(ClassGenerator.java:480)
>> >>> at
>> >>>
>> >>>
>>
org.drools.rule.builder.dialect.asm.ClassGenerator.generateBytecode(ClassGenerator.java:50)
>> >>> at
>> >>>
>> >>>
>>
org.drools.rule.builder.dialect.asm.ASMEvalBuilder.createEvalBytecode(ASMEvalBuilder.java:63)
>> >>> at
>> >>>
>> >>>
>>
org.drools.rule.builder.dialect.asm.AbstractASMEvalBuilder.build(AbstractASMEvalBuilder.java:49)
>> >>> at
>> >>>
>> >>>
>>
org.drools.rule.builder.dialect.asm.AbstractASMEvalBuilder.build(AbstractASMEvalBuilder.java:15)
>> >>> at
>> >>>
>> >>>
>> org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:65)
>> >>> at
>> org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:80)
>> >>> at
>> >>>
org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2289)
>> >>> at
>> >>>
>> org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:822)
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Mujoko
>> >>>
http://www.linkedin.com/in/mujoko
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> rules-users mailing list
>> >>> rules-users(a)lists.jboss.org
>> >>>
https://lists.jboss.org/mailman/listinfo/rules-users
>> >>>
>> >>>
>> >>
>> >> _______________________________________________
>> >> rules-users mailing list
>> >> rules-users(a)lists.jboss.org
>> >>
https://lists.jboss.org/mailman/listinfo/rules-users
>> >>
>> >>
>> >
>> >
>> > --
>> > Mujoko
>> >
http://www.linkedin.com/in/mujoko
>> >
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
>
> --
> Mujoko
>
http://www.linkedin.com/in/mujoko
>
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users