ImpulseAdventure / GUIslice-Builder

Cross-platform drag & drop GUI builder for GUIslice
Other
167 stars 35 forks source link

OSX 13.2 - Fatal error when changing E_PROJECT OPTIONS #250

Closed joostplas closed 8 months ago

joostplas commented 8 months ago

Describe the bug Whenever I try to change a setting, the app crashes with a fatal error. This happens both in the E_PROJECT OPTIONS and the more general 'EDIT > OPTIONS".

It doesn't happen for all settings. I believe (also looking at the error), the app crashes when the field has a dropdown / predefined value list behind it.

Any tips how I can resolve this? Is this a problem with my specific version of Java, OSX or the builder?

To Reproduce Steps to reproduce the behavior:

  1. Create a new project
  2. Click on E_PROJECT_OPTIONS
  3. Click on "Graphics Library > Adafruit GFX"
  4. Observe fatal error and app crash

Crash log / Project files class java.lang.NullPointerException: Cannot invoke "javax.swing.border.Border.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int)" because the return value of "com.apple.laf.AquaMenuPainter$RecyclableBorder.get()" is null java.desktop/com.apple.laf.AquaMenuPainter.paintSelectedMenuItemBackground(AquaMenuPainter.java:157) java.desktop/com.apple.laf.AquaComboBoxRendererInternal.paintComponent(AquaComboBoxRendererInternal.java:147) java.desktop/javax.swing.JComponent.paint(JComponent.java:1128) java.desktop/javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:170) java.desktop/javax.swing.plaf.basic.BasicListUI.paintCell(BasicListUI.java:293) java.desktop/javax.swing.plaf.basic.BasicListUI.paintImpl(BasicListUI.java:383) java.desktop/javax.swing.plaf.basic.BasicListUI.paint(BasicListUI.java:306) java.desktop/javax.swing.plaf.ComponentUI.update(ComponentUI.java:161) java.desktop/javax.swing.JComponent.paintComponent(JComponent.java:852) java.desktop/javax.swing.JComponent.paint(JComponent.java:1128) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JViewport.paint(JViewport.java:736) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:586) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5325) java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1656) java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1631) java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1569) java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1336) java.desktop/javax.swing.JComponent.paint(JComponent.java:1114) java.desktop/java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39) java.desktop/sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:75) java.desktop/sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:112) java.desktop/java.awt.Container.paint(Container.java:2005) java.desktop/java.awt.Window.paint(Window.java:3959) java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:889) java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:861) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:861) java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:834) java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:784) java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1897) java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234) java.base/java.security.AccessController.doPrivileged(AccessController.java:318) java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234) java.desktop/java.awt.Dialog.show(Dialog.java:1080) java.desktop/javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:881) java.desktop/javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:677) java.desktop/javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:648) builder@0.17.b25/builder.Builder$2.uncaughtException(Builder.java:300) java.base/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1083) java.base/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1078) java.desktop/java.awt.EventDispatchThread.processException(EventDispatchThread.java:222) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:214) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Version

Pconti31 commented 8 months ago

@joostplas This is the problem with trying to support a platform I don't own :) From the trace back It looks to me that the Builder is using the built in theme AquaLookAndFeel instead of one of the JFormDesigner/FlatLaf and this theme isn't working correctly.

Forcing builder to use one of the FlatLaf themes might fix your problem but currently the only way to do that is through the edit->options which is crashing. Hmmm....

This is only a guess of course.

First did you manually change themes or did the builder simply startup this way? Based upon your answer I'll try and come up with a work-around... Paul--

joostplas commented 8 months ago

Thanks for the quick reply!

I didn’t change any of the themes. This happens after a fresh install.

I assume there is no config file which I can edit to manually change the used theme?

Pconti31 commented 8 months ago

@joostplas Maybe there is something you can edit. I think your preferences should be stored in either ~/Library/Preferences/ or /Library/Preferences/

Now either the file will be com.apple.java.util.prefs or a bunch of *.plist files. For instance, if you have a node /a/b/c, the key/value pairs for that node may be stored in a.b.c.plist.

The key we want is:

\com\impulseadventure\builder\general-16\

Now your Java Themes= should be blank so we should first try Flat Dark or Flat Light since there are the most simple. If there work you can try others using the builder's menus edit->options. Example:

