if i want to extract text from powerpoint sheets in different ways i always get a runtime exception about the non-(no longer?) existent method 'org.apache.poi.util.StringUtil.getFromUnicodeLE' (poi-bin-3.0.2-FINAL-20080204) Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.util.StringUtil.getFromUnicodeLE([B)Ljava/lang/String; at org.apache.poi.hslf.record.CurrentUserAtom.init(CurrentUserAtom.java:160) at org.apache.poi.hslf.record.CurrentUserAtom.<init>(CurrentUserAtom.java:112) at org.apache.poi.hslf.HSLFSlideShow.readCurrentUserStream(HSLFSlideShow.java:275) at org.apache.poi.hslf.HSLFSlideShow.<init>(HSLFSlideShow.java:131) at org.apache.poi.hslf.extractor.PowerPointExtractor.<init>(PowerPointExtractor.java:92) at org.apache.poi.hslf.extractor.PowerPointExtractor.<init>(PowerPointExtractor.java:85) . . .
NoSuchMethodError (the link-time equivalent of NoSuchMethodException) usually occurs across jars, when two incompatible versions are interacting. In this case it looks like poi.jar(StringUtil) vs poi-scratchpad.jar(CurrentUserAtom). This error says that CurrentUserAtom is invoking a version of StringUtil that is different to the one that it was compiled against. However, the getFromUnicodeLE method seems to have been present in StringUtil for a long time. I decompiled that class as found in poi-bin-3.0.2-FINAL-20080204.tar.gz (http://www.apache.org/dyn/closer.cgi/poi/release/) just to make sure the method was there too. It would be interesting to know what copy of StringUtil.class you have. I'm pretty sure that such LinkageErrors cannot occur in any recent version of POI (assuming the no other weird stuff on the classpath). Please re-open this bugzilla if you think you can reproduce the error with a pure and consistent deploy of version 3.0.2-FINAL.