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

JTextPane: getPrefferedSize() results in NPE

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • None
    • 1.2.2
    • client-libs



      Name: vi73552 Date: 06/08/99


      run the following little programm.

      one time with the line getPrefferedSize
      and one time with the line setDebugGraphicsOption.

      Both lines result in a NullPointerException!

      public class Frame1 extends JFrame
      {
        javax.swing.JTextPane textPane = new javax.swing.JTextPane();

        public Frame1()
        {
          try
          {
              this.addWindowListener(new WindowAdapter()
              {
                public void windowClosing(WindowEvent e)
                {
                  System.exit(0);
                }
              }
            );
            jbInit();
          }
          catch (Exception e)
          {
            e.printStackTrace();
          }
        }

        public static void main(String[] args)
        {
          Frame1 frame11 = new Frame1();
          frame11.setSize(300,300);
          frame11.setVisible(true);
        }

        private void jbInit() throws Exception
          textPane.setText("32\np 2\np 3\nh g h jsdfhks");
           // textPane.setDebugGraphicsOptions(DebugGraphics.FLASH_OPTION);
           Dimension dim = textPane.getPreferredSize();
           this.getContentPane().add(textPane, BorderLayout.NORTH);

        }
      }

      ---------------------------------------------------------------
      trace with line Dimension dim = textPane.getPreferredSize();
      C:\jdk1.2.1\bin\javaw.exe -classpath "P:\CD;C:\JBuilder2\lib\jgl3.1.0.jar;C:\JBuilder2\lib\vbjorb.jar;C:\JBuilder2\lib\vbjapp.jar;C:\JBuilder2\lib\vbjgk.jar;C:\JBuilder2\lib\jbclx.jar;C:\JBuilder2\lib\jbcl2.0.jar;C:\JBuilder2\lib\jbcl2.0-res.jar;C:\JBuilder2\dependency\~JBCLX;C:\jdk1.2.1\jre\lib\rt.jar;C:\jdk1.2.1\jre\lib\i18n.jar;C:\jdk1.2.1\lib\dt.jar;C:\JBuilder2\dependency\~javaversion1.2.1" test.Frame1
      java.lang.NullPointerException
      at javax.swing.text.LabelView.syncFragments(LabelView.java:110)
      at javax.swing.text.LabelView.getPreferredSpan(LabelView.java:290)
      at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:642)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:822)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:285)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:794)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:822)
      at javax.swing.text.BoxView.getPreferredSpan(BoxView.java:262)
      at javax.swing.plaf.basic.BasicTextUI$RootView.getPreferredSpan(BasicTextUI.java:918)
      at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:551)
      at javax.swing.JComponent.getPreferredSize(JComponent.java:705)
      at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:934)
      at test.Frame1.jbInit(Frame1.java:90)
      at test.Frame1.<init>(Frame1.java:39)
      at test.Frame1.main(Frame1.java:49)

      ----------------------------------------------------------------
      with line: textPane.setDebugGraphicsOptions(DebugGraphics.FLASH_OPTION);
      -------------
      C:\jdk1.2.1\bin\javaw.exe -classpath "P:\CD;C:\JBuilder2\lib\jgl3.1.0.jar;C:\JBuilder2\lib\vbjorb.jar;C:\JBuilder2\lib\vbjapp.jar;C:\JBuilder2\lib\vbjgk.jar;C:\JBuilder2\lib\jbclx.jar;C:\JBuilder2\lib\jbcl2.0.jar;C:\JBuilder2\lib\jbcl2.0-res.jar;C:\JBuilder2\dependency\~JBCLX;C:\jdk1.2.1\jre\lib\rt.jar;C:\jdk1.2.1\jre\lib\i18n.jar;C:\jdk1.2.1\lib\dt.jar;C:\JBuilder2\dependency\~javaversion1.2.1" test.Frame1
      java.lang.ClassCastException: javax.swing.DebugGraphics
      at javax.swing.text.LabelView.syncFragments(LabelView.java:109)
      at javax.swing.text.LabelView.getPreferredSpan(LabelView.java:290)
      at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:642)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:822)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:285)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:794)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:822)
      at javax.swing.text.BoxView.getPreferredSpan(BoxView.java:262)
      at javax.swing.plaf.basic.BasicTextUI$RootView.getPreferredSpan(BasicTextUI.java:918)
      at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:551)
      at javax.swing.JComponent.getPreferredSize(JComponent.java:705)
      at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:934)
      at java.awt.BorderLayout.layoutContainer(BorderLayout.java:618)
      at java.awt.Container.layout(Container.java:490)
      at java.awt.Container.doLayout(Container.java:480)
      at java.awt.Container.validateTree(Container.java:550)
      at java.awt.Container.validateTree(Container.java:557)
      at java.awt.Container.validateTree(Container.java:557)
      at java.awt.Container.validateTree(Container.java:557)
      at java.awt.Container.validate(Container.java:532)
      at java.awt.Window.show(Window.java:282)
      at java.awt.Component.show(Component.java:838)
      at java.awt.Component.setVisible(Component.java:800)
      at test.Frame1.main(Frame1.java:52)

      ------------------------------------------------------------
      Take a look at the comment in LabelView

      106: // REMIND (bcb) its not clear that this is the right way to get
      107: // a font render context.
      108: syncProperties();
      109: Graphics2D g2d = (Graphics2D)getContainer().getGraphics();
      110: FontRenderContext frc = g2d.getFontRenderContext();

      --------------------------------------------------------------
      I hope this is reproducable on your system

      regards

      Roman
      (Review ID: 84068)
      ======================================================================

            tprinzing Tim Prinzing (Inactive)
            vasya Vassili Igouchkine (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: