[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xml-commons-dev
Subject:    DO NOT REPLY [Bug 48601] New: delegateURI and delegateSystem with
From:       bugzilla () apache ! org
Date:       2010-01-23 0:06:28
Message-ID: bug-48601-4657 () https ! issues ! apache ! org/bugzilla/
[Download RAW message or body]

https://issues.apache.org/bugzilla/show_bug.cgi?id=48601

           Summary: delegateURI and delegateSystem with the same URL cause
                    a bug in the resolver
           Product: XmlCommons
           Version: 1.x
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Resolver
        AssignedTo: commons-dev@xml.apache.org
        ReportedBy: daniel.leidert.spam@gmx.net


Created an attachment (id=24885)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=24885)
testcase (containg 3 catalogs and CatalogManager.properties)

(sent to the commons-dev list too)

For the long report read Debian bug#552018:
http://bugs.debian.org/552018

Say a catalog contains two entries delegateSystem and delegateURI
rewriting the same URL. Then the resolver fails to work correctly. It
strongly depends on the order in the catalog if the URI gets resolved.
Consider the attached testcase:

java -cp /usr/share/java/xml-commons-resolver-1.1.jar:. \
  org.apache.xml.resolver.apps.resolver -u http://invalid.invalid uri
> Parse catalog: catalog1.xml
> Loading catalog: catalog1.xml
> Default BASE: file:////usr/local/src/bugs/552018/catalog1.xml
> delegateSystem: http://invalid.invalid
>       catalog2.xml
> DELEGATE_SYSTEM: http://invalid.invalid
>       file:////usr/local/src/bugs/552018/catalog2.xml
> delegateURI: http://invalid.invalid
>       catalog2.xml
> DELEGATE_URI: http://invalid.invalid
>       file:////usr/local/src/bugs/552018/catalog2.xml
> Resolve URI (uri):
>         uri: http://invalid.invalid
> resolveURI(http://invalid.invalid)
> Result: null

Why doesn't it select the delegateURI entry? Now this:

java -cp /usr/share/java/xml-commons-resolver-1.1.jar:. \
  org.apache.xml.resolver.apps.resolver -s http://invalid.invalid system
> Parse catalog: catalog1.xml
> Loading catalog: catalog1.xml
> Default BASE: file:////usr/local/src/bugs/552018/catalog1.xml
> delegateSystem: http://invalid.invalid
>       catalog2.xml
> DELEGATE_SYSTEM: http://invalid.invalid
>       file:////usr/local/src/bugs/552018/catalog2.xml
> delegateURI: http://invalid.invalid
>       catalog2.xml
> DELEGATE_URI: http://invalid.invalid
>       file:////usr/local/src/bugs/552018/catalog2.xml
> Resolve SYSTEM (systemid):
>   system id: http://invalid.invalid
> resolveSystem(http://invalid.invalid)
> Switching to delegated catalog(s):
>       file:////usr/local/src/bugs/552018/catalog2.xml
> Parse catalog: file:////usr/local/src/bugs/552018/catalog2.xml
> Loading catalog: file:////usr/local/src/bugs/552018/catalog2.xml
> Default BASE: file:////usr/local/src/bugs/552018/catalog2.xml
> delegateURI: http://invalid.invalid
>       catalog3.xml
> DELEGATE_URI: http://invalid.invalid
>       file:////usr/local/src/bugs/552018/catalog3.xml
> delegateSystem: http://invalid.invalid
>       catalog3.xml
> DELEGATE_SYSTEM: http://invalid.invalid
>       file:////usr/local/src/bugs/552018/catalog3.xml
> resolveSystem(http://invalid.invalid)
> Result: null

It chooses catalog2.xml. But there it fails, because delegateURI is
listed before delegateSystem.

You see the problem? Ask for a system ID and it will fail if a
delegateURI entry with the same URI is parsed before the relevant
delegateSystem entry and ditto for URI and delegateSystem before
delegateURI.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic