Skip to content

Conversation

@SiboVG
Copy link
Member

@SiboVG SiboVG commented Jul 28, 2022

This PR fixes #1558 by restoring focus to the motors, recovery, stage and simulation table after a table action (e.g. after resetting the motor ignition or removing a configuration).

While working on this PR, I also implemented two new things, one thing that should have been there for a long time, and another that may need some approval.

  1. If you now click outside of the rows of a table (motor config, recovery config, stage config or sim table) in the leftover blank space, the table will clear its selection. (This is the part that IMO should have been implemented for a long time).
  2. If you switch to a new tab in the main window's tabbed panel (with Rocket design, Motors & Configuration, and Flight simulations), the focus is now automatically set to that tab's table.
    2.1. If you are in the rocket design tab and switch to the motors & config tab, and the Motors tab is selected, the motor configurations table will gain focus. If the recovery tab would have been active previously, the recovery table would have gained focus. Analogous behavior for the stage config.
    2.2 If you switch to the sim tab, the sim table will gain focus.

The second change I'd like feedback on. It was something I felt makes sense: switching to a certain tab puts focus on the GUI element that you will be working in.

SiboVG added 9 commits July 28, 2022 00:48
(I'm doing this for a later commit I will push in this PR)
Move DesignPanel into separate file
# Conflicts:
#	swing/src/net/sf/openrocket/gui/main/BasicFrame.java
#	swing/src/net/sf/openrocket/gui/main/SimulationPanel.java
@hcraigmiller
Copy link
Collaborator

hcraigmiller commented Jul 29, 2022

Focus is not restored after running a simulation.

Unexpected Behavior

  1. Open an example and go straight to the Flight simulations tab.
  2. Simulation 1 will be in focus, and left-click Run simulations to re-run that simulation (the simulation remains highlighted after being re-run and may be re-run any number of times without re-selecting the simulation).
  3. Press Ctrl+A results in no selection; unexpected behavior, the expected bahavior would be to select all simulations.
  4. Left-click on any simulation, including Simulation 1.
  5. Press Ctrl+A results in selection of all simulations, this is the expected bahavior.

Other behaviors:

  • [If you now click outside of the rows of a table (motor config, recovery config, stage config or sim table) in the leftover blank space, the table will clear its selection.] Functions as expected, no anomalies found.

  • [If you are in the rocket design tab and switch to the motors & config tab, and the Motors tab is selected, the motor configurations table will gain focus. If the recovery tab would have been active previously, the recovery table would have gained focus. Analogous behavior for the stage config.] Actual behavior; if a table does not have focus (clicked outside to remove it), then you go to the design tab and return, the table will not be in focus (functions as expected); if a table is in focus (clicked on one element), then you go to the design tab and return, the table will still be in focus (functions as expected); motors, recovery, and stages focus are linked if each is focused, tabs all focus on the last configuration selected on any of the three tabs (functions as expected); if one of the motors, recovery, and stages are not in focus, and focus on another tab is changed, the tab not in focus is not linked and does not select the new focus (unexpected bahavior; focusing one of the three tabs should focus all of the three tabs on the same configuration, and removing focus from one of the three tabs should remove focus from all of the three tabs).

  • Actual behavior; if a simulation has focus (clicked on a simulation other than the first simulation), then you go to the design tab and return, the simulation has focus, but that focus has changed to the fist simulation. I consider the expected behavior to be a return of focus to the simulation that was in focus at the time the design tab was selected.

Overall, I believe these changes are looking very helpful.

Build 845
[Windows 11 Pro; Version 21H2; OS Build 22000.739; Windows Feature Experience Pack 1000.22000.739.0]
[Java "11.0.15" 2022-04-19 LTS; Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149)]

@SiboVG
Copy link
Member Author

SiboVG commented Jul 29, 2022

3. Press Ctrl+A results in no selection; unexpected behavior, the expected bahavior would be to select all simulations.

Fixed with the latest commits

  • Actual behavior; if a simulation has focus (clicked on a simulation other than the first simulation), then you go to the design tab and return, the simulation has focus, but that focus has changed to the fist simulation. I consider the expected behavior to be a return of focus to the simulation that was in focus at the time the design tab was selected.

Also fixed with the latest commits

  • if one of the motors, recovery, and stages are not in focus, and focus on another tab is changed, the tab not in focus is not linked and does not select the new focus (unexpected bahavior; focusing one of the three tabs should focus all of the three tabs on the same configuration, and removing focus from one of the three tabs should remove focus from all of the three tabs).

Still working on this one

Thanks for the thorough testing!

@SiboVG
Copy link
Member Author

SiboVG commented Jul 30, 2022

Still working on this one

Should now be fixed in the latest commit. Behavior, with the example scenario of first being in the motors config tab:

  • Clear the selection in the motors config table => selection in recovery and stage table also cleared
  • Selecting a row, different from the current flight configuration changes the rocket's current flight config to that of the selected row => selects the same row in the other tables (= behavior of the current unstable, I didn't alter this)
  • Clear the selection and reselect the row of the current configuration => selects the same row in the other tables. The second column of the table is used for the selection in the other tables.

@hcraigmiller
Copy link
Collaborator

hcraigmiller commented Jul 30, 2022

As to the Motor and Configuration tab and sub-menus, functions as described and expected, no anomalies found.
As to the Flight simulations tab and sub-menus, functions as described and expected, no anomalies found.

But, as between the Motor and Configuration tab and Flight simulations tab, changes on the Motor and Configuration tab sub-menues causes the flight simulation focus to shift. Follow these steps:

  1. Open the three-stage example and go directly to the Flight simulations tab, then focus on Simulation 3.
  2. Left-click on the Motor and Configuration tab, then left-click on Stages tab. Focus on configuration 3, left (stage 2) upper stage ignition.
  3. Left-click on Recovery tab. Focus on configuration 2, ejection charge.
  4. Left-click on Motors tab. Focus on configuration 3, left C6-7 automatic.
  5. Return to Flight simulations tab. Unexpected behavior: Focus is now on Simulation 1.

