MyFaces Core
  1. MyFaces Core
  2. MYFACES-3061

Failure rendering the whole page by ajax due to ui:debug

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.4
    • Fix Version/s: 2.0.5
    • Component/s: None
    • Labels:
      None

      Description

      The following code:

      <h:head>
      </h:head>

      <h:body>
      <h:form>
      <ui:debug />

      <h:commandLink value="Ajax">
      <f:ajax render="@all" />
      </h:commandLink>
      </h:form>
      </h:body>

      Fails to update page correctly in Chrome browser.

        Activity

        Hide
        Werner Punz added a comment -

        Hi Nick thanks for reporting the bug I will look into it the following days.

        Werner

        Show
        Werner Punz added a comment - Hi Nick thanks for reporting the bug I will look into it the following days. Werner
        Hide
        Werner Punz added a comment -

        Ok before diggin into this, I guess this is a bug which is directly related to a chrome bug, the head altering code should not trigger on chrome because it does nothing. Chrome also sometimes for instance in my jquery testcase has the behavior to render nothing at all (but in that case on mojarra while it works on myfaces.)
        I will start to investigate this bug now, but I assume we run into some weird internal exception here caused by the response and the usual fallbacks I did in the scripts for those cases have missed a condition.

        Show
        Werner Punz added a comment - Ok before diggin into this, I guess this is a bug which is directly related to a chrome bug, the head altering code should not trigger on chrome because it does nothing. Chrome also sometimes for instance in my jquery testcase has the behavior to render nothing at all (but in that case on mojarra while it works on myfaces.) I will start to investigate this bug now, but I assume we run into some weird internal exception here caused by the response and the usual fallbacks I did in the scripts for those cases have missed a condition.
        Hide
        Werner Punz added a comment -

        Ok the bug is reproducable

        Show
        Werner Punz added a comment - Ok the bug is reproducable
        Hide
        Werner Punz added a comment -

        Ok I guess i found the issue, myfaces jsf.js uses the browser internal parsers (xml parser in that case) to get a shadow dom representation of the response, because regexp filters should only be a last fallback due to their semantic problems, the isse seems to be that the xml parser fails does a recovery and does not produce an error, and so parts of the response are swallowed in chromes case.
        I have to shift the entire parsing for this usecase entirely to regexp filters and probably have to issue a bugreport to the webkit people.
        The only usecase affected by this seems to be the render viewroot, and the only browser not correctly issuing errors seems to be chrome.

        Show
        Werner Punz added a comment - Ok I guess i found the issue, myfaces jsf.js uses the browser internal parsers (xml parser in that case) to get a shadow dom representation of the response, because regexp filters should only be a last fallback due to their semantic problems, the isse seems to be that the xml parser fails does a recovery and does not produce an error, and so parts of the response are swallowed in chromes case. I have to shift the entire parsing for this usecase entirely to regexp filters and probably have to issue a bugreport to the webkit people. The only usecase affected by this seems to be the render viewroot, and the only browser not correctly issuing errors seems to be chrome.
        Hide
        Werner Punz added a comment -

        Ok after testing this on chrome and webkit, I come to the conclusion this is a general bug in the webkit xml parsing engine, which seems to swallow part of the xhtml page when parsed. I will switch over to the regexp filters for all webkit versions. The issue with the regexp filters is that <Unable to render embedded object: File (-- <head> --> <) not found.-- <body> --> or is a no go if you do a render all or render body.

        Show
        Werner Punz added a comment - Ok after testing this on chrome and webkit, I come to the conclusion this is a general bug in the webkit xml parsing engine, which seems to swallow part of the xhtml page when parsed. I will switch over to the regexp filters for all webkit versions. The issue with the regexp filters is that < Unable to render embedded object: File (-- <head> --> <) not found. -- <body> --> or is a no go if you do a render all or render body.
        Hide
        Werner Punz added a comment -

        Thanks for reporting the bug, the issue as reported is more a bug in webkit than in myfaces but nevertheless, workaround code had to be added to fix this

        Show
        Werner Punz added a comment - Thanks for reporting the bug, the issue as reported is more a bug in webkit than in myfaces but nevertheless, workaround code had to be added to fix this

          People

          • Assignee:
            Werner Punz
            Reporter:
            Nick Belaevski
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development