Is this normal?
Regards,
Eric
Is this normal?
Regards,
Eric
Hi Eric,
Hi,
thanks for the fast reply.
My heap size is configured to 512MB. My OS is Mac OSX 10.8.3, JDK 1.6 (for Mac) and I run everything in Eclipse Juno.
In the test I did I had reduced the pptx to only 1 slide to see if I still had the issue and unfortunately I did.
Some simple presentations I created myself work fine but all my customer pptx files crash on the constructor with memory issues :-s
So this seems weird and of course I cannot tell the marketing director who provided me the slides that he needs to redo them all, as you can imagine.
Cheers,
Eric
Hi Eric,
Sorry, forgot to mention that I am testing the latest version, i.e. 7.3.0.
Concerning the powerpoints I am testing with, these are confidential to my customer so it is a big issue to share it. I would like to provide you some samples but I cannot attach them to this public post, is there a more private way to send you this?
The code I am running is:
String file=“demo.pptx”;
String prefix=“slide”;
PresentationEx ppt = new PresentationEx(file); //(this is line 139 in my code, I cannot get past it for most files)
for (int i = 0; i
//Accessing a slide using its slide position
SlideEx slide = ppt.getSlides().get_Item(i);//getSlideByPosition(slidenum);
String title = slide.getName();
//Getting the thumbnail image of the slide of a specified size
BufferedImage img = slide.getThumbnail(new Dimension (1024, 768));
// save the result
String fname=prefix + (i + 1) +".png";
FileOutputStream out = new FileOutputStream(fname);
ImageIO.write(img, “png”, out);
out.close();
}
Concerning the stack traces, here are a few examples of errors I get:
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.aspose.slides.pa2137a2a.pbdb106a0.fh.do(Unknown Source)
at com.aspose.slides.Collections.Hashtable.(Unknown Source)
at com.aspose.slides.Collections.Hashtable.(Unknown Source)
at com.aspose.slides.Collections.Hashtable.(Unknown Source)
at com.aspose.slides.zs.(Unknown Source)
at com.aspose.slides.btq.(Unknown Source)
at com.aspose.slides.btt.do(Unknown Source)
at com.aspose.slides.btt.do(Unknown Source)
at com.aspose.slides.btt.(Unknown Source)
at com.aspose.slides.btu.do(Unknown Source)
at com.aspose.slides.btu.(Unknown Source)
at com.aspose.slides.btu.(Unknown Source)
at com.aspose.slides.PresentationEx.do(Unknown Source)
at com.aspose.slides.PresentationEx.int(Unknown Source)
at com.aspose.slides.PresentationEx.if(Unknown Source)
at com.aspose.slides.PresentationEx.(Unknown Source)
at com.aspose.slides.PresentationEx.(Unknown Source)
at com.qtree.commons.io.ppt.AsposeExPowerPointToImageConvertor.main(AsposeExPowerPointToImageConvertor.java:139)
================
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2786)
at sun.misc.IOUtils.readFully(IOUtils.java:43)
at java.util.jar.JarFile.getBytes(JarFile.java:369)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:162)
at java.util.jar.JarFile.getManifest(JarFile.java:149)
at sun.misc.URLClassPath$JarLoader$2.getManifest(URLClassPath.java:696)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:228)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
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)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2398)
at java.lang.Class.getConstructor0(Class.java:2708)
at java.lang.Class.getConstructor(Class.java:1659)
at com.aspose.slides.chs.do(Unknown Source)
at com.aspose.slides.chs.do(Unknown Source)
at com.aspose.slides.bdz.(Unknown Source)
at com.aspose.slides.bdb.for(Unknown Source)
at com.aspose.slides.bdb.(Unknown Source)
at com.aspose.slides.PresentationEx.int(Unknown Source)
at com.aspose.slides.PresentationEx.if(Unknown Source)
at com.aspose.slides.PresentationEx.(Unknown Source)
at com.aspose.slides.PresentationEx.(Unknown Source)
at com.aspose.slides.PresentationEx.(Unknown Source)
at com.qtree.commons.io.ppt.AsposeExPowerPointToImageConvertor.main(AsposeExPowerPointToImageConvertor.java:139)
==================
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
at java.nio.CharBuffer.wrap(CharBuffer.java:350)
at java.nio.CharBuffer.wrap(CharBuffer.java:373)
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:138)
at java.lang.StringCoding.decode(StringCoding.java:173)
at java.lang.String.(String.java:443)
at java.util.jar.Attributes.read(Attributes.java:401)
at java.util.jar.Manifest.read(Manifest.java:232)
at java.util.jar.Manifest.(Manifest.java:50)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:163)
at java.util.jar.JarFile.getManifest(JarFile.java:149)
at sun.misc.URLClassPath$JarLoader$2.getManifest(URLClassPath.java:696)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:228)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
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)
at com.aspose.slides.PictureEx.do(Unknown Source)
at com.aspose.slides.PictureEx.do(Unknown Source)
at com.aspose.slides.aao.do(Unknown Source)
at com.aspose.slides.aao.if(Unknown Source)
at com.aspose.slides.aao.(Unknown Source)
at com.aspose.slides.GeometryShapeEx.do(Unknown Source)
at com.aspose.slides.GeometryShapeEx.for(Unknown Source)
at com.aspose.slides.PictureFrameEx.do(Unknown Source)
at com.aspose.slides.GroupShapeEx.do(Unknown Source)
at com.aspose.slides.GroupShapeEx.do(Unknown Source)
at com.aspose.slides.SlideEx.do(Unknown Source)
at com.aspose.slides.SlideEx.do(Unknown Source)
at com.aspose.slides.SlideEx.getThumbnail(Unknown Source)
Cheers,
Eric
I cannot get the for loop in my code to show up properly in the post.
The for loop is as simple as it gets:
for (int i = 0; i < ppt.getSlides().getCount(); i++) {
Attached 2 presentations:
the ppt version works the pptx version (of the same presentation) crashes with:
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferInt.(DataBufferInt.java:41)
at java.awt.image.Raster.createPackedRaster(Raster.java:458)
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015)
at java.awt.image.BufferedImage.(BufferedImage.java:315)
at com.aspose.slides.pa2137a2a.pbdb106a0.pa2137a2a.b.if(Unknown Source)
at com.aspose.slides.pa2137a2a.pbdb106a0.pa2137a2a.b.(Unknown Source)
at com.aspose.slides.SlideEx.do(Unknown Source)
at com.aspose.slides.SlideEx.getThumbnail(Unknown Source)
at com.qtree.commons.io.ppt.AsposeExPowerPointToImageConvertor.convertPptX2Image(AsposeExPowerPointToImageConvertor.java:107)
at com.qtree.commons.io.ppt.AsposeExPowerPointToImageConvertor.convertPptX2Image(AsposeExPowerPointToImageConvertor.java:65)
at com.qtree.commons.io.ppt.AsposeExPowerPointToImageConvertor.convertPptX2Image(AsposeExPowerPointToImageConvertor.java:34)
at com.qtree.commons.io.ppt.TestPPTConversions.runBatch(TestPPTConversions.java:59)
at com.qtree.commons.io.ppt.TestPPTConversions.main(TestPPTConversions.java:31)
Hi Eric,
int cnt=ppt.getSlides().getCount();for (int i = 0; i <cnt; i++)
Hi,
these are my eclipse settings:
-startup
…/…/…/plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
–launcher.library
…/…/…/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.jee.product
–launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize
1024m
–launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XX:MaxPermSize=1024m
-Xms128m
-Xmx1024m
-Xdock:icon=…/Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
I even did a test by creating a JUnit test file and running a maven build with increased heap size to make sure it was not due to eclipse:
export MAVEN_OPTS=-Xmx1024m
mvn clean install -Dmaven.test.skip=false
It resulted in the same heap space error unfortunately. I did the same test for 2G, same result, so I guess there is a memory leak somewhere.
I’ll try to setup a windows VM machine, if I can find the time, with the specs you tested, see if I can reproduce it under the same circumstances (except the OS then) so I can confirm your findings. This might help your developers.
Regards,
Eric
Hi Eric,
The issues you have found earlier (filed as SLIDESJAVA-33879) have been fixed in this update.