"/Java /Themes"="/Flat /Dark"

Now since I don't own a Mac I'm not sure of any of this.

Worst comes to worst I'm build a special version to get over this hump. Maybe have the builder take a command line parameter.

If the edits or a special version of builder works for you I'll spin a 17.b26 version so it won't happen again... Otherwise I'll need your help to dig deeper...

Paul--

joostplas commented 8 months ago

Thanks for the reply.

I think I found the correct config file, but couldn't get it too work:

Am I using the wrong config file? Maybe this file doesn't like manual changes?

Before boot:

Screenshot 2024-01-22 at 21 02 48

After boot:

Screenshot 2024-01-22 at 21 03 00
Pconti31 commented 8 months ago

@joostplas Thanks for trying. Ok, The ball is back in my court. I'll build a new version of the Builder that will take a command line argument to set the theme. Hopefully it will be ready sometime tomorrow. Paul--

joostplas commented 8 months ago

Thanks for all the effort! In the meantime I'm running the builder on a separate older laptop running Ubuntu. So I can still enjoy your awesome program. I'm very happy with it so far!

Pconti31 commented 8 months ago

@joostplas Ok, I didn't know what architecture of mac you need so I made the x64 and aarch64 versions for download. Fire it up and let see what happens...

builder-mac-aarch64-0.17.b26-2024-01-23.tgz

builder-mac-x64-0.17.b26-2024-01-23.tgz

NOTE: you need to click the download button for my Google drive and you might get this warning: Google Drive can't scan this file for viruses.

We are experiencing technical difficulties. Would you still like to download this file?

DOWNLOAD Anyway?

Paul--

joostplas commented 8 months ago

I'm running x64.

How do I set the theme via the command line? That's the intended fix right?

If I run this build in the normal way, I get the same error, but I guess that's expected.

Pconti31 commented 8 months ago

@joostplas Sadly, No. The 0.17.b26-2024-01-23 version should have forced Flat Dark as the theme. Maybe I missed a spot so this version 0.17.b26-2024-01-24 simply does set Flat Light at startup and doesn't look at any other themes. If you crash in the same way and/or it doesn't look like Flat Light (since you can compare to your older laptop Ubuntu) on startup let me know.

builder-mac-x64-0.17.b26-2024-01-24.tgz Paul--

Pconti31 commented 8 months ago

@joostplas To cover all of my bases this version will remove all apple specific code in particular:

   if( SystemInfo.isMacOS ) {
//      isMAC = true;
      // enable screen menu bar
      // (moves menu bar from JFrame window to top of screen)
      System.setProperty( "apple.laf.useScreenMenuBar", "true" );

      // application name used in screen menu bar
      // (in first menu after the "apple" menu)
      System.setProperty( "apple.awt.application.name", "GUIsliceBuilder" );

      // appearance of window title bars
      // possible values:
      //   - "system": use current macOS appearance (light or dark)
      //   - "NSAppearanceNameAqua": use light appearance
      //   - "NSAppearanceNameDarkAqua": use dark appearance
      // (needs to be set on main thread; setting it on AWT thread does not work)
      System.setProperty( "apple.awt.application.appearance", "system" );
    }

builder-mac-x64-0.17.b26-2024-01-24-2.tgz

Paul--

joostplas commented 8 months ago

So I have good and bad news. The good news is that with both versions it's definitely using the light/white theme. The bad news is that it crashes in the same place and with the exact same error message. It seems that it still looks for these Aqua theme values when attempting to open the dropdown.

I really appreciate all your effort. I'm happy to debug this further and keep testing, but I also understand if you don't want to chase this further. For me it's definitely a viable option to keep working on the Ubuntu laptop.

Thanks again.