It may be able to be done with fewer steps, but the above seems to cause it every time. Is this part of this PR or a new issue?

Build 851
[Windows 11 Pro; Version 21H2; OS Build 22000.739; Windows Feature Experience Pack 1000.22000.739.0]
[Java "11.0.15" 2022-04-19 LTS; Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149)]

@hcraigmiller
Copy link
Collaborator

Works beautifully. No anomolies found. This is a really nice improvement.

Build 853
[Windows 11 Pro; Version 21H2; OS Build 22000.739; Windows Feature Experience Pack 1000.22000.739.0]
[Java "11.0.15" 2022-04-19 LTS; Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149)]

@SiboVG
Copy link
Member Author

SiboVG commented Jul 30, 2022

Well there's still one bug: highlighting a stage's components is broken, but I'm working on it.

@hcraigmiller
Copy link
Collaborator

I'm not seeing that. How is it triggered?

@SiboVG
Copy link
Member Author

SiboVG commented Jul 30, 2022

I'm not seeing that. How is it triggered?

If you open for example 'A simple model rocket', when you select the sustainer in the component tree, all the components in the design view should be selected, which is now not the case anymore.

@hcraigmiller
Copy link
Collaborator

I see that now. The same is true if you select the entire rocket.

@hcraigmiller
Copy link
Collaborator

hcraigmiller commented Jul 30, 2022

Using three-stage rocket example.

  • Rocket tree focus: Confirmed
  • Stage tree focus: Confirmed
  • Components tree focus: Confirmed
  • Motors & Configurations, Motors tab: Unexpected bahvior; Open example and go to Motors and Configuration tab, Motors tab, left-click first configuration "Configuration" cell (focus is on cell), shift-left-click second configuration "Configuration" cell (focus is on first and second "Configuration" cells), shift-left-click third configuration "Configuration" cell (third cell is momentarily brought into three-cell focus before dropping out, leaving focus on first and second "Configuration" cells), [Last Step] left-click blank area and first configuration "Configuration" cell is left in focus, [Alternative Last Step] left-click configuration 3 right-most cell, this brings that cell into focus with the first configuration "Configuration" cell being left in focus. This behavior can be replicated on all three Motor, Recovery, and Stages tabs.
  • Motors & Configurations tabs: Functions as expected, no anomalies found (Note: tab key does not change focus on this tab, but never has.)
  • Inter-relationshipe between Motors & Configurations tabs: Functions as expected, no anomalies found

No other anomalied found.

Build 854
[Windows 11 Pro; Version 21H2; OS Build 22000.739; Windows Feature Experience Pack 1000.22000.739.0]
[Java "11.0.15" 2022-04-19 LTS; Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149)]

@SiboVG
Copy link
Member Author

SiboVG commented Jul 31, 2022

  • Motors & Configurations, Motors tab: Unexpected bahvior; Open example and go to Motors and Configuration tab, Motors tab, left-click first configuration "Configuration" cell (focus is on cell), shift-left-click second configuration "Configuration" cell (focus is on first and second "Configuration" cells), shift-left-click third configuration "Configuration" cell (third cell is momentarily brought into three-cell focus before dropping out, leaving focus on first and second "Configuration" cells), [Last Step] left-click blank area and first configuration "Configuration" cell is left in focus, [Alternative Last Step] left-click configuration 3 right-most cell, this brings that cell into focus with the first configuration "Configuration" cell being left in focus. This behavior can be replicated on all three Motor, Recovery, and Stages tabs.

Working on it...

@hcraigmiller
Copy link
Collaborator

Unexpected bahvior persists [Using three-stage rocket example].

  • Rocket tree focus: Confirmed
  • Stage tree focus: Confirmed
  • Components tree focus: Confirmed
  • Motors & Configurations, Motors tab: Unexpected bahvior persists; Open example and go to Motors and Configuration tab, Motors tab, left-click first configuration "Configuration" cell (focus is on cell), shift-left-click second configuration "Configuration" cell (focus is on first and second "Configuration" cells), shift-left-click third configuration "Configuration" cell (third cell is momentarily brought into three-cell focus before dropping out, leaving focus on first and second "Configuration" cells), [Last Step] left-click blank area and first configuration "Configuration" cell is left highlighted but not in focus, [Alternative Last Step] left-click configuration 3 right-most cell, this brings that cell into focus with the first configuration "Configuration" cell being highlighted but not in focus. This behavior can be replicated on all three Motor, Recovery, and Stages tabs.

Build 859
[Windows 11 Pro; Version 21H2; OS Build 22000.739; Windows Feature Experience Pack 1000.22000.739.0]
[Java "11.0.15" 2022-04-19 LTS; Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149)]

@SiboVG
Copy link
Member Author

SiboVG commented Jul 31, 2022

Unexpected bahvior persists [Using three-stage rocket example].

  • Rocket tree focus: Confirmed
  • Stage tree focus: Confirmed
  • Components tree focus: Confirmed
  • Motors & Configurations, Motors tab: Unexpected bahvior persists; Open example and go to Motors and Configuration tab, Motors tab, left-click first configuration "Configuration" cell (focus is on cell), shift-left-click second configuration "Configuration" cell (focus is on first and second "Configuration" cells), shift-left-click third configuration "Configuration" cell (third cell is momentarily brought into three-cell focus before dropping out, leaving focus on first and second "Configuration" cells), [Last Step] left-click blank area and first configuration "Configuration" cell is left highlighted but not in focus, [Alternative Last Step] left-click configuration 3 right-most cell, this brings that cell into focus with the first configuration "Configuration" cell being highlighted but not in focus. This behavior can be replicated on all three Motor, Recovery, and Stages tabs.

