[jboss-svn-commits] JBL Code SVN: r34225 - labs/jbossesb/trunk/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jul 27 12:53:47 EDT 2010


Author: dward
Date: 2010-07-27 12:53:46 -0400 (Tue, 27 Jul 2010)
New Revision: 34225

Modified:
   labs/jbossesb/trunk/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsResourceChangeService.java
Log:
Fix for JBESB-3393 ( https://jira.jboss.org/browse/JBESB-3393 ).


Modified: labs/jbossesb/trunk/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsResourceChangeService.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsResourceChangeService.java	2010-07-27 16:03:31 UTC (rev 34224)
+++ labs/jbossesb/trunk/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsResourceChangeService.java	2010-07-27 16:53:46 UTC (rev 34225)
@@ -22,6 +22,8 @@
 import org.apache.log4j.Logger;
 import org.drools.SystemEventListener;
 import org.drools.SystemEventListenerFactory;
+import org.drools.agent.impl.PrintStreamSystemEventListener;
+import org.drools.core.util.DelegatingSystemEventListener;
 import org.drools.io.ResourceChangeScanner;
 import org.drools.io.ResourceChangeScannerConfiguration;
 import org.drools.io.ResourceFactory;
@@ -49,6 +51,14 @@
 		
 		// 1) set the system event listener to our implementation
 		originalSystemEventListener = SystemEventListenerFactory.getSystemEventListener();
+		if (originalSystemEventListener == null || originalSystemEventListener instanceof DelegatingSystemEventListener)
+		{
+			// We need to check for DelegatingSystemEventListener so we don't get a
+			// StackOverflowError when we set it back.  If it is a DelegatingSystemEventListener,
+			// we instead use what drools wraps by default, which is PrintStreamSystemEventListener.
+			// Refer to org.drools.impl.SystemEventListenerServiceImpl for more information.
+			originalSystemEventListener = new PrintStreamSystemEventListener();
+		}
 		SystemEventListenerFactory.setSystemEventListener(new LogSystemEventListener());
 		
 		// 2) start the notifier



More information about the jboss-svn-commits mailing list