Print at Dec 15, 2025, 5:04:02 PM

Posted by kevinhuis at Oct 7, 2024, 8:08:16 AM
Re: 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
It seems like you've encountered a Java heap space issue, which often happens when the memory allocated for Java isn't enough to handle larger files, especially when dealing with complex projects in Sweet Home 3D. Increasing the memory limit, as you've done, is the right move. It’s odd that the usage shows only around 100MB despite setting the limit to 16GB, but sometimes Java reports can be misleading, especially if memory is being managed dynamically.

For the multiple windows issue in the Task Switcher, it's possible that SH3D is creating separate Java windows in the background. This is a known issue with some Java-based applications. You might want to try launching the program using different Java runtime versions or tweaking the display settings in KDE.

For 3D printing and modeling services to complement your home design projects, check out professional 3D design and printing services. It can help bring complex architectural and interior design models to life!

Good luck with your troubleshooting, and I hope this helps!