Bug 60427

Summary: Creating pictures in PowerPoint slides requires scratchpad-jar for adding WMF images
Product: POI Reporter: Dominik Stadler <dominik.stadler>
Component: XSLFAssignee: POI Developers List <dev>
Status: RESOLVED FIXED    
Severity: enhancement    
Priority: P2    
Version: 3.16-dev   
Target Milestone: ---   
Hardware: All   
OS: All   
Bug Depends on: 62355    
Bug Blocks:    

Description Dominik Stadler 2016-11-28 10:53:27 UTC
The Jenkins CI job which tries to run ooxml-tests without scratchpad currently fails at the following test, this indicates that currently Scratchpad is required for handling WMF pictures. See https://builds.apache.org/job/POI-no-scratchpad/lastFailedBuild/testReport/org.apache.poi.xslf/TestXSLFBugs/bug59434/ for details

Should we move these classes to main to not have this discouraged dependency from ooxml to scatchpad?


Error Message

org/apache/poi/hslf/blip/WMF$NativeHeader

Stacktrace

java.lang.NoClassDefFoundError: org/apache/poi/hslf/blip/WMF$NativeHeader
	at org.apache.poi.xslf.usermodel.XSLFPictureData.cacheProperties(XSLFPictureData.java:179)
	at org.apache.poi.xslf.usermodel.XSLFPictureData.getImageDimension(XSLFPictureData.java:145)
	at org.apache.poi.sl.draw.DrawPictureShape.resize(DrawPictureShape.java:100)
	at org.apache.poi.xslf.usermodel.XSLFSheet.createPicture(XSLFSheet.java:238)
	at org.apache.poi.xslf.TestXSLFBugs.bug59434(TestXSLFBugs.java:466)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.hslf.blip.WMF$NativeHeader
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Comment 1 Andreas Beeker 2016-11-28 11:29:59 UTC
I've already started yesterday to split them.
The solution for *slf is finished, i.e. I've created ImageHeader* classes in the main jar, but there are other OOXML->scratchpad issues to solve.
Comment 2 Dominik Stadler 2016-11-28 19:32:39 UTC
Yes, thanks, I  just go one issue after the other to finally remove this dependency. 

A few unit tests related to text-extraction are ignored right now as they include files for scratchpad-related formats, we`ll see if there are other problems after this one.
Comment 3 Andreas Beeker 2016-11-28 20:52:33 UTC
first issues patched via r1771812

to be continued ...
Comment 4 Dominik Stadler 2018-12-30 22:52:02 UTC
The build-job https://builds.apache.org/view/P/view/POI/job/POI-DSL-no-scratchpad/ now continuously ensures that no new unexpected dependency to scratchpad is added, there are a few unit-tests which are excluded for now on purpose.

We can create new bug-issues for any issue that pops up here in the future.