Print at Dec 17, 2025, 7:55:58 AM

Posted by GreyBox at Sep 28, 2024, 5:58:34 PM
Weird java.lang.OutOfMemoryError
First - big thanks for the nice program!
Maybe no help actually needed here smile

I have two laptop with Ubuntu 22.04.4 LTS and and 24.04 LTS (both KDE)
SweetHome3D 64bit v7.4 (and v7.5 now), on both laptops SweetHome folders are identical (main folder and .eteks) - copied them with rsync.

The file has size ~12.3M, it was created on U22.04 and later copied to U24.04 where I added more levels and more furniture. Now it has size ~14.1M.
I copied it back to U22.04 and tried to open. SH3D doesn't show any errors, after processing it shows just the same new empty file.

I tried to remove .eteks folder so SH3D didn't have any plugins and additional furniture - it didn't help.

On U24.04 SH3D has standard -Xmx2g in the script and it can open the file without any issues.
Initially I tried to increase memory limit on U22.04, even set 8g - it didn't help. Upgraded to v7.5 - didn't help too.
And lucky I decided to try the last time to adjust memory limit before post here "plzz help111". devilish So I set 16g and finally it was able to open the file.

Weird that when I set 16g and opened the file - in About it shows:
Java 1.8.0_202 - 64bit - 0,1 / 14,2 GB
so as far as I understand it says that used just ~100M of memory. confused

In console I can see following errors (8g limit):

~/.local/opt/SweetHome3D$ ./run.sh
Picked up JAVA_TOOL_OPTIONS: -Dcom.eteks.sweethome3d.j3d.useOffScreen3DView=true
DynamicPluginLoader: plugin.classpath property not set
DynamicPluginLoader: plugin.classpath property not set
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
at javax.media.j3d.ImageComponentRetained$ImageData.<init>(ImageComponentRetained.java:2255)
at javax.media.j3d.ImageComponentRetained.createRenderedImageDataObject(ImageComponentRetained.java:848
)
at javax.media.j3d.ImageComponentRetained.createRenderedImageDataObject(ImageComponentRetained.java:870
)
at javax.media.j3d.ImageComponent2DRetained.set(ImageComponent2DRetained.java:156)
at javax.media.j3d.ImageComponent2D.<init>(ImageComponent2D.java:219)
at com.sun.j3d.exp.swing.JCanvas3D.createOffScreenBuffer(JCanvas3D.java:342)
at com.sun.j3d.exp.swing.JCanvas3D.createCanvas(JCanvas3D.java:326)
at com.sun.j3d.exp.swing.JCanvas3D.setBounds(JCanvas3D.java:542)
at com.eteks.sweethome3d.swing.HomeComponent3D$4.layoutContainer(Unknown Source)
at java.awt.Container.layout(Container.java:1513)
at java.awt.Container.doLayout(Container.java:1502)
at java.awt.Container.validateTree(Container.java:1698)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validate(Container.java:1633)
at java.awt.Container.validateUnconditionally(Container.java:1670)
at java.awt.Window.pack(Window.java:818)
at com.eteks.sweethome3d.HomeFramePane.computeFrameBounds(Unknown Source)
at com.eteks.sweethome3d.HomeFramePane.displayView(Unknown Source)
at com.eteks.sweethome3d.HomeFrameController.displayView(Unknown Source)
at com.eteks.sweethome3d.SweetHome3D$4.collectionChanged(Unknown Source)
at com.eteks.sweethome3d.model.CollectionChangeSupport.fireCollectionChanged(Unknown Source)
at com.eteks.sweethome3d.model.HomeApplication.addHome(Unknown Source)
at com.eteks.sweethome3d.viewcontroller.HomeController$31.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space

Just to let you know.


And another question - a bit annoying thing, in Task Switcher I see not one SH3D window but many windows and just one of them can be displayed / switched. Sometimes it more than 10 windows. So when SH3D opened it's imposible to use ALT+Tab to switch tasks - too many "empty" windows to scroll. I didn't find if it can be fixed somehow