Yes, my last commits are not commits that fix that issue ;) I just pushed those commits because I was about to do some git stuff that made it more difficult to retrieve my changes if I did not first push my commits to my repo.

@SiboVG
Copy link
Member Author

SiboVG commented Aug 1, 2022

Also: said issue is already present in beta 4 (so not a direct result of this PR).

@hcraigmiller
Copy link
Collaborator

In all other ways, functions as expected, no anomalies found.

Build 859
[Windows 11 Pro; Version 21H2; OS Build 22000.739; Windows Feature Experience Pack 1000.22000.739.0]
[Java "11.0.15" 2022-04-19 LTS; Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149)]

@SiboVG
Copy link
Member Author

SiboVG commented Aug 1, 2022

Yes, my last commits are not commits that fix that issue ;) I just pushed those commits because I was about to do some git stuff that made it more difficult to retrieve my changes if I did not first push my commits to my repo.

Should be fixed now

@hcraigmiller
Copy link
Collaborator

All of the testinf went flawlessly until I started entering actual settings to see what effect it would have on the simulation outcomes. Then I got this:

Bug

I can replicate it, but just by fiddling around, no verifiable steps yet.

---------- Bug report ----------

Please include a description about what actions you were performing when the exception occurred:
(You can edit text directly in this window)

Include your email address (optional; it helps if we can contact you in case we need additional information):

(Do not modify anything below this line.)
---------- Exception stack trace ----------
java.lang.NullPointerException at java.base/java.util.HashSet.(HashSet.java:119) at net.sf.openrocket.gui.main.flightconfigpanel.FlightConfigurablePanel.setSelectedConfigurationIds(FlightConfigurablePanel.java:307) at net.sf.openrocket.gui.main.FlightConfigurationPanel.synchronizePanelSelection(FlightConfigurationPanel.java:320) at net.sf.openrocket.gui.main.FlightConfigurationPanel.access$400(FlightConfigurationPanel.java:42) at net.sf.openrocket.gui.main.FlightConfigurationPanel$1.stateChanged(FlightConfigurationPanel.java:136) at java.desktop/javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:418) at java.desktop/javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:269) at java.desktop/javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:143) at java.desktop/javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:74) at java.desktop/javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:622) at java.desktop/javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:597) at java.desktop/javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(BasicTabbedPaneUI.java:4090) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6400) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4544) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

---------- Thread information ----------
Thread[AWT-EventQueue-0,6,main]

---------- System information ----------
OpenRocket version: 22.02.beta.04
OpenRocket source: default
OpenRocket location: C:\Users\Tracy E. Miller\AppData\Local\Temp\Temp1_openrocket_build_863.zip\OpenRocket.jar
JOGL version: 2.4.0-rc-20210111
Current default locale: en_US
System properties:
awt.toolkit=sun.awt.windows.WToolkit
file.encoding=Cp1252
file.separator=
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.awt.printerjob=sun.awt.windows.WPrinterJob
java.class.path=C:\Users\Tracy E. Miller\AppData\Local\Temp\Temp1_openrocket_build_863.zip\OpenRocket.jar
java.class.version=55.0
java.home=C:\Program Files\Java\jdk-11.0.15
java.io.tmpdir=C:\Users\TRACYE~1.MIL\AppData\Local\Temp
java.library.path=C:\Program Files\Java\jdk-11.0.15\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Common Files\Oracle\Java\javapath;C:\WinAVR-20100110\bin;C:\WinAVR-20100110\utils\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Ant\bin;C:\Program Files\Git\cmd;C:\Program Files\PuTTY;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Users\Tracy E. Miller\AppData\Local\Microsoft\WindowsApps;C:\Users\Tracy E. Miller\AppData\Local\Microsoft\WindowsApps;C:\Users\Tracy E. Miller\AppData\Local\GitHubDesktop\bin;.
java.runtime.name=Java(TM) SE Runtime Environment
java.runtime.version=11.0.15+8-LTS-149
java.specification.name=Java Platform API Specification
java.specification.vendor=Oracle Corporation
java.specification.version=11
java.util.Arrays.useLegacyMergeSort=true
java.vendor=Oracle Corporation
java.vendor.url=https://openjdk.java.net/
java.vendor.url.bug=https://bugreport.java.com/bugreport/
java.vendor.version=18.9
java.version=11.0.15
java.version.date=2022-04-19
java.vm.compressedOopsMode=32-bit
java.vm.info=mixed mode
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Oracle Corporation
java.vm.specification.version=11
java.vm.vendor=Oracle Corporation
java.vm.version=11.0.15+8-LTS-149
jdk.debug=release
jnlp.jogamp.tmp.cache.root=jln12834817390343186808
line.separator=\u000d\u000a
os.arch=amd64
os.name=Windows 11
os.version=10.0
path.separator=;
sun.arch.data.model=64
sun.awt.enableExtraMouseButtons=true
sun.awt.exception.handler=net.sf.openrocket.gui.main.SwingExceptionHandler$AwtHandler
sun.boot.library.path=C:\Program Files\Java\jdk-11.0.15\bin
sun.cpu.endian=little
sun.cpu.isalist=amd64
sun.desktop=windows
sun.io.unicode.encoding=UnicodeLittle
sun.java.command=C:\Users\Tracy E. Miller\AppData\Local\Temp\Temp1_openrocket_build_863.zip\OpenRocket.jar
sun.java.launcher=SUN_STANDARD
sun.jnu.encoding=Cp1252
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
sun.os.patch.level=
user.country=US
user.dir=C:\WINDOWS\system32
user.home=C:\Users\Tracy E. Miller
user.language=en
user.name=Tracy E. Miller
user.script=
user.timezone=America/Los_Angeles
user.variant=
---------- Error log ----------
61508 152.385 ERROR (SwingExceptionHandler.java:48) Handling uncaught exception on thread=Thread[AWT-EventQueue-0,6,main]

