public synchronized void close() throws IOException {
IOUtils.deltree(root); // NO exception here
root.getParentFile().delete(); // only if empty
public synchronized void close() throws IOException {
IOUtils.deltree(root); // NO exception here
root.getParentFile().delete(); // only if empty