class java.lang.NullPointerException: Cannot invoke "javax.swing.border.Border.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int)" because the return value of "com.apple.laf.AquaMenuPainter$RecyclableBorder.get()" is null java.desktop/com.apple.laf.AquaMenuPainter.paintSelectedMenuItemBackground(AquaMenuPainter.java:157) java.desktop/com.apple.laf.AquaComboBoxRendererInternal.paintComponent(AquaComboBoxRendererInternal.java:147) java.desktop/javax.swing.JComponent.paint(JComponent.java:1128) java.desktop/javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:170) java.desktop/javax.swing.plaf.basic.BasicListUI.paintCell(BasicListUI.java:293) java.desktop/javax.swing.plaf.basic.BasicListUI.paintImpl(BasicListUI.java:383) java.desktop/javax.swing.plaf.basic.BasicListUI.paint(BasicListUI.java:306) java.desktop/javax.swing.plaf.ComponentUI.update(ComponentUI.java:161) java.desktop/javax.swing.JComponent.paintComponent(JComponent.java:852) java.desktop/javax.swing.JComponent.paint(JComponent.java:1128) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JViewport.paint(JViewport.java:736) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:586) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5325) java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1656) java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1631) java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1569) java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1336) java.desktop/javax.swing.JComponent.paint(JComponent.java:1114) java.desktop/java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39) java.desktop/sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:75) java.desktop/sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:112) java.desktop/java.awt.Container.paint(Container.java:2005) java.desktop/java.awt.Window.paint(Window.java:3959) java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:889) java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:861) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:861) java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:834) java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:784) java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1897) java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234) java.base/java.security.AccessController.doPrivileged(AccessController.java:318) java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234) java.desktop/java.awt.Dialog.show(Dialog.java:1080) java.desktop/javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:881) java.desktop/javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:677) java.desktop/javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:648) builder@0.17.b26-2024-01-24-2/builder.Builder$2.uncaughtException(Builder.java:310) java.base/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1083) java.base/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1078) java.desktop/java.awt.EventDispatchThread.processException(EventDispatchThread.java:222) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:214) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234) java.base/java.security.AccessController.doPrivileged(AccessController.java:318) java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234) java.desktop/java.awt.Dialog.show(Dialog.java:1080) java.desktop/java.awt.Component.show(Component.java:1729) java.desktop/java.awt.Component.setVisible(Component.java:1676) java.desktop/java.awt.Window.setVisible(Window.java:1036) java.desktop/java.awt.Dialog.setVisible(Dialog.java:1016) builder@0.17.b26-2024-01-24-2/builder.controller.UserPrefsManager.showDialog(UserPrefsManager.java:139) builder@0.17.b26-2024-01-24-2/builder.controller.Controller.showPreferences(Controller.java:1372) builder@0.17.b26-2024-01-24-2/builder.views.RibbonListener.actionPerformed(RibbonListener.java:582) java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374) java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1029) java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1073) java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:298) java.desktop/java.awt.Component.processMouseEvent(Component.java:6616) java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3398) java.desktop/java.awt.Component.processEvent(Component.java:6381) java.desktop/java.awt.Container.processEvent(Container.java:2266) java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4991) java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) java.desktop/java.awt.Component.dispatchEvent(Component.java:4823) java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) java.desktop/java.awt.Component.dispatchEvent(Component.java:4823) java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747) java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Pconti31 commented 8 months ago

@joostplas Well that is bad news. Ok, I guess the next step is to upgrade to the latest FlatLaf libraries , Java and maybe Gradle. But since no one seems to believe in any backward compatibility anymore this will likely take a few weeks or a month or more... So I'm glad you have a working system.

It's not your problem but if you could test any new version I come up with I would greatly appreciate it. I'll post a link when I'm ready. Paul--

joostplas commented 8 months ago

I'll definitely re-test whenever you come up with something. All the best.

Pconti31 commented 8 months ago

@joostplas Before I fall into a rat hole upgrading Builder I thought I should try a smaller app to see if upgrading it to FlatLaf 3.3 had a chance of working. This utility should come up in a new theme "Flat Mac Dark" and you should try to use options->themes "Choose Theme" pull-down and see if that works or not.

image2c-mac-x64-3.00.tgz

Paul--

joostplas commented 8 months ago

Not sure I understand completely. Is this download supposed to be the regular app or something different? I experience the same app with the same crash, but if I understand your text correctly it should be something different?

Pconti31 commented 8 months ago

@joostplas image2C app I updated to the latest version of flatLaf 3.3 and it should have opened with "Flat Mac Dark" theme. So was the crash exactly the same spot? with the same trace back? If so, it means the problem isn't with the builder but with either Java, or FlatLaf. I'll have to think about what the next step should be...

joostplas commented 8 months ago

Ahh I think the image behind the image2c link is wrong which is creating the confusion on my side. It's linking to the previous build?