java.lang.NullPointerException > at java.base/java.util.HashSet.(HashSet.java:119) > at net.sf.openrocket.gui.main.flightconfigpanel.FlightConfigurablePanel.setSelectedConfigurationIds(FlightConfigurablePanel.java:307) > at net.sf.openrocket.gui.main.FlightConfigurationPanel.synchronizePanelSelection(FlightConfigurationPanel.java:320) > at net.sf.openrocket.gui.main.FlightConfigurationPanel.access$400(FlightConfigurationPanel.java:42) > at net.sf.openrocket.gui.main.FlightConfigurationPanel$1.stateChanged(FlightConfigurationPanel.java:136) > at java.desktop/javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:418) > at java.desktop/javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:269) > at java.desktop/javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:143) > at java.desktop/javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:74) > at java.desktop/javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:622) > at java.desktop/javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:597) > at java.desktop/javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(BasicTabbedPaneUI.java:4090) > at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632) > at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) > at java.desktop/java.awt.Component.processEvent(Component.java:6400) > at java.desktop/java.awt.Container.processEvent(Container.java:2263) > at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011) > at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) > at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) > at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) > at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4544) > at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) > at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) > at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772) > at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) > at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) > at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) > at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) > at java.base/java.security.AccessController.doPrivileged(Native Method) > at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) > at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) > at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) > at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) > at java.base/java.security.AccessController.doPrivileged(Native Method) > at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) > at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) > at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) > at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) > at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) > at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) > at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) > at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
61545 0.000 STDERR (-) ===== 36 STDERR lines removed =====
61545 152.401 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
61546 152.401 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
61547 152.401 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
61548 152.401 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
61549 152.401 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
61550 152.401 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
61551 152.401 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
61554 200.701 USER (SwingExceptionHandler.java:215) User chose not to fill bug report
91622 474.824 USER (DoubleModel.java:111) SpinnerModel setValue called for DoubleModel[StageSeparationConfiguration:SeparationDelay] newValue=1.0 converted=1.0
97194 0.000 INFO (-) ===== 261 INFO lines removed =====
97194 476.414 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Sustainer curTime:154.89747715479956 finTime:154.89747715479956
97195 476.414 INFO (BasicEventSimulationEngine.java:90) >>Starting simulation of branch: Booster stage
98509 476.445 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Booster stage curTime:25.575030610563925 finTime:25.575030610563925
98510 476.445 INFO (BasicEventSimulationEngine.java:90) >>Starting simulation of branch: Booster stage
99727 476.492 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Booster stage curTime:17.018076676841062 finTime:17.018076676841062
99740 479.473 INFO (BasicEventSimulationEngine.java:90) >>Starting simulation of branch: Sustainer
99741 479.473 INFO (BasicEventSimulationEngine.java:90) >>Starting simulation of branch: Sustainer
99748 479.473 INFO (BasicEventSimulationEngine.java:293) Queueing Ignition Event for: Inner Tube/90145d0d / B6 - Armed @: 0.0
99749 479.473 INFO (BasicEventSimulationEngine.java:293) Queueing Ignition Event for: Inner Tube/90145d0d / B6 - Armed @: 0.0
99758 479.473 INFO (BasicEventSimulationEngine.java:364) Igniting motor: Inner Tube/90145d0d / B6 - Armed @0.0
99759 479.473 INFO (BasicEventSimulationEngine.java:364) Igniting motor: Inner Tube/90145d0d / B6 - Armed @0.0
100662 479.551 INFO (BasicEventSimulationEngine.java:293) Queueing Ignition Event for: Inner Tube/9c7c8b9f / B6 - Armed @: 0.8586167592227402
100668 479.551 INFO (BasicEventSimulationEngine.java:364) Igniting motor: Inner Tube/9c7c8b9f / B6 - Armed @0.8586167592227402
100680 479.551 INFO (BasicEventSimulationEngine.java:449) ==>> @ 0.858617; from Branch: Sustainer ---- Branching: Booster stage ----

100702 479.551 INFO (BasicEventSimulationEngine.java:293) Queueing Ignition Event for: Inner Tube/9c7c8b9f / B6 - Armed @: 0.857
100710 479.551 INFO (BasicEventSimulationEngine.java:364) Igniting motor: Inner Tube/9c7c8b9f / B6 - Armed @0.857
100714 479.551 INFO (BasicEventSimulationEngine.java:449) ==>> @ 0.857000; from Branch: Sustainer ---- Branching: Booster stage ----

101334 479.583 INFO (BasicEventSimulationEngine.java:293) Queueing Ignition Event for: Inner Tube/6b229a52 / A8 - Armed @: 1.7151763645050002
101343 479.583 INFO (BasicEventSimulationEngine.java:364) Igniting motor: Inner Tube/6b229a52 / A8 - Armed @1.7151763645050002
101355 479.583 INFO (BasicEventSimulationEngine.java:449) ==>> @ 1.71518; from Branch: Sustainer ---- Branching: Booster stage ----

101388 479.583 INFO (BasicEventSimulationEngine.java:293) Queueing Ignition Event for: Inner Tube/6b229a52 / C6 - Armed @: 1.71561675922274
101393 479.583 INFO (BasicEventSimulationEngine.java:364) Igniting motor: Inner Tube/6b229a52 / C6 - Armed @1.71561675922274
101400 479.583 INFO (BasicEventSimulationEngine.java:449) ==>> @ 1.71562; from Branch: Sustainer ---- Branching: Booster stage ----

103531 479.630 INFO (BasicEventSimulationEngine.java:90) >>Starting simulation of branch: Sustainer
103541 479.630 INFO (BasicEventSimulationEngine.java:293) Queueing Ignition Event for: Inner Tube/90145d0d / B6 - Armed @: 0.0
103547 479.630 INFO (BasicEventSimulationEngine.java:364) Igniting motor: Inner Tube/90145d0d / B6 - Armed @0.0
106193 479.677 INFO (BasicEventSimulationEngine.java:293) Queueing Ignition Event for: Inner Tube/9c7c8b9f / B6 - Armed @: 0.857
106203 479.677 INFO (BasicEventSimulationEngine.java:364) Igniting motor: Inner Tube/9c7c8b9f / B6 - Armed @0.857
106235 479.677 INFO (BasicEventSimulationEngine.java:449) ==>> @ 0.857000; from Branch: Sustainer ---- Branching: Booster stage ----

106876 479.692 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Sustainer curTime:125.93488625925275 finTime:125.93488625925275
106877 479.692 INFO (BasicEventSimulationEngine.java:90) >>Starting simulation of branch: Booster stage
107309 479.708 INFO (BasicEventSimulationEngine.java:293) Queueing Ignition Event for: Inner Tube/6b229a52 / A8 - Armed @: 1.7151763645050002
107317 479.708 INFO (BasicEventSimulationEngine.java:364) Igniting motor: Inner Tube/6b229a52 / A8 - Armed @1.7151763645050002
107324 479.708 INFO (BasicEventSimulationEngine.java:449) ==>> @ 1.71518; from Branch: Sustainer ---- Branching: Booster stage ----

