final byte[] buf = new byte[length + ofsMisAlign + (alignment - lenMisAlign)];
final byte[] buf = new byte[(length / alignment)  + alignment];
	public void read(long devOffset, byte[] dest, int destOffset, int length)	throws IOException {				if (length == 0) {			return;		}				final int ofsMisAlign = (int)(devOffset % alignment);		final int lenMisAlign = (length % alignment);				/*log.debug("devOffset  =" + devOffset);		log.debug("length     =" + length);		log.debug("ofsMisAlign=" + ofsMisAlign);		log.debug("lenMisAlign=" + lenMisAlign);*/				if ((ofsMisAlign != 0) || (lenMisAlign != 0)) {			final byte[] buf = new byte[length + ofsMisAlign + (alignment - lenMisAlign)];			parentApi.read(devOffset - ofsMisAlign, buf, 0, buf.length);			if (ofsMisAlign != 0) {				System.arraycopy(buf, alignment - ofsMisAlign, dest, destOffset, length);			} else {				System.arraycopy(buf, 0, dest, destOffset, length);			}		} else {			// Aligned call, pass on			parentApi.read(devOffset, dest, destOffset, length);		}	}