After creating a POIFSFileSystem, fs.getRoot().getStorageClsid() always returns a GUID consisting entirely of zeros.
Created attachment 17932 [details] Workaround for the bug The real problem is probably that the recursive processProperties() method only processes the children and below. That method *does* manually set in the class ID for the directory nodes, it's only the root which doesn't get it set (which is where it is almost always needed.) I suppose a slightly better solution than my workaround would be having processProperties() start from the root. But the problem is, the PropertyTable() constructor automatically adds the root node all by itself, so it would need a setRoot() method perhaps.
The code has been changed and will no longer support this workaround. Please check with the latest 3.5beta4 and re-open if you still have trouble with the root CLSID.
Created attachment 23457 [details] Patch against current trunk Still a problem, here's an updated patch.
Applied in r766757 Regards, Yegor