108711 479.724 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Booster stage curTime:12.32888317622233 finTime:12.32888317622233
108712 479.724 INFO (BasicEventSimulationEngine.java:90) >>Starting simulation of branch: Booster stage
110068 479.771 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Booster stage curTime:5.547826916629769 finTime:5.547826916629769
110099 479.771 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Sustainer curTime:7.868320895755 finTime:7.868320895755
110100 479.771 INFO (BasicEventSimulationEngine.java:90) >>Starting simulation of branch: Booster stage
111058 479.787 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Booster stage curTime:3.1079194447848604 finTime:3.1079194447848604
111059 479.787 INFO (BasicEventSimulationEngine.java:90) >>Starting simulation of branch: Booster stage
111717 479.822 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Booster stage curTime:2.2142132569097903 finTime:2.2142132569097903
112843 0.000 DEBUG (-) ===== 6414 DEBUG lines removed =====
112843 479.834 DEBUG (BasicLandingStepper.java:176) time 60.30754280423917, altitude 47.086752603229165, velocity -4.171616868650621
112849 479.834 DEBUG (BasicLandingStepper.java:176) time 60.80754280423917, altitude 45.00382950265494, velocity -4.1600755336462845
112855 479.834 DEBUG (BasicLandingStepper.java:176) time 61.24190218572624, altitude 43.1956919365008, velocity -4.16546153643523
112861 479.834 DEBUG (BasicLandingStepper.java:176) time 61.74190218572624, altitude 41.112805355534356, velocity -4.166084787430536
112867 479.834 DEBUG (BasicLandingStepper.java:176) time 62.24190218572624, altitude 39.02892180738543, velocity -4.16944940516517
112873 479.834 DEBUG (BasicLandingStepper.java:176) time 62.74190218572624, altitude 36.949027582743504, velocity -4.150127493402552
112879 479.834 DEBUG (BasicLandingStepper.java:176) time 63.16716683957834, altitude 35.17792064693714, velocity -4.179306517928754
112885 479.834 DEBUG (BasicLandingStepper.java:176) time 63.66716683957834, altitude 33.097585452571494, velocity -4.142034259533834
112891 479.834 DEBUG (BasicLandingStepper.java:176) time 64.0440043303275, altitude 31.531032032704182, velocity -4.172177878716987
112897 479.834 DEBUG (BasicLandingStepper.java:176) time 64.31934927324804, altitude 30.384016651098776, velocity -4.159301678809777
112903 479.834 DEBUG (BasicLandingStepper.java:176) time 64.67464647547116, altitude 28.904533569800638, velocity -4.168842038848844
112909 479.834 DEBUG (BasicLandingStepper.java:176) time 65.17464647547116, altitude 26.82588295419849, velocity -4.145760423559739
112915 479.834 DEBUG (BasicLandingStepper.java:176) time 65.67464647547116, altitude 24.74193340697046, velocity -4.190037765352392
112921 479.834 DEBUG (BasicLandingStepper.java:176) time 66.17464647547116, altitude 22.662429254143287, velocity -4.127978845956302
112927 479.834 DEBUG (BasicLandingStepper.java:176) time 66.67464647547116, altitude 20.584158083313273, velocity -4.185105837363764
112933 479.834 DEBUG (BasicLandingStepper.java:176) time 66.9874360775928, altitude 19.280818450373996, velocity -4.148544796153369
112939 479.834 DEBUG (BasicLandingStepper.java:176) time 67.4874360775928, altitude 17.19932816568093, velocity -4.17741634261889
112945 479.834 DEBUG (BasicLandingStepper.java:176) time 67.9874360775928, altitude 15.119265595628077, velocity -4.142833937592527
112951 479.834 DEBUG (BasicLandingStepper.java:176) time 68.4874360775928, altitude 13.037217956535969, velocity -4.185356618775905
112957 479.834 DEBUG (BasicLandingStepper.java:176) time 68.9874360775928, altitude 10.958705766149986, velocity -4.12869214276802
112963 479.834 DEBUG (BasicLandingStepper.java:176) time 69.4874360775928, altitude 8.87511072995969, velocity -4.205688001993159
112969 479.834 DEBUG (BasicLandingStepper.java:176) time 69.9874360775928, altitude 6.8006216135317725, velocity -4.092268463718511
112975 479.834 DEBUG (BasicLandingStepper.java:176) time 70.34062711178215, altitude 5.337049656539857, velocity -4.195438840919614
112981 479.834 DEBUG (BasicLandingStepper.java:176) time 70.68204199289218, altitude 3.9143733944352985, velocity -4.1385638099261195
112987 479.834 DEBUG (BasicLandingStepper.java:176) time 71.18204199289218, altitude 1.8328267131991818, velocity -4.1876229150183475
112993 479.834 DEBUG (BasicLandingStepper.java:176) time 71.62287256870296, altitude 0.0, velocity -4.127710974098818
113007 479.834 DEBUG (SimulationRunDialog.java:454) END, setting progress
113008 479.834 DEBUG (SimulationRunDialog.java:424) Setting progress to 100 (real 100)
113010 479.834 DEBUG (FlightData.java:251) Computed flight values: maxAltitude=266.1947546909112 maxVelocity=77.71924505651602 maxAcceleration=124.1076009123468 maxMachNumber=0.2296712929321787 timeToApogee=7.658362467046514 flightTime=71.62287256870296 groundHitVelocity=4.127715567213139 launchRodVelocity=11.142833320212794
113011 479.834 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Sustainer curTime:71.62287256870296 finTime:71.62287256870296
113012 479.834 INFO (BasicEventSimulationEngine.java:90) >>Starting simulation of branch: Booster stage
113926 479.865 DEBUG (SimulationRunDialog.java:367) Method 3: alt=60.487317734543815 apogee=266.1722478631614
113927 479.865 DEBUG (SimulationRunDialog.java:424) Setting progress to 100 (real 100)
113929 479.865 DEBUG (SimulationRunDialog.java:236) Progressbar value 100
113962 479.865 DEBUG (SimulationRunDialog.java:444) APOGEE, setting progress
113963 479.865 DEBUG (SimulationRunDialog.java:424) Setting progress to 100 (real 100)
114132 479.865 DEBUG (SimulationRunDialog.java:454) END, setting progress
114133 479.865 DEBUG (SimulationRunDialog.java:424) Setting progress to 100 (real 100)
114135 479.865 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Booster stage curTime:12.626302401586962 finTime:12.626302401586962
114136 479.865 INFO (BasicEventSimulationEngine.java:90) >>Starting simulation of branch: Booster stage
114777 479.881 DEBUG (SimulationRunDialog.java:444) APOGEE, setting progress
114778 479.881 DEBUG (SimulationRunDialog.java:424) Setting progress to 100 (real 100)
114856 0.000 VBOSE (-) ===== 108050 VBOSE lines removed =====
114856 479.881 VBOSE (BasicEventSimulationEngine.java:268) Remaining EventQueue = []
114857 479.881 VBOSE (BasicEventSimulationEngine.java:353) Handling event FlightEvent[type=ALTITUDE,time=3.6614758402381793,source=Three-staged rocket,data=[19.431208366032518;17.02168798919006]]
114858 479.881 VBOSE (BasicEventSimulationEngine.java:139) Taking simulation step at t=3.6614758402381793 altitude 17.02168798919006
114859 479.881 VBOSE (BasicEventSimulationEngine.java:265) HandleEvents: current branch = Booster stage
114860 479.881 VBOSE (BasicEventSimulationEngine.java:267) Obtained event from queue: FlightEvent[type=ALTITUDE,time=4.161475840238179,source=Three-staged rocket,data=[17.02168798919006;12.803983175289671]]
114861 479.881 VBOSE (BasicEventSimulationEngine.java:268) Remaining EventQueue = []
114862 479.881 VBOSE (BasicEventSimulationEngine.java:353) Handling event FlightEvent[type=ALTITUDE,time=4.161475840238179,source=Three-staged rocket,data=[17.02168798919006;12.803983175289671]]
114863 479.881 VBOSE (BasicEventSimulationEngine.java:139) Taking simulation step at t=4.161475840238179 altitude 12.803983175289671
114864 479.881 VBOSE (BasicEventSimulationEngine.java:265) HandleEvents: current branch = Booster stage
114865 479.881 VBOSE (BasicEventSimulationEngine.java:267) Obtained event from queue: FlightEvent[type=ALTITUDE,time=4.661475840238179,source=Three-staged rocket,data=[12.803983175289671;8.523057040518601]]
114866 479.881 VBOSE (BasicEventSimulationEngine.java:268) Remaining EventQueue = []
114867 479.881 VBOSE (BasicEventSimulationEngine.java:353) Handling event FlightEvent[type=ALTITUDE,time=4.661475840238179,source=Three-staged rocket,data=[12.803983175289671;8.523057040518601]]
114868 479.881 VBOSE (BasicEventSimulationEngine.java:139) Taking simulation step at t=4.661475840238179 altitude 8.523057040518601
114869 479.881 VBOSE (BasicEventSimulationEngine.java:265) HandleEvents: current branch = Booster stage
114870 479.881 VBOSE (BasicEventSimulationEngine.java:267) Obtained event from queue: FlightEvent[type=ALTITUDE,time=5.161475840238179,source=Three-staged rocket,data=[8.523057040518601;4.251271406329672]]
114871 479.881 VBOSE (BasicEventSimulationEngine.java:268) Remaining EventQueue = []
114872 479.881 VBOSE (BasicEventSimulationEngine.java:353) Handling event FlightEvent[type=ALTITUDE,time=5.161475840238179,source=Three-staged rocket,data=[8.523057040518601;4.251271406329672]]
114873 479.881 VBOSE (BasicEventSimulationEngine.java:139) Taking simulation step at t=5.161475840238179 altitude 4.251271406329672
114874 479.881 VBOSE (BasicEventSimulationEngine.java:265) HandleEvents: current branch = Booster stage
114875 479.881 VBOSE (BasicEventSimulationEngine.java:267) Obtained event from queue: FlightEvent[type=GROUND_HIT,time=5.661475840238179,source=null,data=null]
114876 479.881 VBOSE (BasicEventSimulationEngine.java:268) Remaining EventQueue = [FlightEvent[type=ALTITUDE,time=5.661475840238179,source=Three-staged rocket,data=[4.251271406329672;-0.020605210173432642]]]
114877 479.881 VBOSE (BasicEventSimulationEngine.java:353) Handling event FlightEvent[type=GROUND_HIT,time=5.661475840238179,source=null,data=null]
114878 479.881 VBOSE (GroundStepper.java:16) initializing GroundStepper
114879 479.881 VBOSE (BasicEventSimulationEngine.java:267) Obtained event from queue: FlightEvent[type=ALTITUDE,time=5.661475840238179,source=Three-staged rocket,data=[4.251271406329672;-0.020605210173432642]]
114880 479.881 VBOSE (BasicEventSimulationEngine.java:268) Remaining EventQueue = []
114881 479.881 VBOSE (BasicEventSimulationEngine.java:353) Handling event FlightEvent[type=ALTITUDE,time=5.661475840238179,source=Three-staged rocket,data=[4.251271406329672;-0.020605210173432642]]
114882 479.881 VBOSE (BasicEventSimulationEngine.java:139) Taking simulation step at t=5.661475840238179 altitude -0.020605210173432642
114883 479.881 VBOSE (GroundStepper.java:22) step: position=(0.00272,-9.15788,-0.02061), velocity=(0.00001,-2.17678,-8.54183)
114884 479.881 VBOSE (BasicEventSimulationEngine.java:265) HandleEvents: current branch = Booster stage
114885 479.881 VBOSE (BasicEventSimulationEngine.java:267) Obtained event from queue: FlightEvent[type=SIMULATION_END,time=5.661475840238179,source=null,data=null]
114886 479.881 VBOSE (BasicEventSimulationEngine.java:268) Remaining EventQueue = []
114887 479.881 DEBUG (SimulationRunDialog.java:454) END, setting progress
114888 479.881 DEBUG (SimulationRunDialog.java:424) Setting progress to 100 (real 100)
114889 479.881 VBOSE (BasicEventSimulationEngine.java:353) Handling event FlightEvent[type=SIMULATION_END,time=5.661475840238179,source=null,data=null]
114890 479.881 INFO (BasicEventSimulationEngine.java:96) <<Finished simulating branch: Booster stage curTime:5.661475840238179 finTime:5.661475840238179
114891 479.881 DEBUG (Simulation.java:378) Simulation: returning from simulator, simulation took 408ms
114892 479.912 DEBUG (SimulationRunDialog.java:367) Method 3: alt=-0.020605210173432642 apogee=25.27150479141077
114893 479.912 DEBUG (SimulationRunDialog.java:424) Setting progress to 100 (real 100)
114894 479.912 DEBUG (SimulationRunDialog.java:236) Progressbar value 100
114895 479.912 DEBUG (SimulationRunDialog.java:378) Simulation done
114896 479.912 DEBUG (SimulationRunDialog.java:424) Setting progress to 100 (real 100)
114897 479.912 DEBUG (SimulationRunDialog.java:224) Everything done.
114898 479.933 INFO (SimulationPanel.java:487) Running simulations took 460 ms
114899 479.949 DEBUG (GUIUtil.java:248) Clearing all models of window net.sf.openrocket.gui.simulation.SimulationRunDialog[dialog3,179,179,324x185,invalid,hidden,layout=java.awt.BorderLayout,APPLICATION_MODAL,title=Running simulations…,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,7,30,310x148,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
114900 479.949 DEBUG (MemoryManagement.java:56) Adding object into collectable list: net.sf.openrocket.gui.simulation.SimulationRunDialog[dialog3,179,179,324x185,invalid,hidden,layout=java.awt.BorderLayout,APPLICATION_MODAL,title=Running simulations…,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,7,30,310x148,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
114901 481.928 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114902 481.942 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114903 488.942 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114904 488.942 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114905 488.957 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114906 488.957 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114907 490.779 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114908 490.795 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114909 492.616 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114910 492.631 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114911 492.631 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114912 492.631 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114913 495.816 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114914 495.816 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114915 495.816 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114916 495.832 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114917 497.152 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114918 497.152 VBOSE (AbstractScaleFigure.java:195) ____ Updating RocketFigure to: 0.450128 user scale, 2126.59 overall scale
114919 507.418 ERROR (SwingExceptionHandler.java:48) Handling uncaught exception on thread=Thread[AWT-EventQueue-0,6,main]

java.lang.NullPointerException > at java.base/java.util.HashSet.(HashSet.java:119) > at net.sf.openrocket.gui.main.flightconfigpanel.FlightConfigurablePanel.setSelectedConfigurationIds(FlightConfigurablePanel.java:307) > at net.sf.openrocket.gui.main.FlightConfigurationPanel.synchronizePanelSelection(FlightConfigurationPanel.java:320) > at net.sf.openrocket.gui.main.FlightConfigurationPanel.access$400(FlightConfigurationPanel.java:42) > at net.sf.openrocket.gui.main.FlightConfigurationPanel$1.stateChanged(FlightConfigurationPanel.java:136) > at java.desktop/javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:418) > at java.desktop/javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:269) > at java.desktop/javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:143) > at java.desktop/javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:74) > at java.desktop/javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:622) > at java.desktop/javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:597) > at java.desktop/javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(BasicTabbedPaneUI.java:4090) > at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632) > at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) > at java.desktop/java.awt.Component.processEvent(Component.java:6400) > at java.desktop/java.awt.Container.processEvent(Container.java:2263) > at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011) > at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) > at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) > at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) > at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4544) > at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) > at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) > at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772) > at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) > at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) > at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) > at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) > at java.base/java.security.AccessController.doPrivileged(Native Method) > at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) > at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) > at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) > at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) > at java.base/java.security.AccessController.doPrivileged(Native Method) > at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) > at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) > at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) > at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) > at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) > at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) > at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) > at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
114920 507.418 STDERR (SwingExceptionHandler.java:49) java.lang.NullPointerException
114921 507.418 STDERR (SwingExceptionHandler.java:49) at java.base/java.util.HashSet.(HashSet.java:119)
114922 507.418 STDERR (SwingExceptionHandler.java:49) at net.sf.openrocket.gui.main.flightconfigpanel.FlightConfigurablePanel.setSelectedConfigurationIds(FlightConfigurablePanel.java:307)
114923 507.418 STDERR (SwingExceptionHandler.java:49) at net.sf.openrocket.gui.main.FlightConfigurationPanel.synchronizePanelSelection(FlightConfigurationPanel.java:320)
114924 507.418 STDERR (SwingExceptionHandler.java:49) at net.sf.openrocket.gui.main.FlightConfigurationPanel.access$400(FlightConfigurationPanel.java:42)
114925 507.418 STDERR (SwingExceptionHandler.java:49) at net.sf.openrocket.gui.main.FlightConfigurationPanel$1.stateChanged(FlightConfigurationPanel.java:136)
114926 507.418 STDERR (SwingExceptionHandler.java:49) at java.desktop/javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:418)
114927 507.418 STDERR (SwingExceptionHandler.java:49) at java.desktop/javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:269)
114928 507.418 STDERR (SwingExceptionHandler.java:49) at java.desktop/javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:143)
114929 507.418 STDERR (SwingExceptionHandler.java:49) at java.desktop/javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:74)
114930 507.418 STDERR (SwingExceptionHandler.java:49) at java.desktop/javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:622)
114931 507.418 STDERR (SwingExceptionHandler.java:49) at java.desktop/javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:597)
114932 507.418 STDERR (SwingExceptionHandler.java:49) at java.desktop/javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(BasicTabbedPaneUI.java:4090)
114933 507.418 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632)
114934 507.418 STDERR (SwingExceptionHandler.java:49) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
114935 507.418 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.Component.processEvent(Component.java:6400)
114936 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.Container.processEvent(Container.java:2263)
114937 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
114938 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
114939 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
114940 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
114941 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4544)
114942 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
114943 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
114944 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
114945 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
114946 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
114947 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
114948 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
114949 507.434 STDERR (SwingExceptionHandler.java:49) at java.base/java.security.AccessController.doPrivileged(Native Method)
114950 507.434 STDERR (SwingExceptionHandler.java:49) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
114951 507.434 STDERR (SwingExceptionHandler.java:49) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
114952 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
114953 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
114954 507.434 STDERR (SwingExceptionHandler.java:49) at java.base/java.security.AccessController.doPrivileged(Native Method)
114955 507.434 STDERR (SwingExceptionHandler.java:49) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
114956 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
114957 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
114958 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
114959 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
114960 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
114961 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
114962 507.434 STDERR (SwingExceptionHandler.java:49) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
114963 507.434 INFO (SwingExceptionHandler.java:61) Exception handler running on EDT, showing dialog
114964 507.434 INFO (SwingExceptionHandler.java:201) Showing Exception dialog
114965 511.035 USER (SwingExceptionHandler.java:220) User requested sending bug report
114966 511.051 DEBUG (JarUtil.java:40) Found jar file using codeSource
---------- End of bug report ----------

