[jboss-jira] [JBoss JIRA] (DROOLS-638) KnowledgeAgent incremental build stuck infinite if have two rules with same condition in steam mode

Vinay Pareek (JIRA) issues at jboss.org
Fri Oct 24 08:43:35 EDT 2014


    [ https://issues.jboss.org/browse/DROOLS-638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13014888#comment-13014888 ] 

Vinay Pareek commented on DROOLS-638:
-------------------------------------

Attached reproducer code.

> KnowledgeAgent incremental build stuck infinite if have two rules with same condition in steam mode
> ---------------------------------------------------------------------------------------------------
>
>                 Key: DROOLS-638
>                 URL: https://issues.jboss.org/browse/DROOLS-638
>             Project: Drools
>          Issue Type: Bug
>    Affects Versions: 5.6.0.Final
>         Environment: Windows 8 64bit Machine, Java jdk1.7.0_51
>            Reporter: Vinay Pareek
>            Assignee: Mark Proctor
>
> If we have two rules on same condition in Steam mode, first time agent able to pick both and work fine.
> When we update any rule (then part), KnowledgeAgent will stuck infinite after printing below logs.
> [2014-10-24 17:59:04,066:debug] KnowledgeAgent received ChangeSet changed notification
> [2014-10-24 17:59:04,066:info] KnowledgeAgent applying ChangeSet
> [2014-10-24 17:59:04,067:debug] KnowledgeAgent removing mappings for resource=[FileResource file='rule\streamRule.drl'] with unsubscribe=false
> [2014-10-24 17:59:04,067:debug] KnowledgeAgent rebuilding KnowledgeBase using ChangeSet
> [2014-10-24 17:59:04,076:info] KnowledgeAgent performing an incremental build of the ChangeSet
> [2014-10-24 17:59:04,193:debug] KnowledgeAgent: Diffing: [FileResource file='rule\streamRule.drl'] 
> Below is code snippet for KnowledgeAgent
> KnowledgeAgentConfiguration kaconf = KnowledgeAgentFactory
> 				.newKnowledgeAgentConfiguration();
> 		kaconf.setProperty("drools.agent.scanDirectories", "true");
> 		kaconf.setProperty("drools.agent.newInstance", "false");
> 		KnowledgeBaseConfiguration config = KnowledgeBaseFactory
> 				.newKnowledgeBaseConfiguration();
> 		config.setOption(EventProcessingOption.STREAM);
> 		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(config);
> 		final KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent(
> 				"kagent", kbase, kaconf);
> 		kagent.setSystemEventListener(new PrintStreamSystemEventListener());
> 		kagent.addEventListener(new KnowledgeAgentEventListener() {
> 			public void resourceCompilationFailed(
> 					ResourceCompilationFailedEvent arg0) {
> 				LOGGER.error("Unable to compile Knowledge" + arg0.toString());
> 				throw new RuntimeException("Unable to compile Knowledge"
> 						+ arg0.toString());
> 			}
> 			public void knowledgeBaseUpdated(KnowledgeBaseUpdatedEvent arg0) {
> 				LOGGER.info("********** KBase was updated***********");
> 			}
> 			public void beforeResourceProcessed(
> 					BeforeResourceProcessedEvent arg0) {
> 			}
> 			public void beforeChangeSetProcessed(
> 					BeforeChangeSetProcessedEvent arg0) {
> 			}
> 			public void beforeChangeSetApplied(BeforeChangeSetAppliedEvent arg0) {
> 			}
> 			public void afterResourceProcessed(AfterResourceProcessedEvent arg0) {
> 			}
> 			public void afterChangeSetProcessed(
> 					AfterChangeSetProcessedEvent arg0) {
> 			}
> 			public void afterChangeSetApplied(AfterChangeSetAppliedEvent arg0) {
> 			}
> 		});
> 		ResourceChangeScannerConfiguration sconf = ResourceFactory
> 				.getResourceChangeScannerService()
> 				.newResourceChangeScannerConfiguration();
> 		sconf.setProperty("drools.resource.scanner.interval", "2");
> 		ResourceFactory.getResourceChangeScannerService().configure(sconf);
> 		kagent.applyChangeSet(ResourceFactory
> 				.newClassPathResource("changeset/changeSet.xml"));
> 		ResourceFactory.getResourceChangeNotifierService().start();
> 		ResourceFactory.getResourceChangeScannerService().start();



--
This message was sent by Atlassian JIRA
(v6.3.1#6329)


More information about the jboss-jira mailing list