[JBoss JIRA] (DROOLS-1445) Mask should reflect properties accessed in other nodes join constraints
by Matteo Mortari (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1445?page=com.atlassian.jira.plugi... ]
Matteo Mortari commented on DROOLS-1445:
----------------------------------------
All the Property Reactive changes are currently here: https://github.com/tarilabs/drools/tree/eo-propreactivedefault
> Mask should reflect properties accessed in other nodes join constraints
> -----------------------------------------------------------------------
>
> Key: DROOLS-1445
> URL: https://issues.jboss.org/browse/DROOLS-1445
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Reporter: Matteo Mortari
> Assignee: Mario Fusco
>
> The following test exhibit a failing and a working test:
> {code:java}
> @Test()
> public void testAbis_NotWorking() {
> // DROOLS-644
> String drl =
> "import " + Person.class.getCanonicalName() + ";\n" +
> "global java.util.List list;\n" +
> "rule R when\n" +
> " $p1 : Person( name == \"Mario\" ) \n" +
> " $p2 : Person( age > $p1.age ) \n" +
> "then\n" +
> " list.add(\"t0\");\n" +
> "end\n" +
> "rule Z when\n" +
> " $p1 : Person( name == \"Mario\" ) \n" +
> "then\n" +
> " modify($p1) { setAge(35); } \n" +
> "end\n"
> ;
>
> // making the default explicit:
> KieSession ksession = new KieHelper(PropertySpecificOption.ALWAYS).addContent(drl, ResourceType.DRL)
> .build()
> .newKieSession();
> ksession.addEventListener(new DebugAgendaEventListener());
> System.out.println(drl);
> ReteDumper.dumpRete(ksession);
> List<String> list = new ArrayList<String>();
> ksession.setGlobal("list", list);
> Person mario = new Person("Mario", 40);
> Person mark = new Person("Mark", 37);
> FactHandle fh_mario = ksession.insert(mario);
> ksession.insert(mark);
> int x = ksession.fireAllRules();
> assertEquals(1, list.size());
> assertEquals("t0", list.get(0));
> }
>
> @Test()
> public void testAbis_Working() {
> // DROOLS-644
> String drl =
> "import " + Person.class.getCanonicalName() + ";\n" +
> "global java.util.List list;\n" +
> "rule R when\n" +
> " $p1 : Person( name == \"Mario\", $a1: age) \n" +
> " $p2 : Person( age > $a1 ) \n" +
> "then\n" +
> " list.add(\"t0\");\n" +
> "end\n" +
> "rule Z when\n" +
> " $p1 : Person( name == \"Mario\" ) \n" +
> "then\n" +
> " modify($p1) { setAge(35); } \n" +
> "end\n"
> ;
> // making the default explicit:
> KieSession ksession = new KieHelper(PropertySpecificOption.ALWAYS).addContent(drl, ResourceType.DRL)
> .build()
> .newKieSession();
>
> System.out.println(drl);
> ReteDumper.dumpRete(ksession);
> List<String> list = new ArrayList<String>();
> ksession.setGlobal("list", list);
> Person mario = new Person("Mario", 40);
> Person mark = new Person("Mark", 37);
> FactHandle fh_mario = ksession.insert(mario);
> ksession.insert(mark);
> int x = ksession.fireAllRules();
> assertEquals(1, list.size());
> assertEquals("t0", list.get(0));
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 2 months
[JBoss JIRA] (DROOLS-1445) Mask should reflect properties accessed in other nodes join constraints
by Matteo Mortari (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1445?page=com.atlassian.jira.plugi... ]
Matteo Mortari edited comment on DROOLS-1445 at 2/20/17 8:12 AM:
-----------------------------------------------------------------
+ additionally, as discussed, similar possibly-connected problem on the test {{org.drools.compiler.integrationtests.AccumulateTest.testAccFunctionOpaqueJoins}}
When running as original and PropertyReactivity == ALWAYS, the test FAIL and the rete is:
{code:java}
[EntryPointNode(1) EntryPoint::DEFAULT ] on Partition(MAIN)
[ObjectTypeNode(7)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Tick] expiration=-1ms ] on Partition(MAIN)
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[RuleTerminalNode(9): rule=Update] on Partition(2) d -1 i -1
[LeftInputAdapterNode(10)] on Partition(3) Ld 0 Li 0
[ AccumulateNode(12) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
[RuleTerminalNode(13): rule=M] on Partition(3) d -1 i -1
[ AccumulateNode(14) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
[RuleTerminalNode(15): rule=J] on Partition(3) d -1 i -1
[ObjectTypeNode(2)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.drools.core.reteoo.InitialFactImpl] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(3)] on Partition(1) Ld 0 Li 0
[RuleTerminalNode(4): rule=Init] on Partition(1) d -1 i -1
[ObjectTypeNode(5)::EntryPoint::DEFAULT objectType=[ClassObjectType class=java.lang.Integer] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(6)] on Partition(2) Ld 0 Li 0
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[ObjectTypeNode(11)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Data] expiration=-1ms ] on Partition(MAIN)
[ AccumulateNode(12) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
[ AccumulateNode(14) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
{code}
While adding a constraints as {{ Tick( tick != null, $index : tick ) }} inside rule M and J would result in the following rete:
{code:java}
[EntryPointNode(1) EntryPoint::DEFAULT ] on Partition(MAIN)
[ObjectTypeNode(7)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Tick] expiration=-1ms ] on Partition(MAIN)
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[RuleTerminalNode(9): rule=Update] on Partition(2) d -1 i -1
[AlphaNode(10) constraint=tick != null] on Partition(3) d 2 i 2
[LeftInputAdapterNode(11)] on Partition(3) Ld 0 Li 0
[ AccumulateNode(13) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
[RuleTerminalNode(14): rule=M] on Partition(3) d -1 i -1
[ AccumulateNode(15) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
[RuleTerminalNode(16): rule=J] on Partition(3) d -1 i -1
[ObjectTypeNode(2)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.drools.core.reteoo.InitialFactImpl] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(3)] on Partition(1) Ld 0 Li 0
[RuleTerminalNode(4): rule=Init] on Partition(1) d -1 i -1
[ObjectTypeNode(5)::EntryPoint::DEFAULT objectType=[ClassObjectType class=java.lang.Integer] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(6)] on Partition(2) Ld 0 Li 0
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[ObjectTypeNode(12)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Data] expiration=-1ms ] on Partition(MAIN)
[ AccumulateNode(13) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
[ AccumulateNode(15) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
{code}
beside the additional alpha node, kindly notice the AccumulateNode are having the Left Inferred mask correctly populated.
was (Author: tari_manga):
+ additionally, as discussed, similar possibly-connected problem on the test {{org.drools.compiler.integrationtests.AccumulateTest.testAccFunctionOpaqueJoins}}
When running as original and PropertyReactivity == ALWAYS, the test FAIL and the rete is:
{code:java}
[EntryPointNode(1) EntryPoint::DEFAULT ] on Partition(MAIN)
[ObjectTypeNode(7)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Tick] expiration=-1ms ] on Partition(MAIN)
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[RuleTerminalNode(9): rule=Update] on Partition(2) d -1 i -1
[LeftInputAdapterNode(10)] on Partition(3) Ld 0 Li 0
[ AccumulateNode(12) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
[RuleTerminalNode(13): rule=M] on Partition(3) d -1 i -1
[ AccumulateNode(14) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
[RuleTerminalNode(15): rule=J] on Partition(3) d -1 i -1
[ObjectTypeNode(2)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.drools.core.reteoo.InitialFactImpl] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(3)] on Partition(1) Ld 0 Li 0
[RuleTerminalNode(4): rule=Init] on Partition(1) d -1 i -1
[ObjectTypeNode(5)::EntryPoint::DEFAULT objectType=[ClassObjectType class=java.lang.Integer] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(6)] on Partition(2) Ld 0 Li 0
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[ObjectTypeNode(11)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Data] expiration=-1ms ] on Partition(MAIN)
[ AccumulateNode(12) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
[ AccumulateNode(14) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
{code}
While adding a constraints as {{Tick( tick != null, $index : tick ) }} inside rule M and J would result in the following rete:
{code:java}
[EntryPointNode(1) EntryPoint::DEFAULT ] on Partition(MAIN)
[ObjectTypeNode(7)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Tick] expiration=-1ms ] on Partition(MAIN)
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[RuleTerminalNode(9): rule=Update] on Partition(2) d -1 i -1
[AlphaNode(10) constraint=tick != null] on Partition(3) d 2 i 2
[LeftInputAdapterNode(11)] on Partition(3) Ld 0 Li 0
[ AccumulateNode(13) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
[RuleTerminalNode(14): rule=M] on Partition(3) d -1 i -1
[ AccumulateNode(15) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
[RuleTerminalNode(16): rule=J] on Partition(3) d -1 i -1
[ObjectTypeNode(2)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.drools.core.reteoo.InitialFactImpl] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(3)] on Partition(1) Ld 0 Li 0
[RuleTerminalNode(4): rule=Init] on Partition(1) d -1 i -1
[ObjectTypeNode(5)::EntryPoint::DEFAULT objectType=[ClassObjectType class=java.lang.Integer] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(6)] on Partition(2) Ld 0 Li 0
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[ObjectTypeNode(12)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Data] expiration=-1ms ] on Partition(MAIN)
[ AccumulateNode(13) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
[ AccumulateNode(15) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
{code}
beside the additional alpha node, kindly notice the AccumulateNode are having the Left Inferred mask correctly populated.
> Mask should reflect properties accessed in other nodes join constraints
> -----------------------------------------------------------------------
>
> Key: DROOLS-1445
> URL: https://issues.jboss.org/browse/DROOLS-1445
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Reporter: Matteo Mortari
> Assignee: Mario Fusco
>
> The following test exhibit a failing and a working test:
> {code:java}
> @Test()
> public void testAbis_NotWorking() {
> // DROOLS-644
> String drl =
> "import " + Person.class.getCanonicalName() + ";\n" +
> "global java.util.List list;\n" +
> "rule R when\n" +
> " $p1 : Person( name == \"Mario\" ) \n" +
> " $p2 : Person( age > $p1.age ) \n" +
> "then\n" +
> " list.add(\"t0\");\n" +
> "end\n" +
> "rule Z when\n" +
> " $p1 : Person( name == \"Mario\" ) \n" +
> "then\n" +
> " modify($p1) { setAge(35); } \n" +
> "end\n"
> ;
>
> // making the default explicit:
> KieSession ksession = new KieHelper(PropertySpecificOption.ALWAYS).addContent(drl, ResourceType.DRL)
> .build()
> .newKieSession();
> ksession.addEventListener(new DebugAgendaEventListener());
> System.out.println(drl);
> ReteDumper.dumpRete(ksession);
> List<String> list = new ArrayList<String>();
> ksession.setGlobal("list", list);
> Person mario = new Person("Mario", 40);
> Person mark = new Person("Mark", 37);
> FactHandle fh_mario = ksession.insert(mario);
> ksession.insert(mark);
> int x = ksession.fireAllRules();
> assertEquals(1, list.size());
> assertEquals("t0", list.get(0));
> }
>
> @Test()
> public void testAbis_Working() {
> // DROOLS-644
> String drl =
> "import " + Person.class.getCanonicalName() + ";\n" +
> "global java.util.List list;\n" +
> "rule R when\n" +
> " $p1 : Person( name == \"Mario\", $a1: age) \n" +
> " $p2 : Person( age > $a1 ) \n" +
> "then\n" +
> " list.add(\"t0\");\n" +
> "end\n" +
> "rule Z when\n" +
> " $p1 : Person( name == \"Mario\" ) \n" +
> "then\n" +
> " modify($p1) { setAge(35); } \n" +
> "end\n"
> ;
> // making the default explicit:
> KieSession ksession = new KieHelper(PropertySpecificOption.ALWAYS).addContent(drl, ResourceType.DRL)
> .build()
> .newKieSession();
>
> System.out.println(drl);
> ReteDumper.dumpRete(ksession);
> List<String> list = new ArrayList<String>();
> ksession.setGlobal("list", list);
> Person mario = new Person("Mario", 40);
> Person mark = new Person("Mark", 37);
> FactHandle fh_mario = ksession.insert(mario);
> ksession.insert(mark);
> int x = ksession.fireAllRules();
> assertEquals(1, list.size());
> assertEquals("t0", list.get(0));
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 2 months
[JBoss JIRA] (DROOLS-1445) Mask should reflect properties accessed in other nodes join constraints
by Matteo Mortari (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1445?page=com.atlassian.jira.plugi... ]
Matteo Mortari commented on DROOLS-1445:
----------------------------------------
+ additionally, as discussed, similar possibly-connected problem on the test {{org.drools.compiler.integrationtests.AccumulateTest.testAccFunctionOpaqueJoins}}
When running as original and PropertyReactivity == ALWAYS, the test FAIL and the rete is:
{code:java}
[EntryPointNode(1) EntryPoint::DEFAULT ] on Partition(MAIN)
[ObjectTypeNode(7)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Tick] expiration=-1ms ] on Partition(MAIN)
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[RuleTerminalNode(9): rule=Update] on Partition(2) d -1 i -1
[LeftInputAdapterNode(10)] on Partition(3) Ld 0 Li 0
[ AccumulateNode(12) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
[RuleTerminalNode(13): rule=M] on Partition(3) d -1 i -1
[ AccumulateNode(14) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
[RuleTerminalNode(15): rule=J] on Partition(3) d -1 i -1
[ObjectTypeNode(2)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.drools.core.reteoo.InitialFactImpl] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(3)] on Partition(1) Ld 0 Li 0
[RuleTerminalNode(4): rule=Init] on Partition(1) d -1 i -1
[ObjectTypeNode(5)::EntryPoint::DEFAULT objectType=[ClassObjectType class=java.lang.Integer] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(6)] on Partition(2) Ld 0 Li 0
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[ObjectTypeNode(11)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Data] expiration=-1ms ] on Partition(MAIN)
[ AccumulateNode(12) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
[ AccumulateNode(14) ] on Partition(3) Ld 0 Li 0 Rd 2 Ri 2
{code}
While adding a constraints as {{Tick( tick != null, $index : tick ) }} inside rule M and J would result in the following rete:
{code:java}
[EntryPointNode(1) EntryPoint::DEFAULT ] on Partition(MAIN)
[ObjectTypeNode(7)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Tick] expiration=-1ms ] on Partition(MAIN)
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[RuleTerminalNode(9): rule=Update] on Partition(2) d -1 i -1
[AlphaNode(10) constraint=tick != null] on Partition(3) d 2 i 2
[LeftInputAdapterNode(11)] on Partition(3) Ld 0 Li 0
[ AccumulateNode(13) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
[RuleTerminalNode(14): rule=M] on Partition(3) d -1 i -1
[ AccumulateNode(15) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
[RuleTerminalNode(16): rule=J] on Partition(3) d -1 i -1
[ObjectTypeNode(2)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.drools.core.reteoo.InitialFactImpl] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(3)] on Partition(1) Ld 0 Li 0
[RuleTerminalNode(4): rule=Init] on Partition(1) d -1 i -1
[ObjectTypeNode(5)::EntryPoint::DEFAULT objectType=[ClassObjectType class=java.lang.Integer] expiration=-1ms ] on Partition(MAIN)
[LeftInputAdapterNode(6)] on Partition(2) Ld 0 Li 0
[JoinNode(8) - [ClassObjectType class=org.test.Tick]] on Partition(2) Ld -1 Li -1 Rd 0 Ri 0
[ObjectTypeNode(12)::EntryPoint::DEFAULT objectType=[ClassObjectType class=org.test.Data] expiration=-1ms ] on Partition(MAIN)
[ AccumulateNode(13) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
[ AccumulateNode(15) ] on Partition(3) Ld 0 Li 2 Rd 2 Ri 2
{code}
beside the additional alpha node, kindly notice the AccumulateNode are having the Left Inferred mask correctly populated.
> Mask should reflect properties accessed in other nodes join constraints
> -----------------------------------------------------------------------
>
> Key: DROOLS-1445
> URL: https://issues.jboss.org/browse/DROOLS-1445
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Reporter: Matteo Mortari
> Assignee: Mario Fusco
>
> The following test exhibit a failing and a working test:
> {code:java}
> @Test()
> public void testAbis_NotWorking() {
> // DROOLS-644
> String drl =
> "import " + Person.class.getCanonicalName() + ";\n" +
> "global java.util.List list;\n" +
> "rule R when\n" +
> " $p1 : Person( name == \"Mario\" ) \n" +
> " $p2 : Person( age > $p1.age ) \n" +
> "then\n" +
> " list.add(\"t0\");\n" +
> "end\n" +
> "rule Z when\n" +
> " $p1 : Person( name == \"Mario\" ) \n" +
> "then\n" +
> " modify($p1) { setAge(35); } \n" +
> "end\n"
> ;
>
> // making the default explicit:
> KieSession ksession = new KieHelper(PropertySpecificOption.ALWAYS).addContent(drl, ResourceType.DRL)
> .build()
> .newKieSession();
> ksession.addEventListener(new DebugAgendaEventListener());
> System.out.println(drl);
> ReteDumper.dumpRete(ksession);
> List<String> list = new ArrayList<String>();
> ksession.setGlobal("list", list);
> Person mario = new Person("Mario", 40);
> Person mark = new Person("Mark", 37);
> FactHandle fh_mario = ksession.insert(mario);
> ksession.insert(mark);
> int x = ksession.fireAllRules();
> assertEquals(1, list.size());
> assertEquals("t0", list.get(0));
> }
>
> @Test()
> public void testAbis_Working() {
> // DROOLS-644
> String drl =
> "import " + Person.class.getCanonicalName() + ";\n" +
> "global java.util.List list;\n" +
> "rule R when\n" +
> " $p1 : Person( name == \"Mario\", $a1: age) \n" +
> " $p2 : Person( age > $a1 ) \n" +
> "then\n" +
> " list.add(\"t0\");\n" +
> "end\n" +
> "rule Z when\n" +
> " $p1 : Person( name == \"Mario\" ) \n" +
> "then\n" +
> " modify($p1) { setAge(35); } \n" +
> "end\n"
> ;
> // making the default explicit:
> KieSession ksession = new KieHelper(PropertySpecificOption.ALWAYS).addContent(drl, ResourceType.DRL)
> .build()
> .newKieSession();
>
> System.out.println(drl);
> ReteDumper.dumpRete(ksession);
> List<String> list = new ArrayList<String>();
> ksession.setGlobal("list", list);
> Person mario = new Person("Mario", 40);
> Person mark = new Person("Mark", 37);
> FactHandle fh_mario = ksession.insert(mario);
> ksession.insert(mark);
> int x = ksession.fireAllRules();
> assertEquals(1, list.size());
> assertEquals("t0", list.get(0));
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 2 months
[JBoss JIRA] (WFLY-8151) Unable to create custom credentail security factory
by Dmitrii Tikhomirov (JIRA)
[ https://issues.jboss.org/browse/WFLY-8151?page=com.atlassian.jira.plugin.... ]
Dmitrii Tikhomirov reassigned WFLY-8151:
----------------------------------------
Assignee: Dmitrii Tikhomirov (was: Darran Lofthouse)
> Unable to create custom credentail security factory
> ---------------------------------------------------
>
> Key: WFLY-8151
> URL: https://issues.jboss.org/browse/WFLY-8151
> Project: WildFly
> Issue Type: Bug
> Components: Security
> Reporter: Martin Choma
> Assignee: Dmitrii Tikhomirov
> Priority: Blocker
>
> When I try to register custom credential security factory I get {{NoClassDefFoundError}}
> {code}
> 06:54:49,166 WARN [org.jboss.modules] (MSC service thread 1-4) Failed to define class org.wildfly.extras.creaper.commands.elytron.credfactory.AddCustomCredentialSecurityFactoryImpl in Module "org.jboss.customcredsecfacimpl" from local module loader @282ba1e (finder: local module finder @13b6d03 (roots: /home/mchoma/workspace/eap-versions/7.1.0.DR12/jboss-eap-7.1/modules,/home/mchoma/workspace/eap-versions/7.1.0.DR12/jboss-eap-7.1/modules/system/layers/base)): java.lang.NoClassDefFoundError: Failed to link org/wildfly/extras/creaper/commands/elytron/credfactory/AddCustomCredentialSecurityFactoryImpl (Module "org.jboss.customcredsecfacimpl" from local module loader @282ba1e (finder: local module finder @13b6d03 (roots: /home/mchoma/workspace/eap-versions/7.1.0.DR12/jboss-eap-7.1/modules,/home/mchoma/workspace/eap-versions/7.1.0.DR12/jboss-eap-7.1/modules/system/layers/base))): org/wildfly/extension/elytron/capabilities/CredentialSecurityFactory
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:448)
> at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:276)
> at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:79)
> at org.jboss.modules.Module.loadModuleClass(Module.java:708)
> at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:192)
> at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:412)
> at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:400)
> at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
> at org.wildfly.extension.elytron.CustomComponentDefinition$ComponentAddHandler.createValue(CustomComponentDefinition.java:156)
> at org.wildfly.extension.elytron.CustomComponentDefinition$ComponentAddHandler.lambda$performRuntime$1(CustomComponentDefinition.java:135)
> at org.wildfly.extension.elytron.TrivialService.start(TrivialService.java:53)
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> 06:54:49,167 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001: Failed to start service org.wildfly.security.security-factory.credential.CreaperTestAddCustomCredentialSecurityFactory: org.jboss.msc.service.StartException in service org.wildfly.security.security-factory.credential.CreaperTestAddCustomCredentialSecurityFactory: Failed to start service
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1978)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.NoClassDefFoundError: Failed to link org/wildfly/extras/creaper/commands/elytron/credfactory/AddCustomCredentialSecurityFactoryImpl (Module "org.jboss.customcredsecfacimpl" from local module loader @282ba1e (finder: local module finder @13b6d03 (roots: /home/mchoma/workspace/eap-versions/7.1.0.DR12/jboss-eap-7.1/modules,/home/mchoma/workspace/eap-versions/7.1.0.DR12/jboss-eap-7.1/modules/system/layers/base))): org/wildfly/extension/elytron/capabilities/CredentialSecurityFactory
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:448)
> at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:276)
> at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:79)
> at org.jboss.modules.Module.loadModuleClass(Module.java:708)
> at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:192)
> at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:412)
> at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:400)
> at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
> at org.wildfly.extension.elytron.CustomComponentDefinition$ComponentAddHandler.createValue(CustomComponentDefinition.java:156)
> at org.wildfly.extension.elytron.CustomComponentDefinition$ComponentAddHandler.lambda$performRuntime$1(CustomComponentDefinition.java:135)
> at org.wildfly.extension.elytron.TrivialService.start(TrivialService.java:53)
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)
> ... 3 more
> 06:54:49,168 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 4) WFLYCTL0013: Operation ("add") failed - address: ([
> ("subsystem" => "elytron"),
> ("custom-credential-security-factory" => "CreaperTestAddCustomCredentialSecurityFactory")
> ]) - failure description: {
> "WFLYCTL0080: Failed services" => {"org.wildfly.security.security-factory.credential.CreaperTestAddCustomCredentialSecurityFactory" => "org.jboss.msc.service.StartException in service org.wildfly.security.security-factory.credential.CreaperTestAddCustomCredentialSecurityFactory: Failed to start service
> Caused by: java.lang.NoClassDefFoundError: Failed to link org/wildfly/extras/creaper/commands/elytron/credfactory/AddCustomCredentialSecurityFactoryImpl (Module \"org.jboss.customcredsecfacimpl\" from local module loader @282ba1e (finder: local module finder @13b6d03 (roots: /home/mchoma/workspace/eap-versions/7.1.0.DR12/jboss-eap-7.1/modules,/home/mchoma/workspace/eap-versions/7.1.0.DR12/jboss-eap-7.1/modules/system/layers/base))): org/wildfly/extension/elytron/capabilities/CredentialSecurityFactory"},
> "WFLYCTL0412: Required services that are not installed:" => ["org.wildfly.security.security-factory.credential.CreaperTestAddCustomCredentialSecurityFactory"]
> }
> {code}
> That works in DR11 without issue
> Here is implementation of custom credential security factory
> {code:java|title=AddCustomCredentialSecurityFactoryImpl.java}
> package org.wildfly.extras.creaper.commands.elytron.credfactory;
> import java.security.GeneralSecurityException;
> import java.util.Map;
> import org.wildfly.extension.elytron.Configurable;
> import org.wildfly.extension.elytron.capabilities.CredentialSecurityFactory;
> import org.wildfly.security.credential.Credential;
> public class AddCustomCredentialSecurityFactoryImpl<T> implements CredentialSecurityFactory, Configurable {
> @Override
> public Credential create() throws GeneralSecurityException {
> return null;
> }
> @Override
> public void initialize(Map<String, String> configuration) {
> if (configuration.containsKey("throwException")) {
> throw new IllegalStateException("Only test purpose. This exception was thrown on demand.");
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 2 months
[JBoss JIRA] (DROOLS-1383) Deadlock in PackageClassLoader
by Arkady Syamtomov (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1383?page=com.atlassian.jira.plugi... ]
Arkady Syamtomov updated DROOLS-1383:
-------------------------------------
Attachment: ProjectClassLoader.java
> Deadlock in PackageClassLoader
> ------------------------------
>
> Key: DROOLS-1383
> URL: https://issues.jboss.org/browse/DROOLS-1383
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 6.4.0.Final
> Reporter: Karen Zhu
> Assignee: Mario Fusco
> Priority: Blocker
> Attachments: ProjectClassLoader.java
>
>
> Found one deadlock in PackageLoader. Did I write rule in a bad way? How did a consequence of a rule will get the lock of PackageLoader which is needed by checkCerts(). Below is threaddump information.
> Found one Java-level deadlock:
> =============================
> "Thread-105-CustomClass-executor[17 17]":
> waiting to lock monitor 0x00007f933c005b38 (object 0x00007f963ed294b0, a java.lang.Object),
> which is held by "Thread-17-CustomClass-executor[33 33]"
> "Thread-17-CustomClass-executor[33 33]":
> waiting to lock monitor 0x00007f933c0031f8 (object 0x00007f963ed294c0, a org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader),
> which is held by "Thread-33-CustomClass-executor[9 9]"
> "Thread-33-CustomClass-executor[9 9]":
> waiting to lock monitor 0x00007f933c005b38 (object 0x00007f963ed294b0, a java.lang.Object),
> which is held by "Thread-17-CustomClass-executor[33 33]"
> Java stack information for the threads listed above:
> ===================================================
> "Thread-105-CustomClass-executor[17 17]":
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:662)
> waiting to lock <0x00007f963ed294b0> (a java.lang.Object)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:642)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> at org.drools.core.rule.MVELDialectRuntimeData.getParserConfiguration(MVELDialectRuntimeData.java:299)
> at org.drools.core.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)
> at org.drools.core.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:264)
> at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:248)
> at org.drools.core.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:214)
> at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:131)
> at org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:63)
> at org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:366)
> at org.drools.core.reteoo.ObjectTypeNode.propagateAssert(ObjectTypeNode.java:300)
> at org.drools.core.phreak.PropagationEntry$Insert.execute(PropagationEntry.java:93)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:78)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:73)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.flushPropagations(StatefulKnowledgeSessionImpl.java:2017)
> at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1334)
> at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1288)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1306)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1297)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1278)
> "Thread-17-CustomClass-executor[33 33]":
> at java.lang.ClassLoader.checkCerts(ClassLoader.java:942)
> waiting to lock <0x00007f963ed294c0> (a org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader)
> at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:794)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.internalDefineClass(JavaDialectRuntimeData.java:694)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:665)
> locked <0x00007f963ed294b0> (a java.lang.Object)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:642)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> at org.drools.core.rule.MVELDialectRuntimeData.getParserConfiguration(MVELDialectRuntimeData.java:299)
> at org.drools.core.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)
> at org.drools.core.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:264)
> at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:248)
> at org.drools.core.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:214)
> at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:131)
> at org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:63)
> at org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:366)
> at org.drools.core.reteoo.ObjectTypeNode.propagateAssert(ObjectTypeNode.java:300)
> at org.drools.core.phreak.PropagationEntry$Insert.execute(PropagationEntry.java:93)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:78)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:73)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.flushPropagations(StatefulKnowledgeSessionImpl.java:2017)
> at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1334)
> at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1288)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1306)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1297)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1278)
> "Thread-33-CustomClass-executor[9 9]":
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:662)
> waiting to lock <0x00007f963ed294b0> (a java.lang.Object)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:642)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> at com.cdr.apEventWrapperRules.ConstructorApBeansWrapper.constructorApBeansWrapper(ConstructorApBeansWrapper.java:55)
> at com.cdr.apEventWrapperRules.Rule_UCR2359988097.defaultConsequence(Rule_UCR2359988097.java:7)
> at com.cdr.apEventWrapperRules.Rule_UCR2359988097DefaultConsequenceInvokerGenerated.evaluate(Unknown Source)
> at com.cdr.apEventWrapperRules.Rule_UCR2359988097DefaultConsequenceInvoker.evaluate(Unknown Source)
> at org.drools.core.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1089)
> at org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:121)
> at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:74)
> at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1007)
> at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1350)
> at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1288)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1306)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1297)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1278)
> Found 1 deadlock.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 2 months
[JBoss JIRA] (DROOLS-1383) Deadlock in PackageClassLoader
by Arkady Syamtomov (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1383?page=com.atlassian.jira.plugi... ]
Arkady Syamtomov commented on DROOLS-1383:
------------------------------------------
We had the same issue with continuous Class.forName() calls inside the ProjectClassLoader. If manifested itself especially blocking when we developed the parallel deployment of rules (we have amounts like 15 000 and more). More investigation showed the locks happen on continuous Class.forName invocations in fastFindClass and down to call stack. And the reason was that despite the Class.forName throws NoClassFoundException (e.g. for queries inside the rule) the ClassLoader continues doing it again and again (instead of storing the invalid strings in some kind of blacklist). We patched locally the ProjectClassLoader with the one you'll find in attachment - that boosted the performance by approx 60 times in our case. Please have a look and maybe similar modifications could be applied on your side (of course there are some name-specific fragments, but I'm sure more generic solution could be found).
> Deadlock in PackageClassLoader
> ------------------------------
>
> Key: DROOLS-1383
> URL: https://issues.jboss.org/browse/DROOLS-1383
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 6.4.0.Final
> Reporter: Karen Zhu
> Assignee: Mario Fusco
> Priority: Blocker
>
> Found one deadlock in PackageLoader. Did I write rule in a bad way? How did a consequence of a rule will get the lock of PackageLoader which is needed by checkCerts(). Below is threaddump information.
> Found one Java-level deadlock:
> =============================
> "Thread-105-CustomClass-executor[17 17]":
> waiting to lock monitor 0x00007f933c005b38 (object 0x00007f963ed294b0, a java.lang.Object),
> which is held by "Thread-17-CustomClass-executor[33 33]"
> "Thread-17-CustomClass-executor[33 33]":
> waiting to lock monitor 0x00007f933c0031f8 (object 0x00007f963ed294c0, a org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader),
> which is held by "Thread-33-CustomClass-executor[9 9]"
> "Thread-33-CustomClass-executor[9 9]":
> waiting to lock monitor 0x00007f933c005b38 (object 0x00007f963ed294b0, a java.lang.Object),
> which is held by "Thread-17-CustomClass-executor[33 33]"
> Java stack information for the threads listed above:
> ===================================================
> "Thread-105-CustomClass-executor[17 17]":
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:662)
> waiting to lock <0x00007f963ed294b0> (a java.lang.Object)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:642)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> at org.drools.core.rule.MVELDialectRuntimeData.getParserConfiguration(MVELDialectRuntimeData.java:299)
> at org.drools.core.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)
> at org.drools.core.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:264)
> at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:248)
> at org.drools.core.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:214)
> at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:131)
> at org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:63)
> at org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:366)
> at org.drools.core.reteoo.ObjectTypeNode.propagateAssert(ObjectTypeNode.java:300)
> at org.drools.core.phreak.PropagationEntry$Insert.execute(PropagationEntry.java:93)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:78)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:73)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.flushPropagations(StatefulKnowledgeSessionImpl.java:2017)
> at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1334)
> at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1288)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1306)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1297)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1278)
> "Thread-17-CustomClass-executor[33 33]":
> at java.lang.ClassLoader.checkCerts(ClassLoader.java:942)
> waiting to lock <0x00007f963ed294c0> (a org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader)
> at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:794)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.internalDefineClass(JavaDialectRuntimeData.java:694)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:665)
> locked <0x00007f963ed294b0> (a java.lang.Object)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:642)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> at org.drools.core.rule.MVELDialectRuntimeData.getParserConfiguration(MVELDialectRuntimeData.java:299)
> at org.drools.core.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)
> at org.drools.core.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:264)
> at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:248)
> at org.drools.core.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:214)
> at org.drools.core.reteoo.AlphaNode.assertObject(AlphaNode.java:131)
> at org.drools.core.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:63)
> at org.drools.core.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:366)
> at org.drools.core.reteoo.ObjectTypeNode.propagateAssert(ObjectTypeNode.java:300)
> at org.drools.core.phreak.PropagationEntry$Insert.execute(PropagationEntry.java:93)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:78)
> at org.drools.core.phreak.SynchronizedPropagationList.flush(SynchronizedPropagationList.java:73)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.flushPropagations(StatefulKnowledgeSessionImpl.java:2017)
> at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1334)
> at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1288)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1306)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1297)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1278)
> "Thread-33-CustomClass-executor[9 9]":
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:662)
> waiting to lock <0x00007f963ed294b0> (a java.lang.Object)
> at org.drools.core.rule.JavaDialectRuntimeData$PackageClassLoader.loadClass(JavaDialectRuntimeData.java:642)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> at com.cdr.apEventWrapperRules.ConstructorApBeansWrapper.constructorApBeansWrapper(ConstructorApBeansWrapper.java:55)
> at com.cdr.apEventWrapperRules.Rule_UCR2359988097.defaultConsequence(Rule_UCR2359988097.java:7)
> at com.cdr.apEventWrapperRules.Rule_UCR2359988097DefaultConsequenceInvokerGenerated.evaluate(Unknown Source)
> at com.cdr.apEventWrapperRules.Rule_UCR2359988097DefaultConsequenceInvoker.evaluate(Unknown Source)
> at org.drools.core.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1089)
> at org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:121)
> at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:74)
> at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1007)
> at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1350)
> at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1288)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1306)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1297)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1278)
> Found 1 deadlock.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 2 months