Pconti31 commented 8 months ago

@joostplas Sorry! Let's try again with this link: image2c-mac-x64-3.00.tgz

I really hope this works because I'm not sure what to try next. Many you running FlatLaf's demo app? Paul--

joostplas commented 8 months ago

Works perfectly! No crashes :)

Pconti31 commented 8 months ago

@joostplas Excellent! Now I'll make the same changes to the Builder. This might go faster than I had planned! Paul--

Pconti31 commented 8 months ago

@joostplas Release 0.17.b26 has the update to FlatLaf 3.3 so hopefully this will fix your crashes. Paul--

joostplas commented 8 months ago

I'm sorry to say, but this version still has the same crash.

class java.lang.NullPointerException: Cannot invoke "javax.swing.border.Border.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int)" because the return value of "com.apple.laf.AquaMenuPainter$RecyclableBorder.get()" is null java.desktop/com.apple.laf.AquaMenuPainter.paintSelectedMenuItemBackground(AquaMenuPainter.java:157) java.desktop/com.apple.laf.AquaComboBoxRendererInternal.paintComponent(AquaComboBoxRendererInternal.java:147) java.desktop/javax.swing.JComponent.paint(JComponent.java:1128) java.desktop/javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:170) java.desktop/javax.swing.plaf.basic.BasicListUI.paintCell(BasicListUI.java:293) java.desktop/javax.swing.plaf.basic.BasicListUI.paintImpl(BasicListUI.java:383) java.desktop/javax.swing.plaf.basic.BasicListUI.paint(BasicListUI.java:306) java.desktop/javax.swing.plaf.ComponentUI.update(ComponentUI.java:161) java.desktop/javax.swing.JComponent.paintComponent(JComponent.java:852) java.desktop/javax.swing.JComponent.paint(JComponent.java:1128) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JViewport.paint(JViewport.java:736) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:586) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5325) java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1656) java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1631) java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1569) java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1336) java.desktop/javax.swing.JComponent.paint(JComponent.java:1114) java.desktop/java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39) java.desktop/sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:75) java.desktop/sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:112) java.desktop/java.awt.Container.paint(Container.java:2005) java.desktop/java.awt.Window.paint(Window.java:3959) java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:889) java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:861) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:861) java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:834) java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:784) java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1897) java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234) java.base/java.security.AccessController.doPrivileged(AccessController.java:318) java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234) java.desktop/java.awt.Dialog.show(Dialog.java:1080) java.desktop/javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:881) java.desktop/javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:677) java.desktop/javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:648) builder@0.17.b26/builder.Builder$2.uncaughtException(Builder.java:298) java.base/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1083) java.base/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1078) java.desktop/java.awt.EventDispatchThread.processException(EventDispatchThread.java:222) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:214) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234) java.base/java.security.AccessController.doPrivileged(AccessController.java:318) java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234) java.desktop/java.awt.Dialog.show(Dialog.java:1080) java.desktop/java.awt.Component.show(Component.java:1729) java.desktop/java.awt.Component.setVisible(Component.java:1676) java.desktop/java.awt.Window.setVisible(Window.java:1036) java.desktop/java.awt.Dialog.setVisible(Dialog.java:1016) builder@0.17.b26/builder.controller.UserPrefsManager.showDialog(UserPrefsManager.java:139) builder@0.17.b26/builder.controller.Controller.showPreferences(Controller.java:1372) builder@0.17.b26/builder.views.RibbonListener.actionPerformed(RibbonListener.java:582) java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374) java.desktop/com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:129) java.desktop/java.awt.MenuItem.processActionEvent(MenuItem.java:692) java.desktop/java.awt.MenuItem.processEvent(MenuItem.java:651) java.desktop/java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:378) java.desktop/java.awt.MenuComponent.dispatchEvent(MenuComponent.java:367) java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747) java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Pconti31 commented 8 months ago

@joostplas Alright last try, this one forces theme "Flat Mac Dark" ingoring whatever is set in preferences and is now built with Java 21 instead of 18. If this doesn't do it then I give up for now... builder-mac-x64-0.17.b27-SNAPSHOT-0128

Paul--

joostplas commented 8 months ago

Unfortunately the same issue. Thanks for trying and all the effort.

Pconti31 commented 8 months ago

