Instance: use getInstance()
[nikiroo-utils.git] / src / be / nikiroo / fanfix / library / RemoteLibrary.java
index 4d8d5123bc787bcf65167bc29dd2d8d840200083..c2774f936e8966cb7358c30e446bd86f4242b027 100644 (file)
@@ -41,12 +41,7 @@ public class RemoteLibrary extends BasicLibrary {
                        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;
+                               throw remoteEx.unwrapException();
                        }
 
                        return rep;
@@ -83,7 +78,7 @@ public class RemoteLibrary extends BasicLibrary {
         * <li><b>wl</b>: flag to allow access to all the stories (bypassing the
         * whitelist if it exists)</li>
         * </ul>
-        * 
+        * <p>
         * Some examples:
         * <ul>
         * <li><b>my_key</b>: normal connection, will take the default server
@@ -129,9 +124,9 @@ public class RemoteLibrary extends BasicLibrary {
 
        @Override
        public Status getStatus() {
-               Instance.getTraceHandler().trace("Getting remote lib status...");
+               Instance.getInstance().getTraceHandler().trace("Getting remote lib status...");
                Status status = getStatusDo();
-               Instance.getTraceHandler().trace("Remote lib status: " + status);
+               Instance.getInstance().getTraceHandler().trace("Remote lib status: " + status);
                return status;
        }
 
@@ -357,8 +352,9 @@ public class RemoteLibrary extends BasicLibrary {
 
        @Override
        // Could work (more slowly) without it
-       public Story imprt(final URL url, Progress pg) throws IOException {
+       public MetaData imprt(final URL url, Progress pg) throws IOException {
                // Import the file locally if it is actually a file
+               
                if (url == null || url.getProtocol().equalsIgnoreCase("file")) {
                        return super.imprt(url, pg);
                }
@@ -369,13 +365,7 @@ public class RemoteLibrary extends BasicLibrary {
                        pg = new Progress();
                }
 
-               pg.setMinMax(0, 2);
-               Progress pgImprt = new Progress();
-               Progress pgGet = new Progress();
-               pg.addProgress(pgImprt, 1);
-               pg.addProgress(pgGet, 1);
-
-               final Progress pgF = pgImprt;
+               final Progress pgF = pg;
                final String[] luid = new String[1];
 
                connectRemoteAction(new RemoteAction() {
@@ -404,11 +394,8 @@ public class RemoteLibrary extends BasicLibrary {
                        throw new IOException("Remote failure");
                }
 
-               Story story = getStory(luid[0], pgGet);
-               pgGet.done();
-
                pg.done();
-               return story;
+               return getInfo(luid[0]);
        }
 
        @Override
@@ -446,6 +433,9 @@ public class RemoteLibrary extends BasicLibrary {
 
        /**
         * Stop the server.
+        * 
+        * @throws IOException
+        *             in case of I/O error (including bad key)
         */
        public void exit() throws IOException {
                connectRemoteAction(new RemoteAction() {
@@ -453,6 +443,7 @@ public class RemoteLibrary extends BasicLibrary {
                        public void action(ConnectActionClientObject action)
                                        throws Exception {
                                action.send(new Object[] { subkey, "EXIT" });
+                               Thread.sleep(100);
                        }
                });
        }
@@ -569,7 +560,7 @@ public class RemoteLibrary extends BasicLibrary {
                                @Override
                                protected void onError(Exception e) {
                                        if (!(e instanceof IOException)) {
-                                               Instance.getTraceHandler().error(e);
+                                               Instance.getInstance().getTraceHandler().error(e);
                                                return;
                                        }