Community
Participate
Working Groups
Observed on Redhat WS4 / Linux-GTK. Start an RSE server, port 27127 on build.eclipse.org: perl server.pl 27127 0 Create an RSE connection, type Linux, Launcher "Server Only" and set port to 27127 Try to connect --> supposedly due to firewall on build.eclipse.org, the connection does not work Open the Progress View and press the cancel button on the connect job --> connection is not canceled I suppose that the connect operation is hanging somewhere in Socket:connect. After a long timeout, the connect operation eventually terminates. But it would be better if the Socket:connect() call were made in a separate thread, such that the progress monitor is still checked for canceling, and the "connecting" thread can be canceled. The SshConnectorService (which is partly copied from Team/CVS) shows how this can be done, in ResponsiveSocketFactory.createSocket(), which in turn calls Util.createSocket(), which does the connection in a separate thread.
This should be possible to fix now that RemoteUtil.createSocket() is public available.
Shooting for RC1.
I verified that this is still an issue with RSE 3.0.1 / Eclipse 3.5m2 -- the build.eclipse.org server doesn't even notice that RSE tries to connect, because it's behind the Firewall. Here is where the connect hangs: Thread [Worker-6] (Suspended) PlainSocketImpl.socketConnect(InetAddress, int, int) line: not available [native method] SocksSocketImpl(PlainSocketImpl).doConnect(InetAddress, int, int) line: 333 SocksSocketImpl(PlainSocketImpl).connectToAddress(InetAddress, int, int) line: 195 SocksSocketImpl(PlainSocketImpl).connect(SocketAddress, int) line: 182 SocksSocketImpl.connect(SocketAddress, int) line: 366 Socket.connect(SocketAddress, int) line: 519 Socket.connect(SocketAddress) line: 469 Socket.<init>(SocketAddress, SocketAddress, boolean) line: 366 Socket.<init>(String, int) line: 180 ClientConnection.connect(String, int) line: 488 DStoreConnectorService.internalConnect(IProgressMonitor) line: 890 DStoreConnectorService(AbstractConnectorService).connect(IProgressMonitor) line: 412 SystemFetchOperation.execute(IProgressMonitor) line: 281 SystemFetchOperation.run(IProgressMonitor) line: 141 SystemViewFilterReferenceAdapter(AbstractSystemViewAdapter).fetchDeferredChildren(Object, IElementCollector, IProgressMonitor) line: 2300 DeferredTreeContentManager$1.run(IProgressMonitor) line: 234 Worker.run() line: 55
Unfortunately, ClientConnection is in org.eclipse.dstore.core which doesn't have a dependency on org.eclipse.rse.services -- so if RemoteUtil is to be used, it needs to be duplicated into org.eclipse.rse.dstore.core Also, a new API method for connect() which takes an IProgressMonitor needs to be added to ClientConnection in order for this to get implemented. Are the dstore owners interested in making this happen? It shouldn't be too hard now that all the analysis is done.
Reassigning all API related to 3.3
Moving deferred 3.3 api items to 3.4
We are post API freeze.