@joostplas One more try. In looking further at your traceback I noticed the one line before the null exception was

javax.swing.border.Border.paintBorder

So I scanned all of the Builders code for BorderFactory and found most were for BorderFactory.createEmptyBorder() but a couple were for BorderFactory.createMatteBorder() so I changed them all to BorderFactory.createEmptyBorder(). Maybe that will make a difference???

This version uses FlatLaf 3.3 but goes back to Java 18 since 21 did nothing to help out. builder-mac-x64-0.17.b27-SNAPSHOT-0129

Paul--

joostplas commented 8 months ago

Sorry, no dice :(.

class java.lang.NullPointerException: Cannot invoke "javax.swing.border.Border.paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int)" because the return value of "com.apple.laf.AquaMenuPainter$RecyclableBorder.get()" is null java.desktop/com.apple.laf.AquaMenuPainter.paintSelectedMenuItemBackground(AquaMenuPainter.java:157) java.desktop/com.apple.laf.AquaComboBoxRendererInternal.paintComponent(AquaComboBoxRendererInternal.java:147) java.desktop/javax.swing.JComponent.paint(JComponent.java:1128) java.desktop/javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:170) java.desktop/javax.swing.plaf.basic.BasicListUI.paintCell(BasicListUI.java:293) java.desktop/javax.swing.plaf.basic.BasicListUI.paintImpl(BasicListUI.java:383) java.desktop/javax.swing.plaf.basic.BasicListUI.paint(BasicListUI.java:306) java.desktop/javax.swing.plaf.ComponentUI.update(ComponentUI.java:161) java.desktop/javax.swing.JComponent.paintComponent(JComponent.java:852) java.desktop/javax.swing.JComponent.paint(JComponent.java:1128) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JViewport.paint(JViewport.java:736) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paint(JComponent.java:1137) java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:586) java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:961) java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5325) java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1656) java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1631) java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1569) java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1336) java.desktop/javax.swing.JComponent.paint(JComponent.java:1114) java.desktop/java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39) java.desktop/sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:75) java.desktop/sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:112) java.desktop/java.awt.Container.paint(Container.java:2005) java.desktop/java.awt.Window.paint(Window.java:3959) java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:889) java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:861) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:861) java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:834) java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:784) java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1897) java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234) java.base/java.security.AccessController.doPrivileged(AccessController.java:318) java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234) java.desktop/java.awt.Dialog.show(Dialog.java:1080) java.desktop/javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:881) java.desktop/javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:677) java.desktop/javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:648) builder@0.17.b27-SNAPSHOT-0129/builder.Builder$2.uncaughtException(Builder.java:299) java.base/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1083) java.base/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1078) java.desktop/java.awt.EventDispatchThread.processException(EventDispatchThread.java:222) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:214) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234) java.base/java.security.AccessController.doPrivileged(AccessController.java:318) java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234) java.desktop/java.awt.Dialog.show(Dialog.java:1080) java.desktop/java.awt.Component.show(Component.java:1729) java.desktop/java.awt.Component.setVisible(Component.java:1676) java.desktop/java.awt.Window.setVisible(Window.java:1036) java.desktop/java.awt.Dialog.setVisible(Dialog.java:1016) builder@0.17.b27-SNAPSHOT-0129/builder.controller.UserPrefsManager.showDialog(UserPrefsManager.java:139) builder@0.17.b27-SNAPSHOT-0129/builder.controller.Controller.showPreferences(Controller.java:1372) builder@0.17.b27-SNAPSHOT-0129/builder.views.RibbonListener.actionPerformed(RibbonListener.java:582) java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374) java.desktop/com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:129) java.desktop/java.awt.MenuItem.processActionEvent(MenuItem.java:692) java.desktop/java.awt.MenuItem.processEvent(MenuItem.java:651) java.desktop/java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:378) java.desktop/java.awt.MenuComponent.dispatchEvent(MenuComponent.java:367) java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747) java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Pconti31 commented 8 months ago

@joostplas Sorry to keep bugging you but I found this on Stack Overflow: Apache NetBeans' GUI designer for JFrame forms throws exception when adding a swing menu bar which seems to match your trace back. So maybe this is the answer. Lets try one more time. This time we try using "Mac OS X" Laf builder-mac-x64-0.17.b27-SNAPSHOT-0130 Paul--

