[jboss-jira] [JBoss JIRA] (DROOLS-2502) Declare role event erase exists class

Alexander Revkov (JIRA) issues at jboss.org
Fri Apr 27 13:22:00 EDT 2018


     [ https://issues.jboss.org/browse/DROOLS-2502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexander Revkov updated DROOLS-2502:
-------------------------------------
    Steps to Reproduce: 
I created a fact POJO in drools workbench.
Example:

{code:java}
public class MyFact1 {
      private java.lang.String name;
       public java.lang.String getName() {
        return name;
      }
      public void setName(java.lang.String name) {
          this.name=name;
      }
}

public class MyFact2 {
      private java.lang.String name;
       public java.lang.String getName() {
        return name;
      }
      public void setName(java.lang.String name) {
          this.name=name;
      }
}
{code}

then i define drl


{code:java}
packadge com.my.rules

rule "MyRule"
when
  MyFact( )
then
  MyFact2 fact2 = new MyFact2();
  fact2.setName("blabla");
  insert(fact2);
end
{code}


This is work fine.
But when i declare my classes as events:

{code:java}
packadge com.my.rules

declare MyFact1
  @role(event)
  @expires(1d)
end

declare MyFact2
  @role(event)
  @expires(1d)
end

rule "MyRule"
when
  MyFact( )
then
  MyFact2 fact2 = new MyFact2();
  fact2.setName("blabla");
  insert(fact2);
end
{code}

I get a UnhandledException: java.lang.NoSuchMethodError: com.my.rules.Fact2.setName(Ljava/lang/String;) in kie server logs.
Please fix it. 

  was:
I created a fact POJO in drools workbench.
Example:

{code:java}
public class MyFact1 {
      private java.lang.String name;
       public java.lang.String getName() {
        return name;
      }
      public void setName(java.lang.String name) {
          this.name=name;
      }
}

public class MyFact2 {
      private java.lang.String name;
       public java.lang.String getName() {
        return name;
      }
      public void setName(java.lang.String name) {
          this.name=name;
      }
}
{code}

then i define drl


{code:java}
packadge com.my.rules

rule "MyRule"
when
  MyFact( )
then
  MyFact2 fact2 = new MyFact2();
  fact2.setName("blabla");
  insert(fact2);
end
{code}


This is work fine.
But when i declare my classes as events:

{code:java}
packadge com.my.rules

declare Fact1
  @role(event)
  @expires(1d)
end

declare Fact2
  @role(event)
  @expires(1d)
end

rule "MyRule"
when
  MyFact( )
then
  MyFact2 fact2 = new MyFact2();
  fact2.setName("blabla");
  insert(fact2);
end
{code}

I get a UnhandledException: java.lang.NoSuchMethodError: com.my.rules.Fact2.setName(Ljava/lang/String;) in kie server logs.
Please fix it. 



> Declare role event erase exists class
> -------------------------------------
>
>                 Key: DROOLS-2502
>                 URL: https://issues.jboss.org/browse/DROOLS-2502
>             Project: Drools
>          Issue Type: Bug
>          Components: kie server
>    Affects Versions: 6.5.0.Final, 7.0.0.Final, 7.1.0.Final, 7.2.0.Final, 7.3.0.Final, 7.4.1.Final, 7.5.0.Final, 7.6.0.Final, 7.7.0.Final
>         Environment: Kie workbench + one kie execution server. Java 8. Statefull session. Stream mode.
>            Reporter: Alexander Revkov
>            Assignee: Mario Fusco
>
> Declare @role(event) rewrite exists class in drools workbench and kie execution server.
> All methods are losts.



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jboss-jira mailing list