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

HTMLDocument.getIterator throws NPE for Block Tag

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: P4 P4
    • tbd
    • 8u5
    • client-libs
    • x86_64
    • linux_ubuntu

      FULL PRODUCT VERSION :
      java version "1.7.0_55"
      OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1)
      OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)


      ADDITIONAL OS VERSION INFORMATION :
      Linux Wall-E 3.13.0-30-generic #54-Ubuntu SMP Mon Jun 9 22:45:01 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      not relevant

      A DESCRIPTION OF THE PROBLEM :
      HTML support with JTextPane is already very terrible, especially because some parts are unfinished :

      This is from the class HTMLDocument

          public Iterator getIterator(HTML.Tag t) {
              if (t.isBlock()) {
                  // TBD
                  return null;
              }
              return new LeafIterator(t, this);
          }

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      HTMLDocument doc = new HTMLDocument();
      doc.getIterator(HTML.Tag.HEAD).next();

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      I expected to get the HEAD Element.
      ACTUAL -
      NullPointerException !

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
      at test.Test$1.run(Test.java:41)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
      at java.awt.EventQueue.access$200(EventQueue.java:103)
      at java.awt.EventQueue$3.run(EventQueue.java:694)
      at java.awt.EventQueue$3.run(EventQueue.java:692)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      HTMLDocument doc = new HTMLDocument();
      doc.getIterator(HTML.Tag.HEAD).next();
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      only for head element :
              try {
                  javax.swing.text.Element head = htmlDoc.getDefaultRootElement().getElement(0);
                  if(head.getName().equals("head")) {htmlDoc.remove(0, head.getEndOffset());return true;}
              } catch (BadLocationException ex) {
              }

            Unassigned Unassigned
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: