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

api/javax_swing/text/html/parser/Parser/index.html#handle[Parser2010] fails on JDK7 b07

XMLWordPrintable

    • b15
    • generic
    • generic
    • Verified

      JCK: JCK-runtime-6 b36
      J2SE: FAIL - JDK 7 b07,b08 PASS JDK 6 b104 JDK 7 b06
      Platform[s]: FAIL - all
      switch/Mode: FAIL - default

      Test api/javax_swing/text/html/parser/Parser/index.html#handle[Parser2010] fails on jdk7 b07 with the following message:
       
      java.lang.NullPointerException
      at javax.swing.text.html.parser.Parser.startTag(Parser.java:385)
      at javasoft.sqe.tests.api.javax.swing.text.html.parser.Parser.StubParser.startTag(StubParser.java:48)
      at javax.swing.text.html.parser.Parser.parseTag(Parser.java:1926)
      at javax.swing.text.html.parser.Parser.parseContent(Parser.java:2044)
      at javax.swing.text.html.parser.Parser.parse(Parser.java:2211)
      at javasoft.sqe.tests.api.javax.swing.text.html.parser.Parser.handleTests.Parser2010(handleTests.java:77)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at javasoft.sqe.javatest.lib.MultiTest.invokeTestCase(MultiTest.java:406)
      at javasoft.sqe.jck.lib.EDTest.access$001(EDTest.java:31)
      at javasoft.sqe.jck.lib.EDTest$1.run(EDTest.java:45)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:595)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
      Parser2009: Passed. OKAY
      Parser2010: Failed. protected void handleEmptyTag(TagElement tag) throws ChangedCharSetException Test Failed
      Parser2011: Passed. OKAY
      Parser2012: Passed. OKAY
      Parser2013: Passed. OKAY
      Parser2014: Passed. OKAY
      Parser2015: Passed. OKAY
      Parser2016: Passed. OKAY

      steps to reproduce:
      import java.io.PrintWriter;
      import java.io.StringReader;
      import javax.swing.text.html.parser.*;


      public class ParseTest{
      public static void main(String[] args)

      {
              try {
                  StubParser c = new StubParser(new DTD("TestName"){});
                  c.parse(new StringReader("<b>"));

                  if(!(c.emptyTagCount == 1))
      {
                    System.out.println(" protected void handleEmptyTag(TagElement tag) throws ChangedCharSetException Test Failed ");
      return;
      }
        }catch(Exception e){
        e.printStackTrace();
      return;
      }
      System.out.println(" OK ");
      return;

      }
      }

      import java.io.IOException;
      import javax.swing.text.html.parser.DTD;
      import javax.swing.text.html.parser.Parser;
      import javax.swing.text.html.parser.Element;
      import javax.swing.text.html.parser.TagElement;
      import javax.swing.text.SimpleAttributeSet;
      import javax.swing.text.ChangedCharSetException;

      class StubParser extends Parser {

          public String errorMsg = "";
          public String title = "";
          public String text = "";
          public String comment = "";
          public int tagCountStart = 0;
          public int tagCountEnd = 0;
          public int emptyTagCount = 0;
          public int endTagCount = 0;
          public int startTagCount = 0;
          public int eofInComment = 0;
          public boolean testDTDMarkup = false;
          public String strDTDMarkup = "";
          public int currentLine = 0;
          public int currentPos = 0;

          boolean currentLineOnComment = false;
          boolean currentPosOnText = false;

          public StubParser(DTD dtd) {
              super( dtd);
          }
          
          public DTD getDTD() {
              return super.dtd;
          }

          protected void startTag(TagElement tag) throws ChangedCharSetException {
              tagCountStart++;
      super.startTag( tag);
          }

          protected void endTag(boolean omitted) {
              tagCountEnd++;
      super.endTag( omitted);
          }

          protected void handleComment(char[] text) {
              if(testDTDMarkup) {
      try {
      strDTDMarkup = parseDTDMarkup();
      } catch(IOException ioe) {
      strDTDMarkup = "Exception ioe has been thrown";
      }
      } else {
      if(currentLineOnComment) {
      currentLine = getCurrentLine();
      } else {
                      comment = new String( text);
                      super.handleComment( text);
      }
      }
          }

          protected void handleEmptyTag(TagElement tag) throws ChangedCharSetException {
              emptyTagCount++;
      super.handleEmptyTag( tag);
          }

          protected void handleEndTag(TagElement tag) {
              endTagCount++;
      super.handleEndTag( tag);
          }

          protected void handleEOFInComment() {
              eofInComment++;
      super.handleEOFInComment();
          }

          protected void handleError(int ln, String msg) {
              errorMsg = msg;
      super.handleError( ln, msg);
          }

          protected void handleText(char[] ctext) {
              if(currentPosOnText) {
      currentPos = getCurrentPos();
      }
              text = new String( ctext);
      super.handleText( ctext);
          }

          protected void handleTitle(char[] text) {
              title = new String( text);
      super.handleTitle( text);
          }

          protected void handleStartTag(TagElement tag) {
              startTagCount++;
      super.handleStartTag( tag);
          }

          protected boolean parseMarkupDeclarations(StringBuffer strBuff) throws IOException {
              return super.parseMarkupDeclarations( strBuff);
          }

          public String parseDTDMarkup() throws IOException {
              if( testDTDMarkup ) {
                  return super.parseDTDMarkup();
      }
      return "";
          }

          public TagElement makeTag(Element elem, boolean fictional) {
              return super.makeTag( elem, fictional);
          }

          public TagElement makeTag(Element elem) {
              return super.makeTag( elem);
          }

          public SimpleAttributeSet getAttributes() {
              return super.getAttributes();
          }

          public void flushAttributes() {
              super.flushAttributes();
          }

          public void error(String str) {
              super.error( str);
          }

          public void error(String str, String str1) {
              super.error( str, str1);
          }

          public void error(String str, String str1, String str2) {
              super.error( str, str1, str2);
          }

          public void error(String str, String str1, String str2, String str3) {
              super.error( str, str1, str2, str3);
          }

          public int getTagCount() {
              return tagCountStart + tagCountEnd;
          }

          public String getErrorMessage() {
              return errorMsg;
          }

          public void returnCurrentLineOnComment(boolean currLine) {
              this.currentLineOnComment = currLine;
          }

          public void returnCurrentPosOnText(boolean currPos) {
              this.currentPosOnText = currPos;
          }

      }

      on JDK 7 b07 test returns:

      C:\tests\Parser>Z:\Links\stt\jdk_promotions\JDK7.0\b08\binaries\windows-i586\jdk
      java.lang.NullPointerException
              at javax.swing.text.html.parser.Parser.startTag(Parser.java:385)
              at StubParser.startTag(StubParser.java:39)
              at javax.swing.text.html.parser.Parser.parseTag(Parser.java:1926)
              at javax.swing.text.html.parser.Parser.parseContent(Parser.java:2044)
              at javax.swing.text.html.parser.Parser.parse(Parser.java:2211)
              at ParseTest.main(ParseTest.java:17)
      protected void handleEmptyTag(TagElement tag) throws ChangedCharSetException Test Failed

            gsm Sergey Groznyh (Inactive)
            pastepan Pavel Stepanov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: