All, First, I'm not proposing any changes for 5.2.4 (many thanks PJ for running the release!).
In looking at DirectoryNode's getEntry, I see this: @Override public Entry getEntry(final String name) throws FileNotFoundException { Entry rval = null; if (name != null) { rval = _byname.get(name); } if (rval == null) { // throw more useful exceptions for known wrong file-extensions if(_byname.containsKey("Workbook")) { throw new IllegalArgumentException("The document is really a XLS file"); } else if(_byname.containsKey("PowerPoint Document")) { throw new IllegalArgumentException("The document is really a PPT file"); } else if(_byname.containsKey("VisioDocument")) { throw new IllegalArgumentException("The document is really a VSD file"); } // either a null name was given, or there is no such name throw new FileNotFoundException("no such entry: \"" + name + "\", had: " + _byname.keySet()); } return rval; } I blindly copied this logic into getEntryCaseInsenstive. Does anyone remember/know how the IllegalArgumentExceptions are more useful than the FNFE? If this is a general DirectoryNode for OLE2, shouldn't an fnfe be the right answer no matter whether its a ppt or xls or vsd? Thank you! Best, Tim