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

TextField/TextArea should not load datatransfer classes on startup

XMLWordPrintable

    • beta2
    • generic
    • solaris_8
    • Verified



      Name: dsR10078 Date: 03/24/2001


      After 4422171 is fixed a related problem remains unresolved.
      On Solaris/Linux any application which uses TextField or TextArea loads
      many datatransfer classes on startup even if they will not be used.
      This has a negative impact on startup time and footprint.

      Here is a test case to reproduce the problem:
      -------------------------------------------------------------------
      import java.awt.Frame;
      import java.awt.TextField;
      import java.awt.TextArea;
      import java.awt.FlowLayout;
      import java.awt.event.WindowAdapter;
      import java.awt.event.WindowEvent;

      public class Test {
          public static void main(String[] args) {
              final TextArea textarea = new TextArea();
              final TextField textfield = new TextField();
              final Frame frame = new Frame();
              final FlowLayout layout = new FlowLayout();
              final WindowAdapter windowAdapter = new WindowAdapter() {
                      public void windowClosing(WindowEvent e) {
                          frame.dispose();
                      }
                  };
              frame.setLayout(layout);
              frame.add(textarea);
              frame.add(textfield);
              frame.pack();
              frame.addWindowListener(windowAdapter);
              frame.setVisible(true);
          }
      }
      -------------------------------------------------------------------

      Run this test with '-verbose:class' option.
      Here is an excerpt from output:
       
      ...
      [Loaded sun.awt.motif.MTextAreaPeer from
      /merlin/build/solaris-i386/classes]
      [Loaded sun.awt.motif.X11Selection from
      /merlin/build/solaris-i386/classes]
      [Loaded java.awt.datatransfer.FlavorMap from
      /merlin/build/solaris-i386/classes]
      [Loaded java.awt.datatransfer.FlavorTable from
      /merlin/build/solaris-i386/classes]
      [Loaded java.awt.datatransfer.SystemFlavorMap from
      /merlin/build/solaris-i386/classes]
      [Loaded java.awt.datatransfer.DataFlavor from
      /merlin/build/solaris-i386/classes]
      [Loaded java.awt.datatransfer.MimeTypeParameterList from
      /merlin/build/solaris-i386/classes]
      [Loaded java.awt.datatransfer.MimeType from
      /merlin/build/solaris-i386/classes]
      [Loaded java.awt.datatransfer.DataFlavor$1 from
      /merlin/build/solaris-i386/classes]
      [Loaded java.awt.Image from /merlin/build/solaris-i386/classes]
      [Loaded java.awt.datatransfer.SystemFlavorMap$1 from
      /merlin/build/solaris-i386/classes]
      [Loaded java.awt.datatransfer.SystemFlavorMap$2 from
      /merlin/build/solaris-i386/classes]
      [Loaded sun.awt.datatransfer.DataTransferer from
      /merlin/build/solaris-i386/classes]
      [Loaded sun.awt.datatransfer.DataTransferer$IndexedComparator from
      /merlin/build/solaris-i386/classes]
      [Loaded sun.awt.datatransfer.DataTransferer$CharsetComparator from
      /merlin/build/solaris-i386/classes]
      [Loaded sun.awt.datatransfer.DataTransferer$DataFlavorComparator from
      /merlin/build/solaris-i386/classes]
      [Loaded sun.awt.datatransfer.DataTransferer$1 from
      /merlin/build/solaris-i386/classes]
      [Loaded sun.awt.motif.MDataTransferer from
      /merlin/build/solaris-i386/classes]
      [Loaded sun.awt.datatransfer.ToolkitThreadBlockedHandler from
      /merlin/build/solaris-i386/classes]
      [Loaded java.awt.datatransfer.Transferable from
      /merlin/build/solaris-i386/classes]
      ...

      This happens since Motif peer classes for TextField/TextArea load
      X11Selection
      in their static initializers to fix 4354288. This triggers loading of
      all other
      classes.

      ###@###.### 2001-03-16
      ======================================================================

            ibdsunw Ibd Ibd (Inactive)
            dassunw Das Das (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: