[JBoss JIRA] (DROOLS-1383) Deadlock in PackageClassLoader
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1383?page=com.atlassian.jira.plugi... ]
Mario Fusco commented on DROOLS-1383:
-------------------------------------
I don't see where the deadlock is in the provided thread dump, but maybe it's because a part of the dump is missing. What I see there is that Thread-17 locked 0x00007f963ed294b0 and other 2 threads are waiting for the same lock. Moreover the same Thread-17 is trying to acquire a second lock, 0x00007f963ed294c0, but I don't see what is holding that lock at the moment and then why Thread-17 cannot obtain it. What's missing?
Also I'd need to have some more info about your environment and more specifically a way to reproduce the problem, otherwise it will be impossible for me to investigate this issue.
> 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)
7 years, 4 months
[JBoss JIRA] (DROOLS-1382) "No RuleTable cells in spreadsheet"
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1382?page=com.atlassian.jira.plugi... ]
Mario Fusco closed DROOLS-1382.
-------------------------------
Resolution: Rejected
Not a bug.
> "No RuleTable cells in spreadsheet"
> -----------------------------------
>
> Key: DROOLS-1382
> URL: https://issues.jboss.org/browse/DROOLS-1382
> Project: Drools
> Issue Type: Bug
> Components: decision tables
> Affects Versions: 6.3.0.Final, 6.5.0.Final
> Environment: OSX 10.12
> Excel for Mac
> Drools 6.3.0.Final and Drools 6.5.0.Final
> Intellij IDEA Ultimate 2016.1
> second machine Intellij IDEA CE 2016.2
> Reporter: John Dunning
> Assignee: Mario Fusco
> Priority: Blocker
>
> Mac OSX Drools 6.3.0.Final and recreated in Drools 6.5.0.Final
> Checked out the Drools6.3.0 example code, and also example code from Mastering Drools 6 book for RuleTemplates using spreadsheets as template data.
> Both projects compile and work in their own environment.
> Replicated similar for a Government Project and KnowledgeBase compilation fails with "No Ruletable cells in Spreadsheet".
> This ruleset is one ruleset in a multi-ruleset project that is configured using kmodule.xml. Other rulesets include DRL and Decision Tables.
> The rules for this ruleset are in the same package in src/main/resources of a project that also includes all the executable code. The fact model is also included in the executable code. Created an excel spreadsheet using Excel for Mac, and created the DRT file. The rules also include a DRL file. Got the "No Ruletable cells in Spreadsheet" error when building the knowledge base.
> Removed the DRL file and the KnowledgeBase built. Put the DRL file back and the KnowledgeBase still built.
> Copied the project and the problem recurred.
> Created separate projects for each ruleset - each with its own kmodule.xml. Each ruleset is a Maven Module in a Maven Project. This ruleset contains only one DRT, one DRL and and XLS with data only. It also contains java code for one fact.
> Cannot create a KnowledgeBase from this ruleset even when dependencies for all other rulesets are commented out. None of the other rulesets use templates but they do use decision tables, DRL files and have facts specific to the ruleset.
> Moved the RuleSet from a Maven Module to a separate Maven Project. Problem still recurred. Separated the Fact Model (single fact) into a separate Maven Project. Problem still recurred.
> Wondered if it may be a issue with Excel for Mac so copied the xls and DRT files from both Drools 6.3 examples and Mastering Drools examples and neither compiles when copied and pasted into a new project - same error "No Ruletable cells in Spreadsheet".
> Moved Drools to 6.5.0.final and problem recurred
> IDE - Intellij IDEA Ultimate 2016.1
> second machine
> Mac OSX Drools 6.3.0.Final and recreated in Drools 6.5.0.Final
> I can be contacted for more information and/or an example project that replicates the problem.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (WFLY-7820) Add AuthenticationContext References to Undertow
by Darran Lofthouse (JIRA)
Darran Lofthouse created WFLY-7820:
--------------------------------------
Summary: Add AuthenticationContext References to Undertow
Key: WFLY-7820
URL: https://issues.jboss.org/browse/WFLY-7820
Project: WildFly
Issue Type: Enhancement
Components: Web (Undertow)
Reporter: Darran Lofthouse
Assignee: Darran Lofthouse
Fix For: 11.0.0.Alpha1
These references will be associated with the ClassLoader of the deployment so will be available for any outbound connections from the deployment.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (WFCORE-1762) Missing dependency should be triggering rollback of the deployment operation
by Martin Stefanko (JIRA)
[ https://issues.jboss.org/browse/WFCORE-1762?page=com.atlassian.jira.plugi... ]
Martin Stefanko updated WFCORE-1762:
------------------------------------
Description:
The removal of the deployment which is a dependency for other resources makes these dependent resources unusable. The deployment operation should not be completed in such conditions.
The information about the missing dependencies is now currently logged after the removal by the ContainerStateMonitor class.
Example:
{code}INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) WFLYSRV0028: Stopped deployment postgresql-9.4.1208.jar (runtime-name: postgresql-9.4.1208.jar) in 61ms
INFO [org.jboss.as.server] (ServerService Thread Pool -- 65) WFLYSRV0009: Undeployed "postgresql-9.4.1208.jar" (runtime-name: "postgresql-9.4.1208.jar")
INFO [org.jboss.as.repository] (ServerService Thread Pool -- 65) WFLYDR0002: Content removed from location /home/mjurc/testing/eap/7.0.0/jboss-eap-7.0/standalone/data/content/5c/7e80698b80a5045fe64daa67426051bbd16a56/content
INFO [org.jboss.as.controller] (ServerService Thread Pool -- 65) WFLYCTL0183: Service status report
WFLYCTL0184: New missing/unsatisfied dependencies:
service jboss.jdbc-driver.postgresql-9_4_1208_jar (missing) dependents: [service jboss.driver-demander.java:/PostgresDS, service org.wildfly.data-source.PostgresDS]
{code}
was:
When removing a deployment that other deployments or resources depend on, it should not be possible to remove such deployment or at least to present this information to the user prior to the removal.
For example:
{code}INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) WFLYSRV0028: Stopped deployment postgresql-9.4.1208.jar (runtime-name: postgresql-9.4.1208.jar) in 61ms
INFO [org.jboss.as.server] (ServerService Thread Pool -- 65) WFLYSRV0009: Undeployed "postgresql-9.4.1208.jar" (runtime-name: "postgresql-9.4.1208.jar")
INFO [org.jboss.as.repository] (ServerService Thread Pool -- 65) WFLYDR0002: Content removed from location /home/mjurc/testing/eap/7.0.0/jboss-eap-7.0/standalone/data/content/5c/7e80698b80a5045fe64daa67426051bbd16a56/content
INFO [org.jboss.as.controller] (ServerService Thread Pool -- 65) WFLYCTL0183: Service status report
WFLYCTL0184: New missing/unsatisfied dependencies:
service jboss.jdbc-driver.postgresql-9_4_1208_jar (missing) dependents: [service jboss.driver-demander.java:/PostgresDS, service org.wildfly.data-source.PostgresDS]
{code}
The monitoring is done by the ContainerStateMonitor class.
> Missing dependency should be triggering rollback of the deployment operation
> ----------------------------------------------------------------------------
>
> Key: WFCORE-1762
> URL: https://issues.jboss.org/browse/WFCORE-1762
> Project: WildFly Core
> Issue Type: Bug
> Affects Versions: 3.0.0.Alpha7
> Reporter: Martin Stefanko
>
> The removal of the deployment which is a dependency for other resources makes these dependent resources unusable. The deployment operation should not be completed in such conditions.
> The information about the missing dependencies is now currently logged after the removal by the ContainerStateMonitor class.
> Example:
> {code}INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) WFLYSRV0028: Stopped deployment postgresql-9.4.1208.jar (runtime-name: postgresql-9.4.1208.jar) in 61ms
> INFO [org.jboss.as.server] (ServerService Thread Pool -- 65) WFLYSRV0009: Undeployed "postgresql-9.4.1208.jar" (runtime-name: "postgresql-9.4.1208.jar")
> INFO [org.jboss.as.repository] (ServerService Thread Pool -- 65) WFLYDR0002: Content removed from location /home/mjurc/testing/eap/7.0.0/jboss-eap-7.0/standalone/data/content/5c/7e80698b80a5045fe64daa67426051bbd16a56/content
> INFO [org.jboss.as.controller] (ServerService Thread Pool -- 65) WFLYCTL0183: Service status report
> WFLYCTL0184: New missing/unsatisfied dependencies:
> service jboss.jdbc-driver.postgresql-9_4_1208_jar (missing) dependents: [service jboss.driver-demander.java:/PostgresDS, service org.wildfly.data-source.PostgresDS]
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (DROOLS-1227) Drools cannot be configured to expire Events properly
by Jochen Welle (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1227?page=com.atlassian.jira.plugi... ]
Jochen Welle edited comment on DROOLS-1227 at 12/20/16 5:02 AM:
----------------------------------------------------------------
I can confirm the issue for Drools 6.5.0.Final.
I created an attachment for Scenario A (slightly modified) [^expire_without_temporal_constraint.drl]
and executed (in STREAM mode):
* fire-all-rules
* get-objects: ExpireEvent and ExpireEvent2 are there
* wait 15s
* fire-all-rules
* get-objects: ExpireEvent is gone but ExpireEvent2 remains in working memory
Since I do not have temporal constraints for all events this makes complex event processing rather difficult, because expiration must be dealt with manually.
was (Author: jwelle):
I can confirm the issue for Drools 6.5.0.Final.
I created an attachment for Scenario A [^expire_without_temporal_constraint.drl]
and executed (in STREAM mode):
* fire-all-rules
* get-objects: ExpireEvent and ExpireEvent2 are there
* wait 15s
* fire-all-rules
* get-objects: ExpireEvent is gone but ExpireEvent2 remains in working memory
Since I do not have temporal constraints for all events this makes complex event processing rather difficult, because expiration must be dealt with manually.
> Drools cannot be configured to expire Events properly
> -----------------------------------------------------
>
> Key: DROOLS-1227
> URL: https://issues.jboss.org/browse/DROOLS-1227
> Project: Drools
> Issue Type: Bug
> Affects Versions: 6.2.0.Final
> Environment: Windows, Java SE 1.8
> Reporter: Cristobal Arellano
> Assignee: Mark Proctor
> Priority: Critical
> Attachments: expire_without_temporal_constraint.drl
>
>
> Hello,
> I want to configure Drools (CEP) to expire events when no longer needed. There are two scenarios:
> ==SCENARIO A==
> I configured Event with no explicit expires. In this scenario, if there is a rule with temporal constraints, the expiration is automatically calculated based on the constrains. If there is a rule with no temporal constraints, the expiration is INFINITE. The following example shows the scenario:
> dialect "mvel"
> declare Event
> @role(event)
> end
> rule "ExampleRule1"
> when
> ( $a : Event(name == "event a")
> then
> System.out.println("ExampleRule1Triggered");
> end
> rule "ExampleRule2"
> when
> ( $a : Event(name == "event a") ) and
> ( $b : Event((name == "event b") && (this after [1ms, 15s] $a)) )
> then
> System.out.println("ExampleRule2Triggered");
> end
> With the previous Event definition:
> * If only ExampleRule1 loaded, expires INFINITE. Expected expires 0. ERROR?
> * If ExampleRule1 loaded and ExampleRule2 loaded, expires 15s. Expected expires 15. OK!
> To solve this situation a tried the following scenario:
> == SCENARIO B==
> I configured Event with explicit expires. In this scenario, if there is a rule with temporal constraints, the expiration is not taken into account because it is overriden by the explicit expires. The following example shows the scenario:
> dialect "mvel"
> declare Event
> @role(event)
> @expires(0s)
> end
> rule "ExampleRule1"
> when
> ( $a : Event(name == "event a")
> then
> System.out.println("ExampleRule1Triggered");
> end
> rule "ExampleRule2"
> when
> ( $a : Event(name == "event a") ) and
> ( $b : Event((name == "event b") && (this after [1ms, 15s] $a)) )
> then
> System.out.println("ExampleRule2Triggered");
> end
> With the previous Event definition:
> * ExampleRule1 is triggered and event removed. OK!
> * ExampleRule2 is not triggered inserting two events because the first one expires. ERROR?
> I suppose that SCENARIO B is not factible because explicit expires overrides implicit expires (according to issue DROOLS-586).
> Could you please help me to solve this situation? Should Drools set inferred expiration time to 1ms when there are rules with no temporal constraints?
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (DROOLS-1227) Drools cannot be configured to expire Events properly
by Jochen Welle (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1227?page=com.atlassian.jira.plugi... ]
Jochen Welle commented on DROOLS-1227:
--------------------------------------
I can confirm the issue for Drools 6.5.0.Final.
I created an attachment for Scenario A [^expire_without_temporal_constraint.drl]
and executed (in STREAM mode):
* fire-all-rules
* get-objects: ExpireEvent and ExpireEvent2 are there
* wait 15s
* fire-all-rules
* get-objects: ExpireEvent is gone but ExpireEvent2 remains in working memory
Since I do not have temporal constraints for all events this makes complex event processing rather difficult, because expiration must be dealt with manually.
> Drools cannot be configured to expire Events properly
> -----------------------------------------------------
>
> Key: DROOLS-1227
> URL: https://issues.jboss.org/browse/DROOLS-1227
> Project: Drools
> Issue Type: Bug
> Affects Versions: 6.2.0.Final
> Environment: Windows, Java SE 1.8
> Reporter: Cristobal Arellano
> Assignee: Mark Proctor
> Priority: Critical
> Attachments: expire_without_temporal_constraint.drl
>
>
> Hello,
> I want to configure Drools (CEP) to expire events when no longer needed. There are two scenarios:
> ==SCENARIO A==
> I configured Event with no explicit expires. In this scenario, if there is a rule with temporal constraints, the expiration is automatically calculated based on the constrains. If there is a rule with no temporal constraints, the expiration is INFINITE. The following example shows the scenario:
> dialect "mvel"
> declare Event
> @role(event)
> end
> rule "ExampleRule1"
> when
> ( $a : Event(name == "event a")
> then
> System.out.println("ExampleRule1Triggered");
> end
> rule "ExampleRule2"
> when
> ( $a : Event(name == "event a") ) and
> ( $b : Event((name == "event b") && (this after [1ms, 15s] $a)) )
> then
> System.out.println("ExampleRule2Triggered");
> end
> With the previous Event definition:
> * If only ExampleRule1 loaded, expires INFINITE. Expected expires 0. ERROR?
> * If ExampleRule1 loaded and ExampleRule2 loaded, expires 15s. Expected expires 15. OK!
> To solve this situation a tried the following scenario:
> == SCENARIO B==
> I configured Event with explicit expires. In this scenario, if there is a rule with temporal constraints, the expiration is not taken into account because it is overriden by the explicit expires. The following example shows the scenario:
> dialect "mvel"
> declare Event
> @role(event)
> @expires(0s)
> end
> rule "ExampleRule1"
> when
> ( $a : Event(name == "event a")
> then
> System.out.println("ExampleRule1Triggered");
> end
> rule "ExampleRule2"
> when
> ( $a : Event(name == "event a") ) and
> ( $b : Event((name == "event b") && (this after [1ms, 15s] $a)) )
> then
> System.out.println("ExampleRule2Triggered");
> end
> With the previous Event definition:
> * ExampleRule1 is triggered and event removed. OK!
> * ExampleRule2 is not triggered inserting two events because the first one expires. ERROR?
> I suppose that SCENARIO B is not factible because explicit expires overrides implicit expires (according to issue DROOLS-586).
> Could you please help me to solve this situation? Should Drools set inferred expiration time to 1ms when there are rules with no temporal constraints?
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (WFLY-7816) Camel CXF version not compatible with WildFly CXF
by Thomas Diesler (JIRA)
[ https://issues.jboss.org/browse/WFLY-7816?page=com.atlassian.jira.plugin.... ]
Thomas Diesler commented on WFLY-7816:
--------------------------------------
Thanks for looking into this, I could indeed fix it at the Camel end.
Keeping CXF versions in sync as close as possible, is still a good idea.
> Camel CXF version not compatible with WildFly CXF
> -------------------------------------------------
>
> Key: WFLY-7816
> URL: https://issues.jboss.org/browse/WFLY-7816
> Project: WildFly
> Issue Type: Component Upgrade
> Components: Web Services
> Affects Versions: 10.1.0.Final
> Reporter: Thomas Diesler
> Assignee: Alessio Soldano
> Fix For: 10.2.0.Final, 11.0.0.Alpha1
>
>
> cxf-3.1.9 distributed with camel-2.19.x is not compatible with cxf-3.1.6 from wildfly-10.1.0.Final
> {code}
> Caused by: java.lang.NoSuchMethodError: org.apache.cxf.message.Message.remove(Ljava/lang/Class;)Ljava/lang/Object;
> at org.apache.camel.component.cxf.CxfEndpoint$CamelCxfClientImpl.setParameters(CxfEndpoint.java:1239)
> at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:470)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:416)
> at org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:133)
> {code}
> CrossRef: https://github.com/wildfly-extras/wildfly-camel/issues/1546
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (DROOLS-1227) Drools cannot be configured to expire Events properly
by Jochen Welle (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1227?page=com.atlassian.jira.plugi... ]
Jochen Welle updated DROOLS-1227:
---------------------------------
Attachment: expire_without_temporal_constraint.drl
> Drools cannot be configured to expire Events properly
> -----------------------------------------------------
>
> Key: DROOLS-1227
> URL: https://issues.jboss.org/browse/DROOLS-1227
> Project: Drools
> Issue Type: Bug
> Affects Versions: 6.2.0.Final
> Environment: Windows, Java SE 1.8
> Reporter: Cristobal Arellano
> Assignee: Mark Proctor
> Priority: Critical
> Attachments: expire_without_temporal_constraint.drl
>
>
> Hello,
> I want to configure Drools (CEP) to expire events when no longer needed. There are two scenarios:
> ==SCENARIO A==
> I configured Event with no explicit expires. In this scenario, if there is a rule with temporal constraints, the expiration is automatically calculated based on the constrains. If there is a rule with no temporal constraints, the expiration is INFINITE. The following example shows the scenario:
> dialect "mvel"
> declare Event
> @role(event)
> end
> rule "ExampleRule1"
> when
> ( $a : Event(name == "event a")
> then
> System.out.println("ExampleRule1Triggered");
> end
> rule "ExampleRule2"
> when
> ( $a : Event(name == "event a") ) and
> ( $b : Event((name == "event b") && (this after [1ms, 15s] $a)) )
> then
> System.out.println("ExampleRule2Triggered");
> end
> With the previous Event definition:
> * If only ExampleRule1 loaded, expires INFINITE. Expected expires 0. ERROR?
> * If ExampleRule1 loaded and ExampleRule2 loaded, expires 15s. Expected expires 15. OK!
> To solve this situation a tried the following scenario:
> == SCENARIO B==
> I configured Event with explicit expires. In this scenario, if there is a rule with temporal constraints, the expiration is not taken into account because it is overriden by the explicit expires. The following example shows the scenario:
> dialect "mvel"
> declare Event
> @role(event)
> @expires(0s)
> end
> rule "ExampleRule1"
> when
> ( $a : Event(name == "event a")
> then
> System.out.println("ExampleRule1Triggered");
> end
> rule "ExampleRule2"
> when
> ( $a : Event(name == "event a") ) and
> ( $b : Event((name == "event b") && (this after [1ms, 15s] $a)) )
> then
> System.out.println("ExampleRule2Triggered");
> end
> With the previous Event definition:
> * ExampleRule1 is triggered and event removed. OK!
> * ExampleRule2 is not triggered inserting two events because the first one expires. ERROR?
> I suppose that SCENARIO B is not factible because explicit expires overrides implicit expires (according to issue DROOLS-586).
> Could you please help me to solve this situation? Should Drools set inferred expiration time to 1ms when there are rules with no temporal constraints?
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months