sudden crash with java.lang.NoClassDefFoundError [message #1852680] |
Tue, 31 May 2022 09:40 |
Julia Kurde Messages: 91 Registered: November 2011 Location: Berlin, Germany |
Member |
|
|
Hello,
I have a weird problem with Eclipse applications running on a Windows Server 2019. After it was started it runs for some time without any problem and suddenly it crashes with an java.lang.NoClassDefFoundError.
The class which cannot be found differs, but is always one of the eclipse plugins. All files are in fact still there.
Here is an example:
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/internal/win32/WINDOWPLACEMENT
at org.eclipse.swt.widgets.Decorations.getLocationInPixels(Decorations.java:562)
at org.eclipse.swt.widgets.Shell.getLocationInPixels(Shell.java:1000)
at org.eclipse.swt.widgets.Decorations.WM_MOVE(Decorations.java:1566)
at org.eclipse.swt.widgets.Shell.WM_MOVE(Shell.java:2279)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4768)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:335)
at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1480)
at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2100)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4749)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(Native Method)
at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:508)
at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5644)
at org.eclipse.swt.widgets.Canvas.WM_WINDOWPOSCHANGED(Canvas.java:446)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4808)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:335)
at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1480)
at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2100)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4749)
at org.eclipse.swt.internal.win32.OS.DefWindowProc(Native Method)
at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:508)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4819)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:335)
at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1480)
at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2100)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4757)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(Native Method)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3522)
at test3.MyLayout.main(MyLayout.java:72)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.internal.win32.WINDOWPLACEMENT
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 28 more
My test application consists of just one class:
package test3;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.swt.widgets.Shell;
public class MyLayout {
public static void main (String [] args) {
final Display display = new Display ();
Shell shell = new Shell (display);
RowLayout rowLayout = new RowLayout ();
shell.setLayout (rowLayout);
final Button button = new Button (shell, SWT.TOGGLE);
button.setText ("button0");
button.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
String text = button.getSelection() ? "ON" : "OFF";
button.setText(text);
}
});
final ProgressBar progressbar = new ProgressBar (shell, SWT.INDETERMINATE);
progressbar.setVisible(false);
button.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
progressbar.setVisible(button.getSelection());
}
});
shell.pack ();
shell.open ();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ())
display.sleep ();
}
display.dispose ();
}
}
The project was exported as runnable jar from Eclipse IDE 2020-03.
The manifest file looks like this:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Test3
Bundle-SymbolicName: test3
Bundle-Version: 1.0.0.qualifier
Automatic-Module-Name: test3
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.swt
It crashed when the application window was restored from minimized state.
Similar crashes occur for more complicated RAP applications. In those cases the application somehow freezes and can only be closed by the Windows task manager. This, again, happens after about 15 to 60 minutes the application was started and had run without any problem.
Here, e.g. these classes cannot be found:
java.lang.NoClassDefFoundError: org/eclipse/core/internal/registry/RegistryMessages
java.lang.NoClassDefFoundError: org/eclipse/swt/internal/win32/SIZE
java.lang.NoClassDefFoundError: org/eclipse/ui/statushandlers/StatusAdapter
The problem does NOT happen for pure Java applications that do not use Eclipse.
It also happens only on this Windows Server. On a Windows 10 computer it runs without any problem.
Thanks for any ideas!
|
|
|
|
Re: sudden crash with java.lang.NoClassDefFoundError [message #1852760 is a reply to message #1852683] |
Fri, 03 June 2022 07:55 |
Julia Kurde Messages: 91 Registered: November 2011 Location: Berlin, Germany |
Member |
|
|
Thanks for your answer, Andy! I'll check that.
Update:
What I found out is that on a freshly installed Windows Server 2019 (free download 180 days test Version) this Error does not occur.
Windows defender settings are all on default.
Also different users logged in directly or via remote desktop all starting and running the same application does not make any problem.
The server where the error occurs, is a production system with many other processes running including a Citrix XenDesktop for remote access.
So the problem probably does not come from the Windows system itself but from additional software.
[Updated on: Fri, 01 July 2022 11:58] Report message to a moderator
|
|
|
Powered by
FUDForum. Page generated in 0.02991 seconds