[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[platform-webdav-dev] Q about thread safety of Eclipse WebDAV
|
Is org.eclipse.webdav.client.RemoteDAVClient supposed to be thread-safe?
When I call methods on the same instance of RemoteDAVClient from different
threads, I've been getting java.io.IOException: Malformed status line.:
java.io.IOException: Malformed status line.
at
org.eclipse.webdav.http.client.HttpConnection.readServerResponse(HttpConnection.java:1139)
at
org.eclipse.webdav.http.client.HttpConnection.access$4(HttpConnection.java:1133)
at
org.eclipse.webdav.http.client.HttpConnection$CachedOutputStream.close(HttpConnection.java:594)
at
org.eclipse.webdav.http.client.HttpClient.invoke2(HttpClient.java:912)
at
org.eclipse.webdav.http.client.HttpClient.invoke1(HttpClient.java:769)
at
org.eclipse.webdav.http.client.HttpClient.invoke1(HttpClient.java:826)
at
org.eclipse.webdav.http.client.HttpClient.invoke(HttpClient.java:752)
at
org.eclipse.webdav.client.RemoteDAVClient.proppatch(RemoteDAVClient.java:465)
at
MalformedStatusLineBug.createContact(MalformedStatusLineBug.java:138)
at MalformedStatusLineBug.run(MalformedStatusLineBug.java:46)
Also, many assertions fail. I'm attaching the entire output of a sample
run:
(See attached file: MalformedStatusLineOutput.txt)
Attached is a simple program that reproduces the exception:
(See attached file: MalformedStatusLineException.java)
The program takes a single command-line argument specifying the number of
threads to be created. If only 1 thread is created, everything works fine.
However, if more than 1 thread is created, the exception usually occurs.
I've also seen the exception occur with a (slightly) different call stack,
but I don't have a simple standalone test case that replicates that exact
version of the problem. In this case, the exception also occurs in the
readServerResponse() method of the
org.eclipse.webdav.http.client.HttpConnection class. Here is the entire
call stack of that thread:
Thread [Connections Recycler] (Suspended (exception IOException))
HttpConnection.readServerResponse() line: 1139
HttpConnection.access$4(HttpConnection) line: 1133
HttpConnection$CachedOutputStream.close() line: 594
HttpConnection.endRequest() line: 730
HttpConnection.close() line: 674
HttpClient$ConnectionsRecycler.recycle() line: 334
HttpClient$ConnectionsRecycler.run() line: 350
Attachment:
MalformedStatusLineOutput.txt
Description: Binary data
Attachment:
MalformedStatusLineException.java
Description: Binary data