jar.Main: comments (1) InputstreamSupplier: since what we really need here is the byte[], maybe just go straightforward to use InputStream/Files.(path)readAllBytes() ?
(2) #273 don't the "moduleInfo" used for consistency check the same one as the used for updating at #244? can't be shared? (3) if it was me I would simply have passed the "moduleInfoBytes" around as a byte[], we might not even need this "InputStreamSupplier" interface. (4) printModuleDescriptor: for a "file" jar, it might be much faster to open the zip file with a ZipFile, then entry -> input stream. otherwise, the ZIS might be very slow if it's a big jar and the descriptor file is at the end of the file. (5) hashDependences: "matcher" can be reused as Matcher m = dependenciesToHash.matcher(""); for (...) { m.reset(...).find() ... } btw, what's the spec of the "mach" here? a "match()" or a "find()"? just check. -sherman