Bug 852347

Summary: SudokuExample throws IllegalArgumentException
Product: [JBoss] JBoss Enterprise BRMS Platform 5 Reporter: jgargula
Component: ExamplesAssignee: Nobody <nobody>
Status: VERIFIED --- QA Contact: Martin Vecera <mvecera>
Severity: low Docs Contact:
Priority: unspecified    
Version: BRMS 5.3.0.GACC: mvecera
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
The SudokuExample threw an IllegalArgumentException when the solve button was clicked, and the solution was never submitted. The cause of the IllegalArgumentException has been fixed and the SudokuExample now works.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description jgargula 2012-08-28 09:01:49 UTC
Description of problem:
IllegalArgumentException is thrown instead of solving sudoku.

Version-Release number of selected component (if applicable):
BRMS 5.3.0.GA

How reproducible:
Follow next steps

Steps to Reproduce:
1. run runExample.sh script
2. click on SudokuExample button
3. choose menu File -> Samples -> Simple
4. press "Step" button while sudoku is not resolved
5. choose menu File -> Samples -> Hard 4
6. click "Solve" button
7. IllegalArgumentException is thrown and shown on the standard output
  
Actual results:
Thrown IllegalArgumentException

Expected results:
solved sudoku

Additional info:
After this exception no other sudoku is solved.

Comment 1 jgargula 2012-08-28 09:03:41 UTC
Stacktrace of thrown exception:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Invalid Entry Point. You updated the FactHandle on entry point 'DEFAULT' instead of 'DEFAULT'
	at org.drools.common.NamedEntryPoint.retract(NamedEntryPoint.java:527)
	at org.drools.common.AbstractWorkingMemory.retract(AbstractWorkingMemory.java:919)
	at org.drools.common.AbstractWorkingMemory.retract(AbstractWorkingMemory.java:907)
	at org.drools.impl.StatefulKnowledgeSessionImpl.retract(StatefulKnowledgeSessionImpl.java:271)
	at org.drools.examples.sudoku.Sudoku.solve(Sudoku.java:192)
	at org.drools.examples.sudoku.SudokuExample.actionPerformed(SudokuExample.java:163)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:703)
	at java.awt.EventQueue.access$000(EventQueue.java:102)
	at java.awt.EventQueue$3.run(EventQueue.java:662)
	at java.awt.EventQueue$3.run(EventQueue.java:660)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:676)
	at java.awt.EventQueue$4.run(EventQueue.java:674)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:673)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Comment 2 Geoffrey De Smet 2012-08-29 10:06:51 UTC
I got a 1 line, no risk fix for it (pushed on master and 5.4.x).

Get pm+ and dev+ and I 'll backport it to 5.3.x.
  https://github.com/droolsjbpm/drools/commit/83d945e6e365f52d474317da46ba1d49ecec00c1

Comment 3 Geoffrey De Smet 2012-08-29 12:46:30 UTC
Backported to 5.3.x:
  https://github.com/droolsjbpm/drools/commit/f555d1da6416f1ad776d507c812d0fe5f29d889f

Comment 4 lcarlon 2012-10-18 04:47:44 UTC
The doc text has been edited for inclusion in the release notes. Thanks for providing the text, Geoffrey.

- Lee