X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Flibrary%2FRemoteLibrary.java;h=a4f00ceff53546eaf1849e526c656add37fa6d17;hb=2ef9514282fc9d93bfa73bfcda7f8cc85bd32c5b;hp=4d8d5123bc787bcf65167bc29dd2d8d840200083;hpb=0bb51c9c66697fe63ba066715207deabbcc1d479;p=fanfix.git
diff --git a/src/be/nikiroo/fanfix/library/RemoteLibrary.java b/src/be/nikiroo/fanfix/library/RemoteLibrary.java
index 4d8d512..a4f00ce 100644
--- a/src/be/nikiroo/fanfix/library/RemoteLibrary.java
+++ b/src/be/nikiroo/fanfix/library/RemoteLibrary.java
@@ -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 {
*
wl: flag to allow access to all the stories (bypassing the
* whitelist if it exists)
*
- *
+ *
* Some examples:
*
* - my_key: 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
@@ -439,26 +426,32 @@ public class RemoteLibrary extends BasicLibrary {
}
@Override
- public synchronized File getFile(final String luid, Progress pg) {
+ public File getFile(final String luid, Progress pg) {
throw new java.lang.InternalError(
"Operation not supportorted on remote Libraries");
}
/**
* Stop the server.
+ *
+ * @throws IOException
+ * in case of I/O errors
+ * @throws SSLException
+ * when the key was not accepted
*/
- public void exit() throws IOException {
+ public void exit() throws IOException, SSLException {
connectRemoteAction(new RemoteAction() {
@Override
public void action(ConnectActionClientObject action)
throws Exception {
action.send(new Object[] { subkey, "EXIT" });
+ Thread.sleep(100);
}
});
}
@Override
- public synchronized MetaData getInfo(String luid) throws IOException {
+ public MetaData getInfo(String luid) throws IOException {
List metas = getMetasList(luid, null);
if (!metas.isEmpty()) {
return metas.get(0);
@@ -569,7 +562,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;
}