See JBRULES-3064 <https://issues.jboss.org/browse/JBRULES-3064>, dialect
"mvel" flouts generic parameters.

If you omit "<String,Integer>" after "new HashMap" all is well. Of course,
this is another MVEL bug or restriction - who knows.

But don't try to work around this by

then
   if($u.subjectGradeMap == null){
      $u.subjectGradeMap = new HashMap*/*<String,Integer>*/*();
   }

You'll just run into another MVEL bug.

-W



2011/8/28 Neel <[email protected]>

> Hi,
> I'm using drools-5.3.0.Beta1. I've following rule file:
>
> import java.util.*;
>
>
> declare Student
>
>    name : String @key
>
>    subjectGradeMap : HashMap
>
> end
>
>
>
> rule "Subject grade points"
>
> dialect "mvel"
>
> when
>
>    $u : Student()
>
> then
>
>    if($u.subjectGradeMap == null)
>
>    {
>
>       $u.subjectGradeMap = new HashMap<String,Integer>();
>
>    }
>
>    $u.subjectGradeMap["CompSc"] += 100;
>
>    System.out.println("Marks added");
>
> end
>
>
> I get following error while rule compilation:
>
> Unable to Analyse Expression if($u.subjectGradeMap == null);
>
>    {
>
>       $u.subjectGradeMap = new HashMap<String,Integer>();
>
>    };
>
>    $u.subjectGradeMap["CompSc"] += 100;
>
>    System.out.println("Marks added");:
>
> [Error: was expecting type: java.lang.Object; but found type: <Unknown>]
>
> [Near : {... if($u.subjectGradeMap == null) ....}]
>
>              ^
>
> [Line: 1, Column: 1] : [Rule name='Subject grade points']
>
>
> Please let me know if this is correct usage in the above scenario.
>
>
> Thanks,
>
> Neel
>
>
>
> _______________________________________________
> rules-users mailing list
> [email protected]
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to