joostplas commented 8 months ago

No crash :).

I can change the drop-down settings (graphics library and themes) without any crashes. It doesn’t actually change the theme of the app, but I’m assuming that’s expected with this version.

Pconti31 commented 8 months ago

@joostplas Thanks! Looks like we have at least a solution. But its still not great since you can't use any other theme. I'm going to look into this further and try something else to see if we can get a more modern laf. Please bear with me and we can try again....

joostplas commented 8 months ago

I really don't mind sticking with this theme, if that's any help.

Pconti31 commented 8 months ago

@joostplas I hear you. If my next attempt fails I'll just make "Mac OS X" the only theme mac users can access. Most likely it won't be ready until tomorrow.

Pconti31 commented 8 months ago

@joostplas Ok, rewrote my Builder startup code to more closely match the working version of GUIslice_Image2c utility you said worked. If this fails the only thing left to do is force mac users to use just "Mac OS X" theme. builder-mac-x64-0.17.b27-SNAPSHOT-0131.tgz

Paul--

joostplas commented 8 months ago

With this build it seems to actually switch the theme (the look and feel changes), but it still crashes afterwards. With a new error though.

Supporting only 1 theme for Mac seems very sensible to me.

class java.lang.NullPointerException: Cannot invoke "javax.swing.JButton.getPreferredSize()" because "this.decrButton" is null java.desktop/javax.swing.plaf.basic.BasicScrollBarUI.layoutVScrollbar(BasicScrollBarUI.java:777) java.desktop/javax.swing.plaf.basic.BasicScrollBarUI.layoutContainer(BasicScrollBarUI.java:984) java.desktop/java.awt.Container.layout(Container.java:1541) java.desktop/java.awt.Container.doLayout(Container.java:1530) java.desktop/java.awt.Container.validateTree(Container.java:1725) java.desktop/java.awt.Container.validateTree(Container.java:1734) java.desktop/java.awt.Container.validateTree(Container.java:1734) java.desktop/java.awt.Container.validateTree(Container.java:1734) java.desktop/java.awt.Container.validateTree(Container.java:1734) java.desktop/java.awt.Container.validateTree(Container.java:1734) java.desktop/java.awt.Container.validate(Container.java:1660) java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:757) java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:755) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:754) java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1896) java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) java.base/java.security.AccessController.doPrivileged(AccessController.java:399) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236) java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234) java.base/java.security.AccessController.doPrivileged(AccessController.java:318) java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234) java.desktop/java.awt.Dialog.show(Dialog.java:1080) java.desktop/javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:881) java.desktop/javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:677) java.desktop/javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:648) builder@0.17.b27-SNAPSHOT-0131/builder.Builder$2.uncaughtException(Builder.java:290) java.base/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1083) java.base/java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1078) java.desktop/java.awt.EventDispatchThread.processException(EventDispatchThread.java:222) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:214) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Pconti31 commented 8 months ago

@joostplas Ok, You only have to beat me in the head so often.
I give up. 0.17.b27 will force Mac OS X as the theme.

joostplas commented 8 months ago

Haha thanks for all the effort.

Pconti31 commented 8 months ago

@joostplas Before I do another checkin I want to confirm what is happening with the latest version SNAPSHOT-0131 1- What happens when you go to E_PROJECT_OPTIONS and select "Target IDE"? do you still crash? 2- When you go to edit->options "Java Themes" the combo box works but you crash after the change of theme? If 1 doesn't crash but 2 does then maybe I simply have to force you to exit and re-enter the builder for a theme change. Paul--

joostplas commented 8 months ago
  1. No crash. Works fine.
  2. Correct. After I apply the change in theme (OK button) I see the theme change and immediately after the Failure / fatal error alert pops up.
Pconti31 commented 8 months ago

@joostplas I do hate to bother you again but could you test this version builder-mac-x64-0.17.b27.tgz This is what I'm planning on for Release 0.17.b27 Paul--

joostplas commented 8 months ago

Works great! Warning shows nicely that you need to restart. No crashes!

Pconti31 commented 8 months ago

@joostplas Super! I'll post the new release now. You won't need to download it since it will be the same as you have. Thanks again for you help.
Paull-

joostplas commented 8 months ago

And thanks to you for the amazing support!