050822, Mustang, Linux. I opened a source file and chose CVS -> Show XXX.java
Annotations. It began running but did not finish. (Probably the proxy setting
was wrong, but javacvs seems to ignore the proxy configuration that the rest of
the IDE uses, and I cannot find any place to tell it to use a proxy right now -
I go on and off SWAN frequently, often with the IDE running.)
Anyway, seeing that it was not going to work (and after getting the answer I
wanted from the command line), I right-clicked on the process in the status bar
and chose Cancel. But nothing happened, even after multiple attempts. Nothing
relevant-looking in messages.log.
Note: several minutes later, the operation did time out and ask me for my proxy
Could you provide thread dump please? I suspect that interrupt() does not work
for direct socket implementation. It should raise InterruptedIOException.
Besides one coumpound progress should be used here instead of two atomic.
Created attachment 24184 [details]
Thread dumps: go on SWAN, try to refresh status of prj w/ No Proxy, kill -QUIT, try to Cancel a couple of times, kill -QUIT again
I was able to trigger following one that is not interruptible:
"Wizard Background Validation" daemon prio=1 tid=0x5a08b138 nid=0x268f runnable
at java.net.PlainSocketImpl.socketConnect(Native Method)
- locked <0x459cb9e0> (a java.net.SocksSocketImpl)
All traces share uninterruptible blocking call to
RFE 6315293 on Java 6.
Possible workaround: post the Socket.connect to a new separate thread, then
join() on it. Now the main task thread can be interrupted. If so, the call to
connect will just continue in the background until it times out (or succeeds),
but this won't matter much. You can probably also have the connection be closed
if it did eventually succeed but the task thread was interrupted.
*** Issue 64673 has been marked as a duplicate of this issue. ***
After a bit of searching I found the next classes within the projects "CVS
Client Library" and "CVS Versioning System" using SocketFactory.createSocket:
The next classes use Connection.open:
I hope this helps making the scope of the problem domain clear.
I'll follow new separate thread proposal.
Note: some information execeptions logged.