View Single Post
Old 03-20-2019, 07:11 AM   #1
phs
Junior Member
 
Join Date: Mar 2019
Posts: 4
Default 5.1 Crashes when launching Java 8 Swing app with closed lid

I have a macBook Pro (15-inch, Late 2016) running on macOS Mojave 10.14.3 with DisplayLink Driver 5.1 for the Dell Dock D6000.

I use a single external monitor with 1920x1200 resolution via a DisplayPort Adapter.

When I connect the macBook to the dock and close the lid, then I cannot start any Java Swing based application using JDK8 or JDK11.

You can use the following code to reproduce the problem. The code is based on a Stackoverflow example.

Code:
package dell_d6000;

import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Label;
import javax.swing.JFrame;

public class Demo {
	private static void print(String name) {
		System.out.println(name);
	}
	private static void print(String name, Object value) {
		System.out.println(name + ": '" + value + "'");
	}
	public static void main(String[] args) {
		print("=== Start ===");
		final GraphicsEnvironment localGraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
		print("localGraphicsEnvironment", localGraphicsEnvironment);
		final GraphicsDevice defaultScreenDevice = localGraphicsEnvironment.getDefaultScreenDevice();
		print("defaultScreenDevice", defaultScreenDevice);
		final GraphicsConfiguration defaultConfiguration = defaultScreenDevice.getDefaultConfiguration();
		print("defaultConfiguration", defaultConfiguration);
		print("'new JFrame(\"Demo\");' will produce a NullPointerException when defaultConfiguration is null. This is a DisplayLink Driver 5.1 bug");
		final JFrame frame = new JFrame("Demo");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().add(new Label("*** Hello World! ***"));
		frame.pack();
		frame.setVisible(true);
		print("==== End ====");
	}
}
I get the following output with closed lid (or open lid with mirroring enabled):

Code:
=== Start ===
localGraphicsEnvironment: 'sun.awt.CGraphicsEnvironment@3d075dc0'
defaultScreenDevice: 'sun.awt.CGraphicsDevice@214c265e'
defaultConfiguration: 'null'
'new JFrame("Demo");' will produce a NullPointerException when defaultConfiguration is null. This is a DisplayLink Driver 5.1 bug
Exception in thread "main" java.lang.NullPointerException
	at java.awt.Window.init(Window.java:497)
	at java.awt.Window.<init>(Window.java:537)
	at java.awt.Frame.<init>(Frame.java:420)
	at javax.swing.JFrame.<init>(JFrame.java:233)
	at dell_d6000.Demo.main(Demo.java:29)
And I get the following, expected output with open lid and mirroring disabled (JFrame is shown on the macBook screen):

Code:
=== Start ===
localGraphicsEnvironment: 'sun.awt.CGraphicsEnvironment@6d03e736'
defaultScreenDevice: 'sun.awt.CGraphicsDevice@568db2f2'
defaultConfiguration: 'CGLGraphicsConfig[dev=69733447,pixfmt=0]'
'new JFrame("Demo");' will produce a NullPointerException when defaultConfiguration is null. This is a DisplayLink Driver 5.1 bug
==== End ====
This issue is related to:

- https://www.displaylink.org/forum/sh...ad.php?t=66114
- https://stackoverflow.com/questions/...rtup-on-mac-os

A fix for this issue would be very much appreciated.

Thank you.

Last edited by phs; 03-20-2019 at 07:13 AM. Reason: Formatted second result
phs is offline   Reply With Quote