[jbosstools-issues] [JBoss JIRA] (JBIDE-9846) XHTML Syntax Validation goes into infinite loop in fillInStackTrace()

Victor Rubezhny (Issue Comment Edited) (JIRA) jira-events at lists.jboss.org
Thu Oct 6 10:01:17 EDT 2011


    [ https://issues.jboss.org/browse/JBIDE-9846?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12632748#comment-12632748 ] 

Victor Rubezhny edited comment on JBIDE-9846 at 10/6/11 10:00 AM:
------------------------------------------------------------------

This is the point to have http://apache.org/xml/features/continue-after-fatal-error feature is set to "true", because otherwise we cannot collect and control all the syntax errors against the page. If you disable this feature XHTML Syntax Validation error messages will not be actual and valid. Most of SAX Parse errors are fatal errors, so, because of this fact, the parser has never parses all the page content, but finishes its execution when it meets the very first problem.
We need to read (and parse) all the page content due to see (and correctly represent) all the errors within the page.
So, I would like to have this feature to be set to true, or don't use SAX Parser at all for validation purposes.

The previous version of XHTML Syntax Validator used two-pass validation. First pass of parsing was used to detect if the page is to be validated (is it XHTML page?) and the second pass did the validation itself. We can filter out non-well-formed pages and, if so, we can skip the real validation against such pages, but indicate (by error marker) that the page is not well-formed instead.
                
      was (Author: vrubezhny):
    This is the point to have http://apache.org/xml/features/continue-after-fatal-error feature is set to "true", because otherwise we cannot collect and control all the syntax errors against the page. If you disable this feature XHTML Syntax Validation error messages will not be actual and valid. Most of SAX Parse errors are fatal errors, so, because of this fact, the parser has never parses all the page text, but finishes its execution if faces the vary first problem.
We need to read (and parse) all the page content due to see (and correctly represent) all the errors within the page.
So, I would like to have this feature to be set to true, or don't use SAX Parser at all for validation purposes.

The previous version of XHTML Syntax Validator used two-pass validation. First pass of parsing was used to detect if the page is to be validated (is it XHTML page?) and the second pass did the validation itself. We can filter out non-well-formed pages and, if so, we can skip the real validation against such pages, but indicate (by error marker) that the page is not well-formed instead.
                  
> XHTML Syntax Validation goes into infinite loop in fillInStackTrace()
> ---------------------------------------------------------------------
>
>                 Key: JBIDE-9846
>                 URL: https://issues.jboss.org/browse/JBIDE-9846
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: jsp/jsf/xml source editing
>    Affects Versions: 3.3.0.M4
>         Environment: Verified in Ubuntu 32b and 64b, Mac OSX.
>            Reporter: Victor Rubezhny
>            Assignee: Victor Rubezhny
>            Priority: Blocker
>             Fix For: 3.3.0.M4
>
>         Attachments: Throwable.fillInStackTrace-1.txt, XHTMLSyntaxValidationInfinite.png, XHTMLValidator-jbide-9846.patch
>
>
> In some cases XHTML Syntax Validator goes into an infinite loop in native fillInStackTrace() method.
> STEPS TO REPRODUCE:
> ===================
> EXECUTE: Create an XHTML page in some JSF, Seam or CDI project
> EXECUTE: Fill it with the following content:
> {code}
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> </
> {code}
> EXECUTE: Save the page.
> ASSERT: See in Progress View that validation tasks finished after save operation.
> FAIL: "XHTML Syntax Validation" task is never comes to finish. CPU has high load (near to 100%)
> When paused in Degug session, you may see that one of the worker threads is stuck in Throwable.fillInStackTrace() native method.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosstools-issues mailing list