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

Clipboard support is broken

XMLWordPrintable

    • x86_64
    • windows_7

      FULL PRODUCT VERSION :
      java version "1.9.0-ea"
      Java(TM) SE Runtime Environment (build 1.9.0-ea-b30)
      Java HotSpot(TM) Client VM (build 1.9.0-ea-b30, mixed mode, sharing)


      ADDITIONAL OS VERSION INFORMATION :
      Microsoft Windows [Version 6.1.7601]

      A DESCRIPTION OF THE PROBLEM :
      The access to clipboard crashes. Copy-paste from java to windows does not work.
      Exception in thread "main" java.lang.InternalError: Default flavor mapping not found
      at java.awt.datatransfer.SystemFlavorMap.initSystemFlavorMap(SystemFlavorMap.java:205)
      at java.awt.datatransfer.SystemFlavorMap.getNativeToFlavor(SystemFlavorMap.java:107)
      at java.awt.datatransfer.SystemFlavorMap.nativeToFlavorLookup(SystemFlavorMap.java:369)
      at java.awt.datatransfer.SystemFlavorMap.getFlavorsForNative(SystemFlavorMap.java:607)
      at sun.awt.datatransfer.DataTransferer.getFlavorsForFormatsAsSet(DataTransferer.java:487)
      at sun.awt.datatransfer.SunClipboard.formatArrayAsDataFlavorSet(SunClipboard.java:344)
      at sun.awt.datatransfer.SunClipboard.isDataFlavorAvailable(SunClipboard.java:186)
      at x.X.main(X.java:12)

      the code in SystemFlavorMap expects file flavormap.properties in "/sun/datatransfer/resources/":

      InputStream is = SystemFlavorMap.class.getResourceAsStream("/sun/datatransfer/resources/flavormap.properties");

      while the JDK actually stores this file in C:\Java\jdk1.9\jre\lib\resources.jar!\sun\awt\datatransfer\flavormap.properties

      REGRESSION. Last worked in version 8u20

      ADDITIONAL REGRESSION INFORMATION:
      java version "1.9.0-ea"
      Java(TM) SE Runtime Environment (build 1.9.0-ea-b30)
      Java HotSpot(TM) Client VM (build 1.9.0-ea-b30, mixed mode, sharing)


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Run following:
      package x;

      import java.awt.*;
      import java.awt.datatransfer.Clipboard;
      import java.awt.datatransfer.DataFlavor;

      public class X {
          public static void main(String[] args) {
              Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
              clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor);
          }
      }

      It crashes with exception:
      Exception in thread "main" java.lang.InternalError: Default flavor mapping not found
      at java.awt.datatransfer.SystemFlavorMap.initSystemFlavorMap(SystemFlavorMap.java:205)
      at java.awt.datatransfer.SystemFlavorMap.getNativeToFlavor(SystemFlavorMap.java:107)
      at java.awt.datatransfer.SystemFlavorMap.nativeToFlavorLookup(SystemFlavorMap.java:369)
      at java.awt.datatransfer.SystemFlavorMap.getFlavorsForNative(SystemFlavorMap.java:607)
      at sun.awt.datatransfer.DataTransferer.getFlavorsForFormatsAsSet(DataTransferer.java:487)
      at sun.awt.datatransfer.SunClipboard.formatArrayAsDataFlavorSet(SunClipboard.java:344)
      at sun.awt.datatransfer.SunClipboard.isDataFlavorAvailable(SunClipboard.java:186)
      at x.X.main(X.java:12)



      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      no exception
      ACTUAL -
      exception

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      Exception in thread "main" java.lang.InternalError: Default flavor mapping not found
      at java.awt.datatransfer.SystemFlavorMap.initSystemFlavorMap(SystemFlavorMap.java:205)
      at java.awt.datatransfer.SystemFlavorMap.getNativeToFlavor(SystemFlavorMap.java:107)
      at java.awt.datatransfer.SystemFlavorMap.nativeToFlavorLookup(SystemFlavorMap.java:369)
      at java.awt.datatransfer.SystemFlavorMap.getFlavorsForNative(SystemFlavorMap.java:607)
      at sun.awt.datatransfer.DataTransferer.getFlavorsForFormatsAsSet(DataTransferer.java:487)
      at sun.awt.datatransfer.SunClipboard.formatArrayAsDataFlavorSet(SunClipboard.java:344)
      at sun.awt.datatransfer.SunClipboard.isDataFlavorAvailable(SunClipboard.java:186)
      at x.X.main(X.java:12)


      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      package x;

      import java.awt.*;
      import java.awt.datatransfer.Clipboard;
      import java.awt.datatransfer.DataFlavor;

      public class X {
          public static void main(String[] args) {
              Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
              clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor);
          }
      }

      ---------- END SOURCE ----------

            serb Sergey Bylokhov
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: