Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 4.1
-
Fix Version/s: None
-
Labels:None
-
Testcase included:yes
-
Number of attachments :
Description
By default validation should be disabled, as per setValidating javadoc:
"Specifies that the parser produced by this code will validate documents as they are parsed. By default the value of this is set to false."
And it says it is disabled, but it still tries to fetch it:
public class WstxTest {
private WstxSAXParserFactory factory = new WstxSAXParserFactory();
@Test
public void testDefaultFlagValues() throws SAXNotSupportedException, SAXNotRecognizedException
@Test
public void testDtdRef() throws IOException, SAXException
}
This code gives OK for testDefaultFlagValues, but gives:
Resolve called, -> org.xml.sax.helpers.DefaultHandler@1d80e6d
com.ctc.wstx.exc.WstxIOException: somewhere.ccc
at com.ctc.wstx.sax.WstxSAXParser.throwSaxException(WstxSAXParser.java:1173)
at com.ctc.wstx.sax.WstxSAXParser.parse(WstxSAXParser.java:541)
at com.ctc.wstx.sax.WstxSAXParser.parse(WstxSAXParser.java:307)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:198)
at ttt.WstxTest.testDtdRef(WstxTest.java:47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:44)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.junit.runner.JUnitCore.run(JUnitCore.java:159)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:94)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:192)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)
Caused by: com.ctc.wstx.exc.WstxIOException: somewhere.ccc
at com.ctc.wstx.sr.StreamScanner.throwFromIOE(StreamScanner.java:699)
at com.ctc.wstx.sr.ValidatingStreamReader.findDtdExtSubset(ValidatingStreamReader.java:480)
at com.ctc.wstx.sr.ValidatingStreamReader.finishDTD(ValidatingStreamReader.java:341)
at com.ctc.wstx.sr.BasicStreamReader.skipToken(BasicStreamReader.java:3341)
at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:1958)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1102)
at com.ctc.wstx.sax.WstxSAXParser.fireEvents(WstxSAXParser.java:600)
at com.ctc.wstx.sax.WstxSAXParser.parse(WstxSAXParser.java:537)
... 30 more
Caused by: java.net.UnknownHostException: somewhere.ccc
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
at sun.net.www.http.HttpClient.New(HttpClient.java:306)
at sun.net.www.http.HttpClient.New(HttpClient.java:323)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
at java.net.URL.openStream(URL.java:1010)
at com.ctc.wstx.util.URLUtil.inputStreamFromURL(URLUtil.java:146)
at com.ctc.wstx.io.DefaultInputResolver.sourceFromURL(DefaultInputResolver.java:254)
at com.ctc.wstx.io.DefaultInputResolver.resolveEntity(DefaultInputResolver.java:92)
at com.ctc.wstx.sr.ValidatingStreamReader.findDtdExtSubset(ValidatingStreamReader.java:471)
... 36 more
for second test. It uses ValidatingStream reader, while validation is disabled. Tested on 4.1.1