I can agree that the use of a system property is perhaps not the most beautiful solution. But I think most users could live with the limitation that "Debug As -> Drools Application" in Eclipse only works if one does not modify the knowledge base from multiple concurrent threads.

I should also mention that this fix only restores debugging for single-consequence rules. During the time the debugger has been broken "named consequences" have been added to Drools, so the Drools debugger would need to be updated to handle those also.

My initial plan was to try to reconnect the debugger with the generated class name but I found no way to do that. The problem is that Eclipse debugger needs to now in advance, while configuring breakpoints, the class name of of the rule consequence. This logic takes place in a separate JVM from the actual debug session. The code changes that were made for https://issues.jboss.org/browse/JBRULES-3267 made the class names completely random which makes it impossible to know the name of the class beforehand.

I hope you find a way to fix this problem. Let me know if I can help in any way.