Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 355076

Summary: p2 needs to be more forgiving when it encounters bad XML in mirrorsURL Property
Product: [Eclipse Project] Equinox Reporter: Wayne Pascoe <wayne.pascoe>
Component: p2Assignee: P2 Inbox <equinox.p2-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: miles.daffin
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard: stalebug

Description Wayne Pascoe CLA 2011-08-18 09:08:38 EDT
Build Identifier: I20110613-1736

We are seeing strange behavior with a specific repo. The repo in question is http://download.itemis.com/updates/releases/
 
Looking at the context.xml in the context.jar at http://download.itemis.de/updates/releases/2.0.0/content.jar , I see the following line:
<property name='p2.mirrorsURL' value='http://download.itemis.de/updates/'/>

The content at http://download.itemis.de/updates/?countryCode=gb&timeZone=0&format=xml is not parseable by p2, but instead of this failing, we would prefer to see an error logged and p2 to proceed without using a mirror.

When attempting to mirror this, I get the following errors:
Error processing mirrors URL: http://download.itemis.de/updates/?countryCode=gb&timeZone=0&format=xml

The StackTrace for this is 
org.xml.sax.SAXParseException: White spaces are required between publicId and systemId.
            at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:249)
            at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
            at org.eclipse.equinox.internal.p2.artifact.repository.MirrorSelector.computeMirrors(MirrorSelector.java:208)
            at org.eclipse.equinox.internal.p2.artifact.repository.MirrorSelector.initMirrors(MirrorSelector.java:269)
            at org.eclipse.equinox.internal.p2.artifact.repository.MirrorSelector.selectMirror(MirrorSelector.java:328)
            at org.eclipse.equinox.internal.p2.artifact.repository.MirrorSelector.getMirrorLocation(MirrorSelector.java:247)
            at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getMirror(SimpleArtifactRepository.java:651)
            at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:568)
            at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getRawArtifact(SimpleArtifactRepository.java:689)
            at org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository.getRawOrNormalArtifact(CompositeArtifactRepository.java:367)
            at org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository.getRawArtifact(CompositeArtifactRepository.java:359)
            at org.eclipse.equinox.internal.p2.artifact.repository.RawMirrorRequest.getArtifact(RawMirrorRequest.java:79)
            at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transferSingle(MirrorRequest.java:235)
            at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transfer(MirrorRequest.java:191)
            at org.eclipse.equinox.internal.p2.artifact.repository.RawMirrorRequest.perform(RawMirrorRequest.java:47)
            at org.eclipse.b3.aggregator.engine.MirrorGenerator.mirror(MirrorGenerator.java:332)
            at org.eclipse.b3.aggregator.engine.MirrorGenerator.mirror(MirrorGenerator.java:289)
            at org.eclipse.b3.aggregator.engine.MirrorGenerator.run(MirrorGenerator.java:467)
            at org.eclipse.b3.aggregator.engine.Builder.runMirroring(Builder.java:1707)
            at org.eclipse.b3.aggregator.engine.Builder.run(Builder.java:1657)
            at org.eclipse.b3.aggregator.presentation.AggregatorActionBarContributor$BuildAggregationAction$1.run(AggregatorActionBarContributor.java:292)
            at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)


Reproducible: Always

Steps to Reproduce:
1. Attempt to mirror repository at http://download.itemis.com/updates/releases/ using a tool such as the b3 aggregator
Comment 1 Eclipse Genie CLA 2019-05-03 13:21:14 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.