Mar 28 2026 APP 2.0.0-beta40 will be released in 7 days.
It did take a long time to have the work finished on this and it will have a major performance boost of 30-50% over 2.0.0-beta39 from calibration to integration. We extensively optimized many critical parts of APP. All has been tested to guarantee correct optimizations. Drizzle and image resampling is much faster for instance, those modules have been completely rewritten. Much less memory usage. LNC 2.0 will be released which works much better and faster than LNC in it's current state. And more, all will be added to the release notes in the coming weeks...
Update on the 2.0.0 release & the full manual
We are getting close to the 2.0.0 stable release and the full manual. The manual will soon become available on the website and also in PDF format. Both versions will be identical and once released, will start to follow the APP release cycle and thus will stay up-to-date to the latest APP version.
Once 2.0.0 is released, the price for APP will increase. Owner's license holders will not need to pay an upgrade fee to use 2.0.0, neither do Renter's license holders.
Edit by Mabula : SOLVED: There is no problem running APP on a freshly installed Ubuntu 24.10. Somehow updating Ubuntu to 24.10 from an earlier Ubuntu version messed things up on the OS layer.
I don't usually go for non-LTS distros, but when I do I do regret things. This release of Ubuntu is only an interim to get me to 25.04, but that's currently unavailable so now I'm stuck with an inabilty to process APP on Ubuntu 24.10
Â
kevinj@jupiter:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.10
Release: 24.10
Codename: oracular
kevinj@jupiter:~/$ AstroPixelProcessor
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source)
at java.desktop/sun.font.SunFontManager.initCompositeFonts(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.desktop/sun.font.SunFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.FcFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.X11FontManager.<init>(Unknown Source)
at java.desktop/sun.font.PlatformFontInfo.createFontManager(Unknown Source)
at java.desktop/sun.font.FontManagerFactory.getInstance(Unknown Source)
at java.desktop/sun.font.FontUtilities.getFontConfigFUIR(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.PangoFonts.lookupFont(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.getGTKStyleFactory(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initialize(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at com.ariesproductions.astropixelprocessor.AstroPixelProcessor.main(AstroPixelProcessor.java:1259)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source)
at java.desktop/sun.font.SunFontManager.initCompositeFonts(Unknown Source)
I've tried on APP 2.0.0 Beta35 and Beta36.
I noticed an APP-startup.dat file gets created. Not sure if this helps (or at least narrow down the stage where the problem is).
Â
-rw-rw-r-- 1 kevinj kevinj 12288 May 4 12:01 APP-startup.dat
kevinj@jupiter:~$ strings APP-startup.dat
12:01:25 - started Astro Pixel Processor
12:01:25 - setup OS, arch, DPI variables
kevinj@jupiter:~$
Â
Hi Kevin,
Thank you very much for reporting this.
I have reduced that stack trace a bit, normally only the first 20 lines or so are relevant to the issue.
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source)
at java.desktop/sun.font.SunFontManager.initCompositeFonts(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.desktop/sun.font.SunFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.FcFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.X11FontManager.<init>(Unknown Source)
at java.desktop/sun.font.PlatformFontInfo.createFontManager(Unknown Source)
at java.desktop/sun.font.FontManagerFactory.getInstance(Unknown Source)
at java.desktop/sun.font.FontUtilities.getFontConfigFUIR(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.PangoFonts.lookupFont(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.getGTKStyleFactory(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initialize(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at com.ariesproductions.astropixelprocessor.AstroPixelProcessor.main(AstroPixelProcessor.java:1259)
All these first lines are from the java.desktop module, which is our development platform, so not our code. That last line is from our code, so I have checked if that code line can be related to the issue.
Our code initiates the look and feel of our application from the java JDK. That should simply work. To be sure, is my assumption correct that you are not trying to hack APP to run with a different JDK than the one shipped in the installation?
At first glance, it looks like the development platform, or Java 23 which is very new does not support this Ubuntu version for some reason. So I will also need to dive into the java JDK bugs/issue list if it has been reported earlier and is being worked on.
APP's next release beta37 will run on JDK 24, so we have updated it as well, so that might solve it already if the bug is in JDK 23.
Another reason can actually be a bug in that Ubuntu release also since it seams that the call getFileNameFromPlatformName does not report anything which would be quite weird.
I have opened an issue on our list to investigate and find an explanation and hopefully solve it as soon as possible.
Mabula
Â
Â
This is nothing more than download, unpack, dpkg install and run. The same as I have done since using APP on Linux.
Incidentally, the Java version installed:
kevinj@jupiter:~$ java --version
openjdk 21.0.7 2025-04-15
OpenJDK Runtime Environment (build 21.0.7+6-Ubuntu-0ubuntu124.10)
OpenJDK 64-Bit Server VM (build 21.0.7+6-Ubuntu-0ubuntu124.10, mixed mode, sharing)
I noticed there is an update (24) I could instsall, so tried that, but no difference.
kevinj@jupiter:~$ java --version
openjdk 24.0.1 2025-04-15
OpenJDK Runtime Environment (build 24.0.1+9-Ubuntu-0ubuntu124.10)
OpenJDK 64-Bit Server VM (build 24.0.1+9-Ubuntu-0ubuntu124.10, mixed mode, sharing)
I'm switched to using Plasma and I get additional errors
... same stack trace as above...
But additionally:
Caught handled GLException: EGLGLXDrawableFactory - Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x48a578fb, isOwner true, <827dc75, 5b6b0ae>[count 1, qsz 0, owner <Thread-2-SharedResourceRunner>]]] on thread Thread-2-SharedResourceRunner
[0]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createSharedResource(EGLDrawableFactory.java:555)
[1]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[2]: java.base/java.lang.Thread.run(Unknown Source)
Caused[0] by InternalError: Nil surface but claimed to be valid: EGLSurface[ displayHandle 0x7a1f8c003570
, surfaceHandle 0x0
, size 64x64
, UOB[ OWNS_SURFACE | OWNS_DEVICE ]
, EGLGraphicsConfiguration[DefaultGraphicsScreen[EGLGraphicsDevice[type .egl, v1.5.0, nativeDisplayID 0x7a1f8c28ce10, connection :0, unitID 0, handle 0x7a1f8c003570, owner true, ResourceToolkitLock[obj 0x689a088b, isOwner true, <337c4f65, 2efdc7f5>[count 1, qsz 0, owner <Thread-2-SharedResourceRunner>]]], idx 0],
eglConfigHandle 0xcaf33e, eglConfigID 0x16,
requested GLCaps[rgba 5/5/5/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, one, mono , hw, GLProfile[GLES2/GLES2.hw], on-scr[.]],
chosen GLCaps[egl cfg 0x16, vid 0x45: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/0/0, dbl, mono , hw, GLProfile[GLES2/GLES2.hw], on-scr[.], [0x4d: GL, GLES1, GLES2, GLES3, VG]]]
, surfaceLock <2195812e, 19f31bc7>[count 0, qsz 0, owner <NULL>]
, EGLUpstreamSurfaceHook[ 64x64, jogamp.nativewindow.WrappedSurface: 0x3000002]
, upstreamSurface true ] on thread Thread-2-SharedResourceRunner
[0]: jogamp.opengl.egl.EGLDrawable.destroyHandle(EGLDrawable.java:93)
[1]: jogamp.opengl.GLDrawableImpl.setRealized(GLDrawableImpl.java:193)
[2]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.mapAvailableEGLESConfig(EGLDrawableFactory.java:918)
[3]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createEGLSharedResourceImpl(EGLDrawableFactory.java:650)
[4]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createSharedResource(EGLDrawableFactory.java:553)
[5]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[6]: java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source)
at java.desktop/sun.font.SunFontManager.initCompositeFonts(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.desktop/sun.font.SunFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.FcFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.X11FontManager.<init>(Unknown Source)
at java.desktop/sun.font.PlatformFontInfo.createFontManager(Unknown Source)
at java.desktop/sun.font.FontManagerFactory.getInstance(Unknown Source)
at java.desktop/sun.font.SunFontManager.getInstance(Unknown Source)
at java.desktop/sun.font.FontDesignMetrics.getMetrics(Unknown Source)
at java.desktop/sun.swing.SwingUtilities2.getFontMetrics(Unknown Source)
at java.desktop/javax.swing.JComponent.getFontMetrics(Unknown Source)
at java.desktop/javax.swing.text.PlainView.updateMetrics(Unknown Source)
at java.desktop/javax.swing.text.PlainView.setSize(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicTextUI$RootView.setSize(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicTextUI.modelToView(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicTextUI.modelToView(Unknown Source)
at java.desktop/javax.swing.text.DefaultCaret.setVisible(Unknown Source)
at java.desktop/javax.swing.text.DefaultCaret.focusGained(Unknown Source)
at java.desktop/java.awt.AWTEventMulticaster.focusGained(Unknown Source)
... 6 more
EGLDisplayUtil.EGLDisplays: Shutdown (open: 1)
EGLDisplayUtil: Open EGL Display Connections: 1
EGLDisplayUtil: Open[0]: 0x7a1f8c003570: EGLDisplayRef[0x7a1f8c003570: refCnt 1]
Â
I've tried the classic export _JAVA_OPTIONS='-Djogl.disable.opengles' but it didn't make a difference.
Â
You can see my CTRL+C then the rest of the stack trace.
There seems to be some conflict with my graphics card/configuration with graphics.
I've just read that 24.10 enables Wayland by default with NVIDIA cards. I'm wondering if that's the culprit.
kevinj@jupiter:~$ glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 6144 MB
Total available memory: 6144 MB
Currently available dedicated video memory: 5233 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce RTX 3050/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 570.144
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6.0 NVIDIA 570.144
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 570.144
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
Â
kevinj@jupiter:~$ loginctl session-status
2 - kevinj (1000)
Since: Fri 2025-05-09 19:43:08 BST; 45min ago
State: active
Leader: 3867 (gdm-session-wor)
Seat: seat0; vc2
TTY: tty2
Remote: no
Service: gdm-password
Type: wayland
Class: user
Idle: no
Unit: session-2.scope
├─3867 "gdm-session-worker [pam/gdm-password]"
├─4057 /usr/libexec/gdm-wayland-session --register-session "/usr/lib/x86_64-linux-gnu/libexec/plasma-dbus-run-session-if-needed /usr/bin/startplasma-wayland"
└─4063 /usr/bin/startplasma-wayland
Unfortunately, no bueno there either on that thought process after a quick change and a reboot...
kevinj@jupiter:~$ echo $XDG_SESSION_TYPE
x11
kevinj@jupiter:~$ AstroPixelProcessor
May 09, 2025 8:39:36 PM com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @1bf0d964'
java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source)
at java.desktop/sun.font.SunFontManager.initCompositeFonts(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
First of all,
if you simply run : java --version
it will output the java version installed in your OS. This has nothing to do with the java runtime that APP uses. Already for 6 years at least, APP does not and should not be used with the java version of your OS. The installation has it's own Java runtime and it should be run with that. That is how a proper java application should be run.
APP beta36 is shipped and thus runs with a special version of java called GraalVM. The version is Oracle GraalVM 23. This version of java works quite differently then the regular java JDK/runtime from Oracle.
From your stack traces, it is quite clear that Ubuntu 24.10 is not compatible with JDK 23/graalVM 23.
I also know that the X11 window system is being replaced, that is maybe causing this. Perhaps is you run Ubuntu 24.10 with a different desktop and windowing system, it will work normally.
Further more, plasma could also be unsupported by either the JDK or our external OpenGL library.
The only thing at the moment that i could do is try to make a version for you wheren OpenGL is just completely disabled so it could work with plasma. But then you still have the other issue, the look and feel of the application can not even be created because Ubuntu 24.10 is not communicating normally with the Java runtime as before.
Mabula
Â
Unfortunately, no bueno there either on that thought process after a quick change and a reboot...
kevinj@jupiter:~$ echo $XDG_SESSION_TYPE
x11
kevinj@jupiter:~$ AstroPixelProcessor
May 09, 2025 8:39:36 PM com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @1bf0d964'
java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source)
at java.desktop/sun.font.SunFontManager.initCompositeFonts(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
Yes, so this is what i expected, we have no support yet for plasma, you will need to use the X11 window system. That solves the OpenGL bug. I can report that upstream to the OpenGL developers.
The other bug where Ubuntu and the java JDK can not communicate normally is still there. That one really feels fishy and possibly a bug in Ubuntu even.
I will check on the JDK bug list if this is know and if a newer JDK like 24.0.1 has a fix for it already. Otherwise, maybe the bug/issue list for Ubuntu has an explanation.
Thank you very much for reporting this, I will look into it and try to make it work from our end at least @itarchitectkev.
Mabula
Â
Yes I tried both plasma and X11 - shown above.
Both causes the same fault.
I tried various tricks I know with Java (IT guy/Software Prod Manager, java background (non-developer), etc) and I can't get past this problem.
I really want to get off 24.10 tbh. I think its related to Ubuntu. I get JavaFX errors immediately (shown above).
I tried various NVIDIA drivers and options and no avail irrespective of flags, tweaks, etc. I am hesitant to redeploy Java in its entirety because my Cuda libraries are seemingly dependent on it - I use my graphics card in " alternative astro processing software" to very good benefits.
I upgraded from 24.10 to 25.04 now that is available for upgrade today.
Still the same problem.
I've tried running X11 and Wayland. This is not a Wayland problem.
My gdm configuration:
# GDM configuration storage # # See /usr/share/gdm/gdm.schemas for a list of available options. [daemon] # Uncomment the line below to force the login screen to use Xorg WaylandEnable=false
Â
By default it is commented, Wayland is Enabled.
Same error. Same error on 24.10 and 25.04.
kevinj@jupiter:~$ AstroPixelProcessor
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source)
at java.desktop/sun.font.SunFontManager.initCompositeFonts(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.desktop/sun.font.SunFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.FcFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.X11FontManager.<init>(Unknown Source)
at java.desktop/sun.font.PlatformFontInfo.createFontManager(Unknown Source)
at java.desktop/sun.font.FontManagerFactory.getInstance(Unknown Source)
at java.desktop/sun.font.FontUtilities.getFontConfigFUIR(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.PangoFonts.lookupFont(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.getGTKStyleFactory(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initialize(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at com.ariesproductions.astropixelprocessor.AstroPixelProcessor.main(AstroPixelProcessor.java:1260)
Â
What are the next suggestions? This is unusable for me.
Consulting Gemini, suggests this is a font issue -- there are errors relating to fonts in the output, but I didn't consider that the cause.
What font is this expecting?
That java.lang.NullPointerException you're encountering in AstroPixelProcessor (APP) on Ubuntu 25.04 points to an issue with how Java is handling fonts on your system. Specifically, it seems like the system is trying to find a font file based on a platform-specific name, but it's encountering a null value where it expects a string.
Here's a breakdown of how to troubleshoot this:
1. Understand the Error:
java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null: This is the core of the problem. The Java code is trying to use the startsWith() method on a String object, but that object is null. In this context, the null object is likely a font name or path that the system is trying to process.
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source): This line suggests the error is happening within Java's font management system, specifically when trying to determine the actual file name of a font based on its platform-specific identifier on your X11 display server (the graphical system used by Ubuntu).
The subsequent lines indicate that this initial error during font loading is cascading through various parts of the Swing (Java's GUI toolkit) initialization, eventually affecting the AstroPixelProcessor initialization.
2. Initial Troubleshooting Steps:
Restart AstroPixelProcessor: Sometimes, a temporary glitch can cause this. Try closing and reopening APP.
Restart Your Computer: A full system restart can resolve underlying issues with the display server or font cache.
Ensure Java is Properly Installed: While you're running APP, it's worth verifying that you have a compatible and correctly installed Java Development Kit (JDK) or Java Runtime Environment (JRE). APP likely has minimum Java version requirements. You can check your Java version in the terminal:
Bash
java -version
Make sure the version meets APP's recommendations.
3. Investigate Font Issues:
This error strongly suggests a problem with the fonts available or accessible to Java on your Ubuntu system. Here's how to investigate:
Check for Missing or Corrupted Fonts:
AstroPixelProcessor might rely on specific fonts. If those fonts are missing or corrupted, it could lead to this error during font initialization.
Consider if you've recently removed or modified any fonts on your system.
Rebuild Font Cache: The font cache helps the system quickly access font information. Sometimes, this cache can become corrupted. You can try rebuilding it:
Bash
sudo fc-cache -fv
After running this command, restart your computer and try running APP again.
Install Missing Fonts (if known): If you know APP requires specific fonts, ensure they are installed. You can use the apt package manager:
Bash
sudo apt update
sudo apt install <font-package-name>
If you're unsure which fonts are needed, you might need to consult APP's documentation or forums. Common font packages include fonts-freefont-ttf, fonts-dejavu, fonts-noto, etc.
Check System Font Configuration: While less likely to be the direct cause, issues with your system's font configuration could potentially interfere. You can usually access font settings through your desktop environment's settings manager.
4. Consider Java Configuration:
JAVA_FONTS Environment Variable (Advanced): In some cases, you can try to explicitly tell Java where to find fonts using the JAVA_FONTS environment variable.
Bash
export JAVA_FONTS="/usr/share/fonts:/usr/local/share/fonts:$HOME/.fonts"
Then try running APP from the same terminal. If this helps, you might want to make this setting persistent in your shell configuration file (e.g., .bashrc or .zshrc). However, be cautious when modifying environment variables.
Specific Java Runtime for APP: If you've installed multiple Java versions, ensure APP is using a compatible one. Some applications allow you to specify the Java runtime to use. Check APP's documentation or launch scripts for any such options.
5. Check AstroPixelProcessor Specifics:
APP Documentation and Forums: The AstroPixelProcessor community and documentation are the best resources for application-specific issues. Search their forums or documentation for this specific error or similar font-related problems on Linux. Other users might have encountered and resolved this.
APP Installation Instructions: Double-check the official installation instructions for APP on Linux to ensure you haven't missed any dependencies, including font packages.
6. Report the Issue (if it persists):
If none of the above steps resolve the issue, consider reporting the bug to the AstroPixelProcessor developers. Provide them with:
The full error message.
Your operating system version (Ubuntu 25.04).
Your Java version (java -version).
Any steps you've already taken to troubleshoot the problem.
By systematically working through these steps, you should be able to identify the root cause of the NullPointerException related to font handling and get AstroPixelProcessor running on your Ubuntu system. Good luck!
Can you tell me how to enable debugging. There is a reference to an additional AstroPixelProcessor.l4j.ini file -- can you send me an example please?
Yes I tried both plasma and X11 - shown above.
Both causes the same fault.
I tried various tricks I know with Java (IT guy/Software Prod Manager, java background (non-developer), etc) and I can't get past this problem.
I really want to get off 24.10 tbh. I think its related to Ubuntu. I get JavaFX errors immediately (shown above).
I tried various NVIDIA drivers and options and no avail irrespective of flags, tweaks, etc. I am hesitant to redeploy Java in its entirety because my Cuda libraries are seemingly dependent on it - I use my graphics card in " alternative astro processing software" to very good benefits.
Hi @itarchitectkev,Â
Okay, the JavaFX output is not an error, but a warning and it actually shows on all systems. That warning is caused by our code not yet confirming to the JDK 9 module system. In beta37 we have fixed that :-). So that warning will be gone for everyone starting with beta37.
Your java deployment as explained earlier has nothing to do with how APP works. APP needs to be used with it's own Java runtime.
Â
Â
I upgraded from 24.10 to 25.04 now that is available for upgrade today.
Still the same problem.I've tried running X11 and Wayland. This is not a Wayland problem.
My gdm configuration:
# GDM configuration storage # # See /usr/share/gdm/gdm.schemas for a list of available options. [daemon] # Uncomment the line below to force the login screen to use Xorg WaylandEnable=falseÂ
By default it is commented, Wayland is Enabled.
Same error. Same error on 24.10 and 25.04.
kevinj@jupiter:~$ AstroPixelProcessor
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source)
at java.desktop/sun.font.SunFontManager.initCompositeFonts(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.desktop/sun.font.SunFontManager$2.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.desktop/sun.font.SunFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.FcFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.X11FontManager.<init>(Unknown Source)
at java.desktop/sun.font.PlatformFontInfo.createFontManager(Unknown Source)
at java.desktop/sun.font.FontManagerFactory.getInstance(Unknown Source)
at java.desktop/sun.font.FontUtilities.getFontConfigFUIR(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.PangoFonts.lookupFont(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.getGTKStyleFactory(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initialize(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at com.ariesproductions.astropixelprocessor.AstroPixelProcessor.main(AstroPixelProcessor.java:1260)Â
What are the next suggestions? This is unusable for me.
Hi @itarchitectkev,
This shows that your Ubuntu and our development platform have a serious bug actually. Our code simply initializes the look and feel of our application,. It is the Oracle Java code that is crashing here because your Ubuntu system does something that the Java Runtime does not understand or expect. We need to check upstream if this bug is known and if it might be fixed in a java update already.
I will soon release beta37 with an updated java version included so that might solve it.
Mabula
Â
Can you tell me how to enable debugging. There is a reference to an additional AstroPixelProcessor.l4j.ini file -- can you send me an example please?
@itarchitectkev, there is no AstroPixelProcessor.l4j.ini because we do not use it, our packaging dependency can be used with or without such a file for additional configuration of our linux isntallers and we simply do not need that file.
Â
@mabula-admin Just tried the appimage
BTW, I'm only running the CLI to capture the error.
However I find it out that the release notes state "if you choose to run this from the CLI" -- you shouldn't have two outcomes for the same command that gets spawned from a desktop as the exact same command that gets run from the CLI
kevinj@jupiter:~/Downloads$ ./AstroPixelProcessor.AppImage
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source)
at java.desktop/sun.font.SunFontManager.initCompositeFonts(Unknown Source)
at java.desktop/sun.font.SunFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.FcFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.X11FontManager.<init>(Unknown Source)
at java.desktop/sun.font.PlatformFontInfo.createFontManager(Unknown Source)
at java.desktop/sun.font.FontManagerFactory.getInstance(Unknown Source)
at java.desktop/sun.font.FontUtilities.getFontConfigFUIR(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.PangoFonts.lookupFont(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.getGTKStyleFactory(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initialize(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at astropixelprocessor@2.0.0-beta37/com.ariesproductions.astropixelprocessor.AstroPixelProcessor.main(AstroPixelProcessor.java:1275)
Exception in thread "Thread-0" java.lang.ExceptionInInitializerError
at java.prefs/java.util.prefs.FileSystemPreferencesFactory.userRoot(Unknown Source)
at java.prefs/java.util.prefs.Preferences.userRoot(Unknown Source)
at astropixelprocessor@2.0.0-beta37/com.ariesproductions.astropixelprocessor.ak.<clinit>(UserPreferences.java:42)
at astropixelprocessor@2.0.0-beta37/com.ariesproductions.astropixelprocessor.AstroPixelProcessor.a(AstroPixelProcessor.java:1380)
at astropixelprocessor@2.0.0-beta37/com.ariesproductions.astropixelprocessor.AstroPixelProcessor.k(AstroPixelProcessor.java:1154)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Shutdown in progress
at java.base/java.lang.ApplicationShutdownHooks.add(Unknown Source)
at java.base/java.lang.Runtime.addShutdownHook(Unknown Source)
at java.prefs/java.util.prefs.FileSystemPreferences.addShutdownHook(Unknown Source)
at java.prefs/java.util.prefs.FileSystemPreferences.<clinit>(Unknown Source)
... 6 more
So this is the same erro complaning aboutÂ
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source)
And same for Deb package (as expected)
kevinj@jupiter:~/Downloads$ unzip AstroPixelProcessor-latest-release-Linux-DEB-64-bit.zip
Archive: AstroPixelProcessor-latest-release-Linux-DEB-64-bit.zip
inflating: AstroPixelProcessor-2.0.0-beta37-Linux-DEB-64-bit.deb
kevinj@jupiter:~/Downloads$ sudo dpkg -i AstroPixelProcessor-2.0.0-beta37-Linux-DEB-64-bit.deb
(Reading database ... 743684 files and directories currently installed.)
Preparing to unpack AstroPixelProcessor-2.0.0-beta37-Linux-DEB-64-bit.deb ...
Unpacking astropixelprocessor (2.0.0-beta37) over (2.0.0-beta36) ...
Setting up astropixelprocessor (2.0.0-beta37) ...
Processing triggers for mailcap (3.74ubuntu1) ...
Processing triggers for desktop-file-utils (0.28-1) ...
Processing triggers for gnome-menus (3.36.0-1.1ubuntu3) ...
Processing triggers for mate-menus (1.26.1-1build3) ...
Processing triggers for bamfdaemon (0.5.6+22.04.20220217-0ubuntu5) ...
Rebuilding /usr/share/applications/bamf-2.index...
kevinj@jupiter:~/Downloads$ which AstroPixelProcessor
/usr/local/bin/AstroPixelProcessor
kevinj@jupiter:~/Downloads$ ls -al `!!`
ls -al `which AstroPixelProcessor `
lrwxrwxrwx 1 root root 44 May 22 21:37 /usr/local/bin/AstroPixelProcessor -> /opt/AstroPixelProcessor/AstroPixelProcessor
kevinj@jupiter:~/Downloads$ AstroPixelProcessor
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because "<parameter1>" is null
at java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(Unknown Source)
at java.desktop/sun.font.SunFontManager.initCompositeFonts(Unknown Source)
at java.desktop/sun.font.SunFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.FcFontManager.<init>(Unknown Source)
at java.desktop/sun.awt.X11FontManager.<init>(Unknown Source)
at java.desktop/sun.font.PlatformFontInfo.createFontManager(Unknown Source)
at java.desktop/sun.font.FontManagerFactory.getInstance(Unknown Source)
at java.desktop/sun.font.FontUtilities.getFontConfigFUIR(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.PangoFonts.lookupFont(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.getGTKStyleFactory(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(Unknown Source)
at java.desktop/com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initialize(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at java.desktop/javax.swing.UIManager.setLookAndFeel(Unknown Source)
at astropixelprocessor@2.0.0-beta37/com.ariesproductions.astropixelprocessor.AstroPixelProcessor.main(AstroPixelProcessor.java:1275)
Exception in thread "Thread-0" java.lang.ExceptionInInitializerError
at java.prefs/java.util.prefs.FileSystemPreferencesFactory.userRoot(Unknown Source)
at java.prefs/java.util.prefs.Preferences.userRoot(Unknown Source)
at astropixelprocessor@2.0.0-beta37/com.ariesproductions.astropixelprocessor.ak.<clinit>(UserPreferences.java:42)
at astropixelprocessor@2.0.0-beta37/com.ariesproductions.astropixelprocessor.AstroPixelProcessor.a(AstroPixelProcessor.java:1380)
at astropixelprocessor@2.0.0-beta37/com.ariesproductions.astropixelprocessor.AstroPixelProcessor.k(AstroPixelProcessor.java:1154)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Shutdown in progress
at java.base/java.lang.ApplicationShutdownHooks.add(Unknown Source)
at java.base/java.lang.Runtime.addShutdownHook(Unknown Source)
at java.prefs/java.util.prefs.FileSystemPreferences.addShutdownHook(Unknown Source)
at java.prefs/java.util.prefs.FileSystemPreferences.<clinit>(Unknown Source)
... 6 more
The reason I asked for debugging is that I wanted a trace to see what fonts it was looking up, or what library.
It might be a missing font package that got removed between upgrades from 24.04 to 24.10 and to now 25.04.
So whilst I asked for log4j configuration, I saw it was mentioned your wrapper (AstroPixelProcessor) where it references an ini file, and if found, I assumed could override some values.Â
Hi @itarchitectkev,
Okay, so I was not yet able to find a solution for your Ubuntu 24/25 issue, so it is not surprising that beta37 gives the same error. Clearly the JDK24 also has not solved that one and I did not find a bug report as well on the JDK list for this even. It seams a specific Ubuntu issue at the moment.I will try to run APP myself in a vm with this new Ubuntu version to see if I can find a way to fix it.
Maybe you are right, if I can provide the proper fonts on the path then the error can go away.
Mabula
Update.
I installed a 24.04 VM and ran APP in there. And it worked.
I installed a 25.04 VM and ran APP in there. And it worked.
This isn't a "Ubuntu version" problem, but something else.
If there's a way to get more debug information on the CLI I can start to narrow down. I'd rather run my APP natively on my hardware than through a KVM VM.
Hi @mabula-admin I was unable to get to the bottom of the issue after doing an in-place reinstallation of all packages, after trying to do a comparison and removal of packages between fresh install and upgraded packages... and in the end I reinstalled fresh Ubuntu 25.04.
APP works on a fresh install.
This can be closed. However to aid future troubleshooting, please allow the ability to debug/view more information in the logs. If people are comfortable running Linux and going to this level of troubleshooting, they are very competent in able to assist yourself and others with similar problems in the future.
Hi @itarchitectkev,
Sorry for my late reply. I was not yet able to download and test your issue with Ubuntu 24/25. because other issues were still in front of yours on which i worked in the past days.
I am very glad to read that APP does work with those Ubuntu versions using fresh installs.
However to aid future troubleshooting, please allow the ability to debug/view more information in the logs
Yes, of course, I understand that whenever an issue occurs we must be able to see the error, and try to understand the error so we can solve it.
Having said that, the error that you received from the command line did indicate a problem in code which is not ours, but the Java Development Kit / JDK right? And it clearly showed that the JDK had an issue with the OS layer in my opinion. I did look in the JDK bug list for known/open Linux issues but I was not able to find any known issue similar to yours, so I could not relate to that either or communicate that to you earlier.
I think that we can assume that it was a problem on the OS side with a messed up Linux installation probably, after an Ubuntu upgrade I suspect. Wouldn't you agree with me on this?
Regarding debug/view logs, all the errors that were relevant you saw I think. That stacktrace in your post to start the topic was clearly the issue and a consequence of a problem on the OS side. It directly indicated to me that your OS had an issue somehow or that you were even using/hacking APP In an unsupported way (I need to stay open to all possibilities as well), that is why I argued:
All these first lines are from the java.desktop module, which is our development platform, so not our code. That last line is from our code, so I have checked if that code line can be related to the issue.
Our code initiates the look and feel of our application from the java JDK. That should simply work. To be sure, is my assumption correct that you are not trying to hack APP to run with a different JDK than the one shipped in the installation?
At first glance, it looks like the development platform, or Java 23 which is very new does not support this Ubuntu version for some reason. So I will also need to dive into the java JDK bugs/issue list if it has been reported earlier and is being worked on.
APP's next release beta37 will run on JDK 24, so we have updated it as well, so that might solve it already if the bug is in JDK 23.
Another reason can actually be a bug in that Ubuntu release also since it seams that the call getFileNameFromPlatformName does not report anything which would be quite weird.
In hindsight, these arguments based on that stacktrace that you reported were logical and sound and it was weird that your Ubuntu install somehow produced this error it turned out I think. I guess with updating Ubuntu, a certain Ubuntu OS property was messed up so the call getFileNameFromPlatformName gave an unexpected error in the JDK code. That would be my conclusion here.
Finally, if you run APP from the commandline like you did, you will get System Error on the command line, so you will see these errors that are not caught properly.
There is also a way on Linux (RPM/DEB) for you to run APP in a supported way that can save both system out and error at the same time to a log file, go to the location where your Linux distribution saves the .desktop files of installed applications. Like:
[mabula@linux applications]$ cd /usr/share/applications/ [mabula@linux applications]$ gtk-launch AstroPixelProcessor.desktop 2>&1 | tee /home/mabula/log.txt
Replace mabula with your linux username. This will run APP with all configurations as supported and it will create a log in your user directory with all the possible errors and system out messages.Â
I hope this helps going forward, and thanks a lot for your debugging help and reporting the issue in the first place.
Information like this to debug will also be in the upcoming manual for all platforms.
Mabula
