public synchronized void close() throws IOException { if (impl != null) impl.close();
public synchronized void close() throws IOException { if (isClosed()) return;
	public synchronized void close() throws IOException {		if (impl != null)			impl.close();		if (ch != null)			ch.close();		closed = true;	}