-
Bug
-
Resolution: Cannot Reproduce
-
P3
-
8, 9
-
x86_64
-
linux
FULL PRODUCT VERSION :
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
CentOS 7 ( Also verified on Redhat 7)
centos 3.10.0-123.9.3.el7.x86_64
EXTRA RELEVANT SYSTEM CONFIGURATION :
Intel chipset (multiple verified)
Nvidia graphics (multiple models verified)
I'll take one specific example for the rest of the configuration:
Nvidia graphics display driver : 340.58
/etc/X11/xorg.conf file:
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Sceptre E246W-1080P"
HorizSync 29.0 - 81.0
VertRefresh 55.0 - 76.0
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Sceptre E246W-1080P"
HorizSync 29.0 - 81.0
VertRefresh 55.0 - 76.0
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 560"
BusID "PCI:7:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 560"
BusID "PCI:7:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Default Screen"
Device "Videocard0"
Monitor "Monitor0"
EndSection
Section "Screen"
# Removed Option "metamodes" "DVI-I-3: nvidia-auto-select +0+0"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
# Removed Option "metamodes" "DVI-I-2: nvidia-auto-select +0+0"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
A DESCRIPTION OF THE PROBLEM :
When running with two separate X displays (:0.0 and :0.1) on one system, Java only renders one screen correctly. It renders fine on one screen or the other, but not both simultaneously. I was only able to test it with a dual monitor setup, so I'm not sure would it would do with multiple displays.
REGRESSION. Last worked in version 7u72
ADDITIONAL REGRESSION INFORMATION:
All versions of java 7 seem to work correctly. All versions of Java 8 seem to be broken.
Here is a specific version of java 7 that I know works.
java version "1.7.0_72"
Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the code snippet below, and verify that only one screen is being rendered properly. A window is being displayed, but there is not text and the coloring looks off.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
When running the code in previous versions of java we would get the same window rendered on both screens.
ACTUAL -
Only one screen renders properly.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class JFrameTest {
public static void main(String[] args) {
GraphicsDevice[] devs = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
for (GraphicsDevice device : devs) {
JFrame frame = new JFrame("My Test", device.getDefaultConfiguration());
JPanel panel = new JPanel();
panel.add(new JButton("THis is a test"));
panel.add(new JLabel("This is a label"));
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
None found; except for using a previous version of java.
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
CentOS 7 ( Also verified on Redhat 7)
centos 3.10.0-123.9.3.el7.x86_64
EXTRA RELEVANT SYSTEM CONFIGURATION :
Intel chipset (multiple verified)
Nvidia graphics (multiple models verified)
I'll take one specific example for the rest of the configuration:
Nvidia graphics display driver : 340.58
/etc/X11/xorg.conf file:
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Sceptre E246W-1080P"
HorizSync 29.0 - 81.0
VertRefresh 55.0 - 76.0
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Sceptre E246W-1080P"
HorizSync 29.0 - 81.0
VertRefresh 55.0 - 76.0
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 560"
BusID "PCI:7:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 560"
BusID "PCI:7:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Default Screen"
Device "Videocard0"
Monitor "Monitor0"
EndSection
Section "Screen"
# Removed Option "metamodes" "DVI-I-3: nvidia-auto-select +0+0"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
# Removed Option "metamodes" "DVI-I-2: nvidia-auto-select +0+0"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
A DESCRIPTION OF THE PROBLEM :
When running with two separate X displays (:0.0 and :0.1) on one system, Java only renders one screen correctly. It renders fine on one screen or the other, but not both simultaneously. I was only able to test it with a dual monitor setup, so I'm not sure would it would do with multiple displays.
REGRESSION. Last worked in version 7u72
ADDITIONAL REGRESSION INFORMATION:
All versions of java 7 seem to work correctly. All versions of Java 8 seem to be broken.
Here is a specific version of java 7 that I know works.
java version "1.7.0_72"
Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the code snippet below, and verify that only one screen is being rendered properly. A window is being displayed, but there is not text and the coloring looks off.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
When running the code in previous versions of java we would get the same window rendered on both screens.
ACTUAL -
Only one screen renders properly.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class JFrameTest {
public static void main(String[] args) {
GraphicsDevice[] devs = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
for (GraphicsDevice device : devs) {
JFrame frame = new JFrame("My Test", device.getDefaultConfiguration());
JPanel panel = new JPanel();
panel.add(new JButton("THis is a test"));
panel.add(new JLabel("This is a label"));
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
None found; except for using a previous version of java.