public int readImpl(ByteBuffer b) throws IOException {
		if(b == null)
			throw new IllegalArgumentException(this+"Cannot use a null ByteBuffer");

		//special code, read information in close() method
		if(isClosed())
			return -1;
		return channel.read(b);
	}