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.