[JBoss JIRA] (DROOLS-1593) Ruleflow Split (XOR) can't find valid outgoing connection
by Maciej Swiderski (JIRA)
[ https://issues.jboss.org/browse/DROOLS-1593?page=com.atlassian.jira.plugi... ]
Maciej Swiderski commented on DROOLS-1593:
------------------------------------------
agreed, let's merge it
> Ruleflow Split (XOR) can't find valid outgoing connection
> ---------------------------------------------------------
>
> Key: DROOLS-1593
> URL: https://issues.jboss.org/browse/DROOLS-1593
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 6.5.0.Final, 7.0.0.CR3
> Environment: Drools 7.0.0-SNAPSHOT, Oracle Hotspot 1.8.0_112, KIE-Server, OpenShift DecisionServer
> Reporter: Duncan Doyle
> Assignee: Mario Fusco
>
> This seems like a regression, as this used to work in 6.4.0.Final, but broke somewhere before 6.5.0.Final. Still broken in 7.0.0-SNAPSHOT. (I actually found it in the OpenShift DecisionServer/KIE-Server image).
> See this reproducer: https://github.com/DuncanDoyle/ruleflow-split-problem
> I have a ruleflow-group that has a split-node (XOR Gateway) directly after the start-node. The outgoing sequence flows of that XOR have a Drools LHS that checks whether a fact is present in working memory (in this reproducer it's a String)
> - exists java.lang.String()
> - not java.lang.String()
> Only if that fact exists do I want to continue my ruleflow, if the fact is not there, I stop.
> I use a StatelessKieSession in which I;
> - insert a String
> - start the process
> - fire the rules
> This used to work fine in 6.4.0.Final and below, but since 6.5.0.Final I get an exception:
> {code}
> org.jbpm.workflow.instance.WorkflowRuntimeException: [test-process:1 - Has Strings?:4] -- XOR split could not find at least one valid outgoing connection for split Has Strings?
> at org.jbpm.workflow.instance.node.SplitInstance.internalTrigger(SplitInstance.java:66)
> at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:174)
> at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:367)
> at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:326)
> at org.jbpm.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:72)
> at org.jbpm.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:43)
> at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:174)
> at org.jbpm.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:38)
> at org.jbpm.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:235)
> at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:443)
> at org.jbpm.process.instance.ProcessRuntimeImpl.startProcessInstance(ProcessRuntimeImpl.java:208)
> at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:192)
> at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:184)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:1859)
> at org.drools.core.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:121)
> at org.drools.core.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:39)
> at org.drools.core.command.runtime.BatchExecutionCommandImpl.execute(BatchExecutionCommandImpl.java:156)
> at org.drools.core.command.runtime.BatchExecutionCommandImpl.execute(BatchExecutionCommandImpl.java:64)
> at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:238)
> at org.jboss.ddoyle.ruleflow.test.RuleflowTest.testRuleflowWithSingleFire(RuleflowTest.java:28)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
> Caused by: java.lang.IllegalArgumentException: XOR split could not find at least one valid outgoing connection for split Has Strings?
> at org.jbpm.workflow.instance.node.SplitInstance.executeStrategy(SplitInstance.java:110)
> at org.jbpm.workflow.instance.node.SplitInstance.internalTrigger(SplitInstance.java:62)
> ... 42 more
> {code}
> What seems to be causing this is that the rules in the sequence flows are not yet fired when the process arrives at the XOR node, causing it to not be able to find an outgoing connection.
> What does work is if I add an extra "fireAllRules" command BEFORE the "startProcess" command. In that case the flow behaves as it used to. So I need 2 "fireAllRules" commands. What does NOT work is when I only add a "fireAllRules" command before the startProcess command. In that case the rules in the RFG nodes are not fired (but the XOR does not throw an exception in that case).
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 1 month
[JBoss JIRA] (ELY-1224) TokenSecurityRealm should throw a IllegalStateException when identity can not be mapped
by Darran Lofthouse (JIRA)
[ https://issues.jboss.org/browse/ELY-1224?page=com.atlassian.jira.plugin.s... ]
Darran Lofthouse commented on ELY-1224:
---------------------------------------
IllegalStateException would cover cases where methods are called at the wrong time, i.e. obtaining an authorization identity before one even exists.
For general validation we may actually want methods to just reject authentication normally and log at TRACE so it can be debugged.
> TokenSecurityRealm should throw a IllegalStateException when identity can not be mapped
> ---------------------------------------------------------------------------------------
>
> Key: ELY-1224
> URL: https://issues.jboss.org/browse/ELY-1224
> Project: WildFly Elytron
> Issue Type: Task
> Components: Realms
> Affects Versions: 1.1.0.Beta50
> Reporter: Pedro Igor
> Assignee: Pedro Igor
>
> {{TokenSecurityRealm}} is using a {{RealmUnavailableException}} when failing to map the principal name from tokens.
> Need to change this to throw a {{illegalStateException}} instead.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 1 month
[JBoss JIRA] (WFCORE-2836) Occasional failures in CachedDcDomainTestCase.dcConfigChangePropagatedAfterRestart
by Ken Wills (JIRA)
[ https://issues.jboss.org/browse/WFCORE-2836?page=com.atlassian.jira.plugi... ]
Ken Wills commented on WFCORE-2836:
-----------------------------------
Thanks for the heads up [~pkremens], I'll have a look.
> Occasional failures in CachedDcDomainTestCase.dcConfigChangePropagatedAfterRestart
> ----------------------------------------------------------------------------------
>
> Key: WFCORE-2836
> URL: https://issues.jboss.org/browse/WFCORE-2836
> Project: WildFly Core
> Issue Type: Task
> Reporter: Ken Wills
> Assignee: Ken Wills
> Priority: Minor
> Fix For: 3.0.0.Beta23
>
>
> INFO [org.jboss.as.test.integration.domain.management.util.DomainLifecycleUtil] HostController started in 4976 ms
> [Host Controller] 20:45:21,364 INFO [org.jboss.as.domain.controller] (management task-4) WFLYHC0026: Unregistered remote slave host "slave"
> [Host Controller] 20:45:21,381 WARN [org.jboss.as.host.controller] (management-handler-thread - 3) WFLYDC0004: Caught exception awaiting final response from server other-two on host slave: org.jboss.remoting3.NotOpenException: Writes closed
> [Host Controller] at org.jboss.remoting3.remote.RemoteConnectionChannel.openOutboundMessage(RemoteConnectionChannel.java:110)
> [Host Controller] at org.jboss.remoting3.remote.RemoteConnectionChannel.writeMessage(RemoteConnectionChannel.java:295)
> [Host Controller] at org.jboss.as.protocol.mgmt.ManagementRequestContextImpl.writeMessage(ManagementRequestContextImpl.java:122)
> [Host Controller] at org.jboss.as.protocol.mgmt.AbstractManagementRequest.sendRequest(AbstractManagementRequest.java:51)
> [Host Controller] at org.jboss.as.controller.remote.TransactionalProtocolClientImpl$ExecuteRequest.sendRequestInternal(TransactionalProtocolClientImpl.java:243)
> [Host Controller] at org.jboss.as.controller.remote.TransactionalProtocolClientImpl$ExecuteRequest.access$400(TransactionalProtocolClientImpl.java:152)
> [Host Controller] at org.jboss.as.controller.remote.TransactionalProtocolClientImpl$ExecuteRequest$1.execute(TransactionalProtocolClientImpl.java:169)
> [Host Controller] at org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$1.doExecute(ManagementRequestContextImpl.java:70)
> [Host Controller] at org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$AsyncTaskRunner.run(ManagementRequestContextImpl.java:160)
> [Host Controller] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [Host Controller] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [Host Controller] at java.lang.Thread.run(Thread.java:745)
> [Host Controller] at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> [Host Controller]
> [Host Controller] 20:45:21,383 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 3) WFLYCTL0190: Step handler org.jboss.as.domain.controller.operations.coordination.DomainSlaveHandler@203989 for operation add at address [
> [Host Controller] ("profile" => "default"),
> [Host Controller] ("subsystem" => "logging"),
> [Host Controller] ("logger" => "org.jboss.test")
> [Host Controller] ] failed handling operation rollback -- java.util.concurrent.CancellationException: Operation was cancelled: java.util.concurrent.CancellationException: Operation was cancelled
> [Host Controller] at org.jboss.threads.AsyncFutureTask.operationCancelled(AsyncFutureTask.java:70)
> [Host Controller] at org.jboss.threads.AsyncFutureTask.get(AsyncFutureTask.java:280)
> [Host Controller] at org.jboss.as.controller.client.impl.AbstractDelegatingAsyncFuture.get(AbstractDelegatingAsyncFuture.java:62)
> [Host Controller] at org.jboss.as.domain.controller.operations.coordination.DomainSlaveHandler.finalizeOp(DomainSlaveHandler.java:254)
> [Host Controller] at org.jboss.as.domain.controller.operations.coordination.DomainSlaveHandler.access$000(DomainSlaveHandler.java:63)
> [Host Controller] at org.jboss.as.domain.controller.operations.coordination.DomainSlaveHandler$1.handleResult(DomainSlaveHandler.java:168)
> [Host Controller] at org.jboss.as.controller.AbstractOperationContext$Step.invokeResultHandler(AbstractOperationContext.java:1492)
> [Host Controller] at org.jboss.as.controller.AbstractOperationContext$Step.handleResult(AbstractOperationContext.java:1474)
> [Host Controller] at org.jboss.as.controller.AbstractOperationContext$Step.finalizeInternal(AbstractOperationContext.java:1431)
> [Host Controller] at org.jboss.as.controller.AbstractOperationContext$Step.finalizeStep(AbstractOperationContext.java:1414)
> [Host Controller] at org.jboss.as.controller.AbstractOperationContext$Step.access$400(AbstractOperationContext.java:1278)
> [Host Controller] at org.jboss.as.controller.AbstractOperationContext.executeResultHandlerPhase(AbstractOperationContext.java:850)
> [Host Controller] at org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:732)
> [Host Controller] at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:443)
> [Host Controller] at org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1398)
> [Host Controller] at org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:418)
> [Host Controller] at org.jboss.as.controller.ModelControllerImpl.lambda$execute$1(ModelControllerImpl.java:243)
> [Host Controller] at org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:263)
> [Host Controller] at org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:229)
> [Host Controller] at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:243)
> [Host Controller] at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.doExecute(ModelControllerClientOperationHandler.java:217)
> [Host Controller] at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.access$400(ModelControllerClientOperationHandler.java:137)
> [Host Controller] at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:161)
> [Host Controller] at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:157)
> [Host Controller] at org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:287)
> [Host Controller] at org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:244)
> [Host Controller] at org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:254)
> [Host Controller] at org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:225)
> [Host Controller] at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1.execute(ModelControllerClientOperationHandler.java:157)
> [Host Controller] at org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$1.doExecute(ManagementRequestContextImpl.java:70)
> [Host Controller] at org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$AsyncTaskRunner.run(ManagementRequestContextImpl.java:160)
> [Host Controller] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [Host Controller] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [Host Controller] at java.lang.Thread.run(Thread.java:745)
> [Host Controller] at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> [Host Controller]
> [14:47:05][dcConfigChangePropagatedAfterRestart] java.lang.RuntimeException: "WFLYDC0022: Operation failed or was rolled back on all servers."
> [14:47:05]
> [dcConfigChangePropagatedAfterRestart] java.lang.RuntimeException: "WFLYDC0022: Operation failed or was rolled back on all servers."
> at org.jboss.as.test.integration.domain.management.util.DomainLifecycleUtil.executeForResult(DomainLifecycleUtil.java:647)
> at org.jboss.as.test.integration.domain.management.util.DomainLifecycleUtil.executeForResult(DomainLifecycleUtil.java:638)
> at org.jboss.as.test.integration.domain.cacheddc.CachedDcDomainTestCase.dcConfigChangePropagatedAfterRestart(CachedDcDomainTestCase.java:198)
> [14:47:05][org.jboss.as.test.integration.domain.cacheddc.CachedDcDomainTestCase] hcStartsWhenCachedConfigAvailable_CachedAndBackupDCParamIsSet
> [14:47:05][org.jboss.as.test.integration.domain.cacheddc.CachedDcDomainTestCase] hcStartsWhenCachedConfigAvailable_BackupDCParamIsSet
> [14:47:05][org.jboss.as.test.integration.domain.cacheddc.CachedDcDomainTestCase] hcWaitsForDCBeingStarted_BackupDCParamIsSet
> [14:47:05][org.jboss.as.test.integration.domain.cacheddc.CachedDcDomainTestCase] dcConfigChangePropagated
> [14:47:05][org.jboss.as.test.integration.domain.cacheddc.CachedDcDomainTestCase] hcNotStartsWhenCachedConfigNotAvailable_CachedDCParamIsSet
> [14:47:05][org.jboss.as.test.integration.domain.cacheddc.CachedDcDomainTestCase] hcStartsWhenCachedConfigAvailable_CachedDCParamIsSet
> [14:47:05][org.jboss.as.test.integration.domain.cacheddc.CachedDcDomainTestCase] reloadAdvertisedAfterDcModelChangeWithShutdown
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 1 month