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
  }