Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8366745

Canvas.createBufferStrategy(2) throws ClassCastException in headless mode

XMLWordPrintable

    • generic
    • generic

      A DESCRIPTION OF THE PROBLEM :
      A Canvas instance calls createBufferStrategy(2) when setting headless=true will trigger a ClassCastException.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      java -Djava.awt.headless=true HeadlessCanvas

      ACTUAL VS EXPECTED BEHAVIOR :
      ACTUAL -
      Exception in thread "main" java.lang.ClassCastException: class sun.java2d.HeadlessGraphicsEnvironment cannot be cast to class sun.java2d.SunGraphicsEnvironment (sun.java2d.HeadlessGraphicsEnvironment and sun.java2d.SunGraphicsEnvironment are in module java.desktop of loader 'bootstrap')
      at java.desktop/java.awt.Component.createBufferStrategy(Component.java:3878)
      at java.desktop/java.awt.Canvas.createBufferStrategy(Canvas.java:201)
      at java.desktop/java.awt.Component.createBufferStrategy(Component.java:3808)
      at java.desktop/java.awt.Canvas.createBufferStrategy(Canvas.java:176)
      at HeadlessCanvas.main(HeadlessCanvas.java:7)
      EXPECTED -
      IllegalStateException or HeadlessException

      ---------- BEGIN SOURCE ----------
      import java.awt.*;
      public class HeadlessCanvas {
          public static void main(String args[]) {
              Canvas c = new Canvas();

              try {
                  c.createBufferStrategy(2);
              } catch (HeadlessException e) {
                  // Expected behavior
              }
          }
      }
      ---------- END SOURCE ----------

            honkar Harshitha Onkar
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: