public File[] listFiles(File file) { String owner = this.buildNewOwnerId("listFiles"); AbstractProxy proxy = (AbstractProxy) this.getAvailableProxy(owner); FictiveFile[] files = null; File[] returned = null; try { files = proxy.listFiles(this.translateToRemote(file)); returned = new File[files.length]; for (int i = 0; i < files.length; i++) { returned[i] = new FictiveFile( translateToLocal(files[i].getRemotePath()), files[i].getRemotePath(), files[i].length(), files[i].isDirectory(), files[i].exists(), files[i].lastModified()); } } catch (RemoteConnectionException e) { Logger.defaultLogger().error(e); throw new UnexpectedConnectionException(e); } finally { this.releaseProxy(proxy, owner); } return returned; }