Posts:
23
Registered:
5-Feb-2009
|
|
|
|
Re: Slow performance
Posted:
31 May 26, 21:26
in response to: davidekholm
|
|
|
|
|
|
Hello,
I've replaced the file, but I haven't noticed any difference.
The delay appears to be caused bij reading file attributes and, as you mentioned, image metadata.
The actual processing of this data doesn't seem to be affected by any delay.
I've placed both results side by side (see screenshots)
|
|
|
Posts:
8,338
Registered:
31-Jan-2006
|
|
|
|
Re: Slow performance
Posted:
31 May 26, 22:06
in response to: hmesman
|
|
|
Thanks for doing that test. I made a similar test, and also didn't see any measurable difference in execution speed, but my images don't have a lot of metadata, so I couldn't be sure about it.
David will have to ask Sparky, his AI bot, what he did, and why. 
|
|
|
Posts:
23
Registered:
5-Feb-2009
|
|
|
|
Re: Slow performance
Posted:
1 Jun 26, 22:28
in response to: JeffTucker
|
|
|
|
Note: it's not just the process of creating an album that's extremely slow; scrolling through the photos within jAlbum itself is extremely slow too.
Everything feels sluggish.
For now, I'll stick with version 39.4.
I won't be installing any future updates until this issue has been resolved.
I'm in no rush, so please take your time to find a solution.
Thanks in advance!
|
|
|
Posts:
23
Registered:
5-Feb-2009
|
|
|
|
Re: Slow performance
Posted:
3 Jun 26, 10:43
in response to: davidekholm
|
|
|
Hello,
Before I send you the link to the PNG files, I’d like to point out that the issues only occur when reading PNG files, including whilst scrolling through the album in jAlbum itself.
If the same files are replaced with JPGs and added to the album, there are no issues and the processing speed is the same as in the previous version of jAlbum, even with the current metadata settings.
However, if I replace jalbum-core with the jAlbum 38.4 version (which effectively reverts the update), everything works as before and browsing through PNG files in jAlbum itself is once again without any delay, so there seems to be an issue with the built-in PNG reader (if it is even present) in version 39.5.11.
Converting all the files to JPG isn't an option for me, by the way...
Edited by: hmesman on 3 Jun 2026, 10:47
Edited by: hmesman on 3 Jun 2026, 10:48
|
|
|
Posts:
3,969
Registered:
18-Oct-2002
|
|
|
|
Re: Slow performance
Posted:
3 Jun 26, 13:11
in response to: hmesman
|
|
|
|
Please pass some of those PNGs so I can reproduce and fix this. We made several changes so without being able to reproduce I'd have to play a guessing game as what changes to make.
|
|
|
Posts:
23
Registered:
5-Feb-2009
|
|
|
|
Re: Slow performance
Posted:
3 Jun 26, 14:15
in response to: davidekholm
|
|
|
|
I sent you a message earlier today.
|
|
|
Posts:
3,969
Registered:
18-Oct-2002
|
|
|
|
Re: Slow performance
Posted:
4 Jun 26, 10:42
in response to: hmesman
|
|
|
|
Thanks. I've been able to reproduce and fix the issue now. Will post back to the forum. To try out the fix, select Tools->External tools->jAlbum core update.
|
|
|
Posts:
23
Registered:
5-Feb-2009
|
|
|
|
Re: Slow performance
Posted:
4 Jun 26, 11:16
in response to: davidekholm
|
|
|
|
|
|
Hello,
Unfortunately, the update is causing a Java error.
I therefore uninstalled and reinstalled version 39.5 and ran the update again.
I then started/restarted the programme as an administrator, but the error persists.
jAlbum then froze completely.
|
|
|
Posts:
3,983
Registered:
4-Aug-2006
|
|
|
|
Re: Slow performance
Posted:
4 Jun 26, 12:27
in response to: hmesman
|
|
|
Please try to use the copy error message, or copy it from the console and paste it, instead of using a screenshot. It makes it much easier for those who want to help. Use the code tags, shown bottom right of the post window when writing.
Edited by: RobM on 4 Jun 2026, 11:30
java.lang.NullPointerException:
Cannot invoke "se.datadosen. jalbum.AlbumObject.getParent ()" because "this.currentFolder"
at se.datadosen.explorer.JAlbumExplorer.rememberLastLocation(JAlbumExplorer.java:4247)
at se.datadosen.explorer.JAlbumExplorer.setRootFolder (JAlbumExplorer.java: 4271)
at
se. datadosen. jalbum.JAlbumFrame.initView(JAlbumFrame.java:2432)
at
se. datadosen. jalbum.JAlbumFrame.engine2UI (JAlbumFrame.java:2218)
at
se.datadosen. jalbum.JAlbumFrame.engine2UI (JAlbumFrame.java: 2176)
at
se. datadosen. jalbum.JAlbumFrame.doloadProject (JAlbumFrame.java:1908)
at
se. datadosen. jalbum.JAlbumFrame.loadProject (JAlbumFrame.java: 1831)
at
se.datadosen. jalbum.JAlbumManager$JAlbumButton.lambdasactionPerformed60(JAlbumManager.java:1172)
at
java.desktop/java.awt.event.InvocationEvent.dispatch (Unknown Source)
at
java.desktop/java.awt.EventQueue.dispatchEventImp1 (Unknown Source)
at
java.desktop/java.awt.EventQueuef4.run (Unknown Source)
at
at
at
java.base/Java.security.ProtectionDomain$JavaSecurityAccessImp1.doIntersectionPr1vi1ege(Unknown Source)
at
java.desktop/java.awt.EventQueue.dispatchEvent (Unknown Source)
at
java.desktop/java.awt.EventDispatchThread.pumpOneEventForF11ters (Unknown Source)
at
java.desktop/java.awt.EventDispatchThread.pumpEventsForF11ter (Unknown Source)
at
java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy (Unknown Source)
at
java.desktop/java.awt.EventDispatchThread.pumpEvents (Unknown Source)
at
java.desktop/java.awt.EventDispatchThread.pumpEvents (Unknown Source)
|
|
|
Posts:
23
Registered:
5-Feb-2009
|
|
|
|
Re: Slow performance
Posted:
4 Jun 26, 15:11
in response to: RobM
|
|
|
|
For some reason, I can't seem to manage that, but if necessary, I could provide a link to the image.
|
|
|
Posts:
8,338
Registered:
31-Jan-2006
|
|
|
|
Re: Slow performance
Posted:
4 Jun 26, 15:32
in response to: davidekholm
|
|
|
Disastrously bad. Upon launch I get this error: jAlbum 39.5.14 system console running Groovy (Groovy Scripting Engine)
This section captures debug prints sent to System.out and System.err
The top section evaluates expressions.
Press Ctrl+E to evaluate an expression. (Evaluates selected text if selection is active)
You have access to the basic jAlbum implicit objects such as engine and window
Sample expressions:
4*(3+2); // Basic calculations
engine.getSkin(); // Use of implicit object
for (AlbumObject ao : selectedObjects) println ao; // Iterate over selected objects
window.messageBox("You can interact with any Java object");
Profiler.instance // Print profiling data for last album build
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "se.datadosen.jalbum.AbstractFolderAlbumObject.getInfoEntry(se.datadosen.jalbum.AlbumObject)" because the return value of "se.datadosen.jalbum.AlbumObjectImpl.getParent()" is null
at se.datadosen.jalbum.AlbumObjectImpl.getInfoEntry(AlbumObjectImpl.java:226)
at se.datadosen.jalbum.AlbumObjectProperties.getEntry(AlbumObjectProperties.java:555)
at se.datadosen.jalbum.AlbumObjectProperties.load(AlbumObjectProperties.java:516)
at se.datadosen.jalbum.AlbumObjectProperties.init(AlbumObjectProperties.java:291)
at se.datadosen.jalbum.AlbumObjectProperties.<init>(AlbumObjectProperties.java:196)
at se.datadosen.jalbum.AlbumObjectProperties.getInstance(AlbumObjectProperties.java:176)
at se.datadosen.jalbum.AlbumObjectImpl.getProperties(AlbumObjectImpl.java:1735)
at se.datadosen.explorer.JAlbumExplorer.setRootFolder(JAlbumExplorer.java:4283)
at se.datadosen.jalbum.JAlbumFrame.initView(JAlbumFrame.java:2432)
at se.datadosen.jalbum.JAlbumFrame.newProject(JAlbumFrame.java:1558)
at se.datadosen.jalbum.JAlbumFrame.lambda$new$1(JAlbumFrame.java:329)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "se.datadosen.jalbum.AbstractFolderAlbumObject.getInfoEntry(se.datadosen.jalbum.AlbumObject)" because the return value of "se.datadosen.jalbum.AlbumObjectImpl.getParent()" is null
at se.datadosen.jalbum.AlbumObjectImpl.getInfoEntry(AlbumObjectImpl.java:226)
at se.datadosen.jalbum.AlbumObjectProperties.getEntry(AlbumObjectProperties.java:555)
at se.datadosen.jalbum.AlbumObjectProperties.load(AlbumObjectProperties.java:516)
at se.datadosen.jalbum.AlbumObjectProperties.init(AlbumObjectProperties.java:291)
at se.datadosen.jalbum.AlbumObjectProperties.<init>(AlbumObjectProperties.java:196)
at se.datadosen.jalbum.AlbumObjectProperties.getInstance(AlbumObjectProperties.java:176)
at se.datadosen.jalbum.AlbumObjectImpl.getProperties(AlbumObjectImpl.java:1735)
at se.datadosen.jalbum.AlbumBean.addGlobals(AlbumBean.java:3071)
at se.datadosen.jalbum.AlbumBean.prepareMakeAlbum(AlbumBean.java:4124)
at se.datadosen.jalbum.AlbumBean.prepareMakeAlbum(AlbumBean.java:4072)
at se.datadosen.jalbum.AlbumBean.init(AlbumBean.java:3748)
at se.datadosen.jalbum.JAlbumFrame.executeScript(JAlbumFrame.java:1360)
at se.datadosen.jalbum.JAlbum.lambda$new$0(JAlbum.java:198)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot read field "value" because "item" is null
at se.datadosen.jalbum.JMainSettingsPanel.lambda$init$3(JMainSettingsPanel.java:737)
at java.desktop/com.sun.java.swing.plaf.windows.WindowsComboBoxUI.paintCurrentValue(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicComboBoxUI.paint(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.windows.WindowsComboBoxUI.paint(Unknown Source)
at java.desktop/javax.swing.plaf.ComponentUI.update(Unknown Source)
at java.desktop/javax.swing.JComponent.paintComponent(Unknown Source)
at java.desktop/javax.swing.JComponent.paint(Unknown Source)
at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(Unknown Source)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at java.desktop/javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at java.desktop/javax.swing.RepaintManager.paint(Unknown Source)
at java.desktop/javax.swing.JComponent._paintImmediately(Unknown Source)
at java.desktop/javax.swing.JComponent.paintImmediately(Unknown Source)
at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
And if I try to add images to create a new project, I get no result, and the app freezes - have to force-quit (Windows).
ETA: If I wait long enough, I can eventually close the app in the usual way (but Explore remains empty - the image add doesn't work). But there's no thread dump, even with the watchdog enabled.
ETA: I get a similarly unusable jAlbum on the Mac - same errors, and it goes downhill from there.
|
|
|
Posts:
23
Registered:
5-Feb-2009
|
|
|
|
Re: Slow performance
Posted:
4 Jun 26, 16:16
in response to: davidekholm
|
|
|
|
Hello David,
Everything's back to normal for me!
Thanks for all your help!
Kind regards,
Hans Mesman
|
|
|
Posts:
3,983
Registered:
4-Aug-2006
|
|
|
|
Legend
|
|
Forum admins
|
|
Helpful Answer
|
|
Correct Answer
|
|