USA
Joined: Jan 9, 2021
Post Count: 178
Status:
Offline
Re: Sweet Home 3D 7.2
Here's the hidden AppData log.txt file:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.eteks.sweethome3d.swing.ControllerAction.actionPerformed(Unknown Source) at com.eteks.sweethome3d.swing.ResourceAction$AbstractDecoratedAction.actionPerformed(Unknown Source) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1020) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1064) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635) 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:4547) 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) Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) ... 40 more Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.base/java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:870) at java.base/java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:487) at java.base/java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:426) at java.base/java.util.ComparableTimSort.sort(ComparableTimSort.java:222) at java.base/java.util.Arrays.sort(Arrays.java:1249) at java.desktop/sun.awt.shell.Win32ShellFolderManager2.get(Win32ShellFolderManager2.java:313) at java.desktop/sun.awt.shell.ShellFolder.get(ShellFolder.java:259) at java.desktop/com.sun.java.swing.plaf.windows.WindowsFileChooserUI$DirectoryComboBoxModel.addItem(WindowsFileChooserUI.java:1087) at java.desktop/com.sun.java.swing.plaf.windows.WindowsFileChooserUI.doDirectoryChanged(WindowsFileChooserUI.java:74 1) at java.desktop/com.sun.java.swing.plaf.windows.WindowsFileChooserUI$11.propertyChange(WindowsFileChooserUI.java:832) at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:341) at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:333) at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:266) at java.desktop/java.awt.Component.firePropertyChange(Component.java:8731) at java.desktop/javax.swing.JFileChooser.setCurrentDirectory(JFileChooser.java:608) at java.desktop/javax.swing.JFileChooser.<init>(JFileChooser.java:362) at java.desktop/javax.swing.JFileChooser.<init>(JFileChooser.java:308) at com.eteks.sweethome3d.swing.FileContentManager.showFileChooser(Unknown Source) at com.eteks.sweethome3d.swing.FileContentManager.showSaveDialog(Unknown Source) at com.eteks.sweethome3d.swing.HomePane.showSaveDialog(Unknown Source) at com.eteks.sweethome3d.viewcontroller.HomeController.saveAs(Unknown Source) at com.eteks.sweethome3d.viewcontroller.HomeController.saveAs(Unknown Source) ... 44 more Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.eteks.sweethome3d.swing.ControllerAction.actionPerformed(Unknown Source) at com.eteks.sweethome3d.swing.ResourceAction$AbstractDecoratedAction.actionPerformed(Unknown Source) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1020) at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1064) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635) 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:4547) 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) Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) ... 40 more Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.base/java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:870) at java.base/java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:487) at java.base/java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:426) at java.base/java.util.ComparableTimSort.sort(ComparableTimSort.java:222) at java.base/java.util.Arrays.sort(Arrays.java:1249) at java.desktop/sun.awt.shell.Win32ShellFolderManager2.get(Win32ShellFolderManager2.java:313) at java.desktop/sun.awt.shell.ShellFolder.get(ShellFolder.java:259) at java.desktop/com.sun.java.swing.plaf.windows.WindowsFileChooserUI$DirectoryComboBoxModel.addItem(WindowsFileChooserUI.java:1087) at java.desktop/com.sun.java.swing.plaf.windows.WindowsFileChooserUI.doDirectoryChanged(WindowsFileChooserUI.java:74 1) at java.desktop/com.sun.java.swing.plaf.windows.WindowsFileChooserUI$11.propertyChange(WindowsFileChooserUI.java:832) at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:341) at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:333) at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:266) at java.desktop/java.awt.Component.firePropertyChange(Component.java:8731) at java.desktop/javax.swing.JFileChooser.setCurrentDirectory(JFileChooser.java:608) at java.desktop/javax.swing.JFileChooser.<init>(JFileChooser.java:362) at java.desktop/javax.swing.JFileChooser.<init>(JFileChooser.java:308) at com.eteks.sweethome3d.swing.FileContentManager.showFileChooser(Unknown Source) at com.eteks.sweethome3d.swing.FileContentManager.showSaveDialog(Unknown Source) at com.eteks.sweethome3d.swing.HomePane.showSaveDialog(Unknown Source) at com.eteks.sweethome3d.viewcontroller.HomeController.saveAs(Unknown Source) at com.eteks.sweethome3d.viewcontroller.HomeController.saveAs(Unknown Source) ... 44 more
----------------------------------------
Steve N Mavronis - Retired PC Tech
Italy
Joined: Nov 17, 2021
Post Count: 467
Status:
Offline
Re: Sweet Home 3D 7.2
@sbj007 My plugin uses the same method used by SH3D to get the output folder, it is the result of a computation, so it may vary depending on the environment.
@snmavronis Btw, the plugin and the output redirection method from the command line are mutually exclusive, so only one should be used.
France
Joined: Nov 7, 2005
Post Count: 9426
Status:
Offline
Re: Sweet Home 3D 7.2
Thanks Steve, that's the information I was looking for. You may not understand a word of it, but for Java programmers, it contains the information that will help them to fix your issue. I'm pretty sure you actually encountered the bug #8305072 in Java mentioned by Daniele, which is not fixed yet. Reading the comments of that bug report, it seems to be an issue bound to homonyms in the file system. Very strange, since a file name is supposed to be unique in a directory, but that could be half true from a user's point of view when localization is involved. Could you check in the folder where you expect to save your files if there are some homonyms or files named with unconventional names?
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
USA
Joined: Jan 9, 2021
Post Count: 178
Status:
Offline
Re: Sweet Home 3D 7.2
I appreciate you guys spending time of this. I can't find any files with the same name within a folder. Sub-folders shouldn't matter but Windows won't allow that anyway, it would ask to overwrite or rename. In my home save folder I tried renaming some files that were home remodeling quotes containing # and ( ) and , symbols even though they are legal filename characters. Then I moved all unnecessary files into sub-folders. I also deleted some models in my home; computer equipment that was on a desk and a regular save. No change, can't do a save-as, no error on-screen it just ignores the menu selection. Here is a current directory list:
C:\Users\snmav\Pictures\House Plans>dir Volume in drive C is Windows Volume Serial Number is 2E85-8F3A
France
Joined: Nov 7, 2005
Post Count: 9426
Status:
Offline
Re: Sweet Home 3D 7.2
Steve, I sent you an email with a special version which may fix your issue, using a FileDialog rather than a JFileChooser instance in case the error you reported happens. If it works, I'll commit the change in source code.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
France
Joined: Nov 7, 2005
Post Count: 9426
Status:
Offline
Re: Sweet Home 3D 7.2
As I fear that the Java bug #8305072 takes a long a long time to be fixed (it seems complicated to reproduce), I chose to circumvent it by using a FileDialog rather than a JFileChooser instance in case this error happens (see commit #8910). Steve confirmed that it fixed his problem. I'll publish a version 7.3 Beta soon with other small changes.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator
USA
Joined: Jan 9, 2021
Post Count: 178
Status:
Offline
Re: Sweet Home 3D 7.2
Thank you so much! This has been plaguing me for a year and glad your beta version fixed the issue. The final test will be when I do a render again and make sure that allows me to save it vs resorting to a preview screenshot. But I'm confident that your switch to FileDialog nixed the issue.
----------------------------------------
Steve N Mavronis - Retired PC Tech