IvyDE
  1. IvyDE
  2. IVYDE-329

Disable DTD external fetching for matching ivy/ivy

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.2.0.final
    • Component/s: None
    • Labels:
    • Environment:

      Ivy 2.4.0.alpha/IvyDE 2.2.0.beta2

      Description

      Our team uses Ivy/IvyDE, and noticed Eclipse hanging today/yesterday, to the point of being unusable.

      I tracked it down to Eclipse asking IvyDE "is this your file?", which IvyDE's IvySettingsContentDescriber used XMLHelper.parse to answer, but then Xerces hung while trying to load the XML file's DTD.

      So, the problem was the DTD being unavailable, but it seems like XMLHelper should turn this off, especially if the schema parameter is null, and it's in non-validating mode.

      The attached patch turns off external DTD fetching when XMLHelper is already in non-validating mode.

      This avoids the wire call, which speeds up the XMLHelper.parse by at least 100%, ~250-300ms when fetching the DTD, to ~100-150ms when not. (And this is the happy case, in the worst case, waiting for the timeout if the DTD is unavailable, takes ~20s).

      1. optionalExternalDtds-ivyde.diff
        2 kB
        Stephen Haberman
      2. optionalExternalDtds.diff
        3 kB
        Stephen Haberman
      3. ivyde-xml-dtd-hung.txt
        5 kB
        Stephen Haberman

        Activity

        Stephen Haberman created issue -
        Stephen Haberman made changes -
        Field Original Value New Value
        Attachment ivyde-xml-dtd-hung.txt [ 12550875 ]
        Stephen Haberman made changes -
        Attachment disableExternalDtds.diff [ 12550876 ]
        Maarten Coene made changes -
        Project Ivy [ 12310580 ] IvyDE [ 12310640 ]
        Key IVY-1386 IVYDE-329
        Issue Type Bug [ 1 ] Improvement [ 4 ]
        Affects Version/s trunk [ 12320744 ]
        Stephen Haberman made changes -
        Attachment optionalExternalDtds.diff [ 12570608 ]
        Attachment optionalExternalDtds2.diff [ 12570609 ]
        Stephen Haberman made changes -
        Attachment optionalExternalDtds2.diff [ 12570609 ]
        Stephen Haberman made changes -
        Attachment disableExternalDtds.diff [ 12550876 ]
        Stephen Haberman made changes -
        Attachment optionalExternalDtds-ivyde.diff [ 12570616 ]
        Stephen Haberman made changes -
        Summary Disable DTD external fetching when not validation Disable DTD external fetching for matching ivy/ivy
        Nicolas Lalevée made changes -
        Labels patch
        Nicolas Lalevée made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Assignee Nicolas Lalevée [ hibou ]
        Fix Version/s trunk [ 12320552 ]
        Resolution Fixed [ 1 ]

          People

          • Assignee:
            Nicolas Lalevée
            Reporter:
            Stephen Haberman
          • Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development