Bug 3921

Summary: "Process picker" crashes and prints error
Product: frysk Reporter: Mike Cvet <mcvet>
Component: generalAssignee: Mike Cvet <mcvet>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:
Bug Depends on:    
Bug Blocks: 1632    

Description Mike Cvet 2007-01-25 21:20:00 UTC
If opened, closed, and then opened again, the picker is blank; attempting to 
close it again results in:

java.lang.Exception: gtk_scrolled_window_add_with_viewport: assertion `GTK_BIN 
(bin->child)->child == NULL' failed
   at org.gnu.glib.GObject.printStackTrace(libgtkjava-2.8.so)
   at 
org.gnu.gtk.ScrolledWindow.gtk_scrolled_window_add_with_viewport(libgtkjava-
2.8.so)
   at frysk.gui.monitor.MainWindow$2.run(FryskGui)
   at org.gnu.glib.CustomEvents.runEvents(libgtkjava-2.8.so)
   at org.gnu.gtk.Gtk.gtk_main(libgtkjava-2.8.so)
   at frysk.gui.Gui.gui(FryskGui)
   at frysk.gui.FryskGui.main(FryskGui)
Comment 1 Mike Cvet 2007-01-25 21:22:07 UTC
Attempting to open it again then gives:

java.lang.NullPointerException
   at org.gnu.glib.GObject.addEventHandler(libgtkjava-2.8.so)
   at org.gnu.glib.EventMap.initialize(libgtkjava-2.8.so)
   at org.gnu.glib.EventMap.initialize(libgtkjava-2.8.so)
   at org.gnu.gtk.Widget.addListener(libgtkjava-2.8.so)
   at frysk.gui.sessions.ProcessPicker.setListeners(FryskGui)
   at frysk.gui.sessions.ProcessPicker.checkSession(FryskGui)
   at frysk.gui.SessionManagerGui.openSession(FryskGui)
   at frysk.gui.SessionManagerGui$11.buttonEvent(FryskGui)
   at org.gnu.gtk.Button.fireButtonEvent(libgtkjava-2.8.so)
   at org.gnu.gtk.Button.handleClick(libgtkjava-2.8.so)
   at org.gnu.gtk.Gtk.gtk_main(libgtkjava-2.8.so)
   at frysk.gui.Gui.gui(FryskGui)
   at frysk.gui.FryskGui.main(FryskGui)
Comment 2 Mike Cvet 2007-02-06 16:54:06 UTC
Log message:
	frysk-gui/frysk/gui/monitor:
	2007-02-06  Mike Cvet  <mcvet@redhat.com>

frysk-gui/frysk/gui:
	2007-02-06  Mike Cvet  <mcvet@redhat.com>
	
	* SessionManagerGui.java (previousSession): Removed.
	(debugSingleProcess): Ditto.
	(debugSingleProcessAction): Ditto.
	(processPicker): Ditto.
	(getDebugSingleProcess): Ditto.
	(setButtonStates): Removed references to debugging state.
	(getSessionManagementControls): Removed references to RadioButtons.
	(openSession): No longer initializes a ProcessPicker, builds a Terminal,
	or handles popup windows. Hands the selected process to the druid. Fixes
	#3978, #3921.
	* druid/CreateFryskSessionDruid.java (debugButton): Added.
	(loadSession): Ditto.
	(setNewSession): Make sure to enable 'quick debug' button. Fixes #3922.
	(setEditSessionMode): Collects all DebugProcesses and Observers from
	saved session; add all currently-running processes of the same name as
	saved processes to the current session. Also add all saved observers to
	all DebugProcesses.
	(loadSessionMode): Added. Functionally similar to setEditSessionMode(),
	makes safe assumptions about saved process and observer combinations.
	Linked directly to the monitor window. Fixes #3978.
	(filterDataInSession): Re-arranged to work with the elimination of
	generic process groups.
	(setTreeSelected): Removed redundant parameter.
	(addProcessParent): Cleaned up.
	(changeGroupState): Removed two of three scenarios due to the 
elimination
	of process groups. Extensively cleaned up to work with new 
implementation.
	(setProcessNext): Made aware that the druid now loads sessions as well.
	(getProcessSelectionControls): Removed references to process groups. 
Tells
	the ListView to watch GuiProcs instead of DebugProcesses. Null checks,
	fixes #3931. Search for specific processes using PIDs.
	(getProcessObserverControls): Tells the ListView to watch GuiProcs 
instead
	of DebugProcesses.
	(getDruidStructureControls): Added code for debugging button. The finish
	button now sets up the terminal and session for the monitor window.
	(attachLinkedListsToWidgets): Watch GuiProcs instead of DebugProcesses.
	(setUpCurrentPage): Set next button sensitive with page 0, fixes button 
bug.
	* gladedir/frysk_create_session_druid.glade: Resized, added button for
	launching the SourceWindow.
	* gladedir/frysk_session_manager.glade: Removed radio buttons and
	SourceWindow launch button.
	* sessions/DebugProcess.java (addObservers): Iterate through the 'procs'
	LinkedList rather than 'allProcsList' to add the observers.
	* sessions/Session.java: Applied GNU formatting.
	(clearProcesses): Added. Removes all DebugProcesses from the global 
list.
	* sessions/SessionManager.java: Applied GNU formatting.