private void callLogCallback(int type, String txt) throws LogCallback.DoneException {
        Matcher matcher = LOG_LINE.matcher(txt);
        if (!matcher.matches()) {
            callback.error(String.format("Invalid log format for '%s' (expected: \"<timestamp> <txt>\") [%04x %04x]",
                                         txt,(int) (txt.toCharArray())[0],(int) (txt.toCharArray())[1]));
            throw new LogCallback.DoneException();
        }
        ZonedDateTime ts = TimestampFactory.createTimestamp(matcher.group("timestamp"));
        String logTxt = matcher.group("entry");
        callback.log(type, ts, logTxt);
    }
This is a copy of ByteStreams.readFully(), with the slight change that it throws
NoBytesReadException if zero bytes are read. Otherwise it is identical.

@param in
@param bytes
@throws IOException
src/main/java/io/fabric8/maven/docker/access/log/LogRequestor.java