+ interface RemoteAction {
+ public void action(ConnectActionClientObject action) throws Exception;
+ }
+
+ class RemoteConnectAction extends ConnectActionClientObject {
+ public RemoteConnectAction() throws IOException {
+ super(host, port, key);
+ }
+
+ @Override
+ public Object send(Object data) throws IOException,
+ NoSuchFieldException, NoSuchMethodException,
+ ClassNotFoundException {
+ Object rep = super.send(data);
+ if (rep instanceof RemoteLibraryException) {
+ RemoteLibraryException remoteEx = (RemoteLibraryException) rep;
+ IOException cause = remoteEx.getCause();
+ if (cause == null) {
+ cause = new IOException("IOException");
+ }
+
+ throw cause;
+ }
+
+ return rep;
+ }
+ }
+