@SiboVG SiboVG marked this pull request as draft August 1, 2022 21:08
@SiboVG
Copy link
Member Author

SiboVG commented Aug 1, 2022

Thanks for testing... Fixed in the last commit.

@SiboVG SiboVG marked this pull request as ready for review August 1, 2022 21:10
@SiboVG
Copy link
Member Author

SiboVG commented Aug 1, 2022

Christ, this has been a tough one to get out. Again, thanks for stress testing it @hcraigmiller

@hcraigmiller
Copy link
Collaborator

Functions as expected, no anomalies found (using three-stage rocket example).

  • Rocket tree focus: Confirmed
  • Stage tree focus: Confirmed
  • Components tree focus: Confirmed
  • Motors & Configurations focus, Motors tab: Confirmed
  • Flight simulations focus: Confirmed

Build 883
[Windows 11 Pro; Version 21H2; OS Build 22000.739; Windows Feature Experience Pack 1000.22000.739.0]
[Java "11.0.15" 2022-04-19 LTS; Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149)]

@SiboVG
Copy link
Member Author

SiboVG commented Aug 22, 2022

To boil this long PR thread down, here's a summary of what this PR changed (in case @neilweinstock wants to give it a final check):

  • If you now click outside of the rows of a table (motor config, recovery config, stage config or sim table) in the leftover blank space, the table will clear its selection.
  • If you switch to a new tab in the main window's tabs ("Rocket design", "Motors & Configuration", and "Flight simulations"), the focus is now automatically set to that tab's table.
    • If you are in the rocket design tab and switch to the motors & config tab, and the Motors tab is selected, the motor configurations table will gain focus. If the recovery tab would have been active previously, the recovery table would have gained focus. Analogous behavior for the stage config.
    • If you switch to the sim tab, the sim table will gain focus.
  • The config selection between the sub-tabs in the "Motors & Configuration" tab (Motors, Recovery and Stages tab) is also synced. If you select config 1 in the motors tab, config 1 will also be selected in the recovery tab and stages tab.
  • Instead of only reselecting a table row after an action (e.g. after you edited a simulation), the table now also regains focus (fixes Bug: Restore focus to motors, recovery, stage and simulation table after table action #1558)

Just took a while to get there bug-free 🙃, hence the lengthy discussion.

Demo:

Screen.Recording.2022-08-22.at.12.30.26.mp4

@neilweinstock
Copy link
Contributor

Just put it through its paces... this is wonderful. Nice job. And thanks also to @hcraigmiller for sticking with it on testing this one.

@neilweinstock neilweinstock merged commit 26fbb73 into openrocket:unstable Aug 23, 2022
@SiboVG SiboVG deleted the issue-1558 branch September 30, 2022 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: Restore focus to motors, recovery, stage and simulation table after table action

3 participants