Marek Neumann created BATIK-1366:
------------------------------------
Summary: Timeouts missing in URLConnection of ParsedURLData
Key: BATIK-1366
URL: https://issues.apache.org/jira/browse/BATIK-1366
Project: Batik
Issue Type: Bug
Affects Versions: 1.17
Reporter: Marek Neumann
Attachments: setting_timeouts_on_ParsedURLData.patch
We encounter several long running threads being stuck in building up http
connections:
{code:java}
[email protected]/sun.nio.ch.Net.poll(Native Method)
[email protected]/sun.nio.ch.NioSocketImpl.park(NioSocketImpl.java:181)
[email protected]/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:548)
[email protected]/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597)
[email protected]/java.net.Socket.connect(Socket.java:633)
[email protected]/sun.net.NetworkClient.doConnect(NetworkClient.java:181)
[email protected]/sun.net.www.http.HttpClient.openServer(HttpClient.java:531)
[email protected]/sun.net.www.http.HttpClient.openServer(HttpClient.java:636)
[email protected]/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:779)
[email protected]/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1688)
[email protected]/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
[email protected]/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3243)
[email protected]/java.net.URLConnection.getContentType(URLConnection.java:520)
app//org.apache.batik.util.ParsedURLData.openStreamInternal(ParsedURLData.java:548)
app//org.apache.batik.util.ParsedURLData.openStream(ParsedURLData.java:476)
app//org.apache.batik.util.ParsedURL.openStream(ParsedURL.java:440)
app//org.apache.batik.bridge.SVGImageElementBridge.openStream(SVGImageElementBridge.java:414)
app//org.apache.batik.bridge.SVGImageElementBridge.createImageGraphicsNode(SVGImageElementBridge.java:244)
app//org.apache.batik.bridge.SVGImageElementBridge.buildImageGraphicsNode(SVGImageElementBridge.java:179)
app//org.apache.batik.bridge.SVGImageElementBridge.createGraphicsNode(SVGImageElementBridge.java:121)
app//org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:213)
app//org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
app//org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82)
app//org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:210)
app//org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92)
app//org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
app//org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:158)
{code}
Looking at the code ParsedURLData does not seem to set any timeout (neither
connect nor read timeout) on the used java.net.URLConnection in
org/apache/batik/util/ParsedURLData.java:524.
I will attach a possible change which sets read and connect timeouts. The unit
test demonstrates that the read timeout is used accordingly. Likely the
location is not ideal and can be made configurable but I would leave it up to
the Batik devs.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]