private final String clientName;
/** The FCP connection to the node. */
- private FcpConnection fcpConnection;
+ private FcpConnection fcpConnection = null;
/** Listeners for high-level client events. */
private List<HighLevelClientListener> highLevelClientListeners = Collections.synchronizedList(new ArrayList<HighLevelClientListener>());
*/
private void fireProgressReceived(String identifier, HighLevelProgress highLevelProgress) {
for (HighLevelProgressListener highLevelProgressListener: highLevelProgressListeners) {
- highLevelProgressListener.progressReceived(identifier, highLevelProgress);
+ highLevelProgressListener.progressReceived(this, identifier, highLevelProgress);
}
}
* if an I/O error occurs communicating with the node
*/
public HighLevelCallback<ConnectResult> connect(InetAddress address, int port) throws IOException {
- fcpConnection = new FcpConnection(address, port);
- fcpConnection.addFcpListener(highLevelClientFcpListener);
- fcpConnection.connect();
- ClientHello clientHello = new ClientHello(clientName);
- connectCallback = new HighLevelCallback<ConnectResult>(new ConnectResult());
- fcpConnection.sendMessage(clientHello);
- return connectCallback;
+ try {
+ fcpConnection = new FcpConnection(address, port);
+ fcpConnection.addFcpListener(highLevelClientFcpListener);
+ fcpConnection.connect();
+ ClientHello clientHello = new ClientHello(clientName);
+ connectCallback = new HighLevelCallback<ConnectResult>(new ConnectResult());
+ fcpConnection.sendMessage(clientHello);
+ return connectCallback;
+ } catch (IOException ioe1) {
+ fcpConnection = null;
+ throw ioe1;
+ }
}
/**
fcpConnection.close();
}
fcpConnection = null;
- fireClientDisconnected(throwable);
}
/**
}
cancelIdentifier(null);
disconnect(throwable);
+ fireClientDisconnected(throwable);
}
/**