public InputStream getFileInputStream(File file) throws IOException { String owner = this.buildNewOwnerId("getFileInputStream"); AbstractProxy proxy = this.getAvailableProxy(owner); try { InputStream raw = proxy.getFileInputStream(this.translateToRemote(file)); if (USE_BUFFER) { return new BufferedInputStream(raw, BUFFER_SIZE); } else { return raw; } } catch (IOException e) { releaseProxy(proxy, owner); throw e; } catch (RuntimeException e) { releaseProxy(proxy, owner); throw e; } // Pas de "releaseLock" systematique ici car c'est le stream qui s'en charge a la fermeture }