Free Support Forum - aspose.com

Thumbnail generation on ibm aix crashes vm

Hello,

We are developing a webservice, that generates ppt slides and pdf documents with aspose. This webservice is deployed on a SAP Netweaver Application Server 7.0 on an IBM / AIX 5.3. (Power PC 64 bit architecture) machine.

For pdf creation we extract the ppt-slides via slide.getThumbnail(new Dimension(1536, 1152))

This works fine on an windows machine. If we port this to our application server on AIX, the IBM JVM crashes. The core-dump generated during the crash shows the following stack-trace:

at sun/awt/font/NativeFontWrapper.getGlyphInfo(Native Method)
at sun/awt/font/StandardGlyphVector.getGlyphInfo(StandardGlyphVector.java:1271)
at sun/awt/font/AdvanceCache.initLatinAdvances(AdvanceCache.java:210)
at sun/awt/font/AdvanceCache.(AdvanceCache.java:271)
at sun/awt/font/AdvanceCache.get(AdvanceCache.java:200)
at java/awt/font/TextLayout$OptInfo.getAdvance(TextLayout.java:272)
at java/awt/font/TextLayout.getAdvance(TextLayout.java:1040)
at com/aspose/slides/dA.do(SourceFile:1080)
at com/aspose/slides/dA.do(SourceFile:715)
at com/aspose/slides/TextFrame.do(SourceFile:126)
at com/aspose/slides/Rectangle.do(SourceFile:130)
at com/aspose/slides/Slide.getThumbnail(SourceFile:1417)
at com/aspose/slides/Slide.getThumbnail(SourceFile:1275)
at de/mhp/reportEngine/persistence/bo/impl/BinaryReportImpl.createPdfStream(BinaryReportImpl.java:293)
at de/mhp/reportEngine/persistence/bo/impl/BinaryReportImpl.readFromStream(BinaryReportImpl.java:96)
at de/mhp/reportEngine/jobs/impl/JobManagerImpl.getSingleReport(JobManagerImpl.java:161)
at de/mhp/reportEngine/jobs/impl/JobManagerImpl.read(JobManagerImpl.java:110)
at sun/reflect/NativeMethodAccessorImpl.invoke0(Native Method)
at sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85(Compiled Code))
at sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58(Compiled Code))
at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60(Compiled Code))
at java/lang/reflect/Method.invoke(Method.java:391(Compiled Code))
at org/springframework/aop/support/AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at org/springframework/aop/framework/ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org/springframework/aop/framework/ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org/springframework/aop/aspectj/MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
at de/mhp/reportEngine/jobs/JobScope.manageScope(JobScope.java:68)
at sun/reflect/NativeMethodAccessorImpl.invoke0(Native Method)
at sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85(Compiled Code))
at sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58(Compiled Code))
at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60(Compiled Code))
at java/lang/reflect/Method.invoke(Method.java:391(Compiled Code))
at org/springframework/aop/aspectj/AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
at org/springframework/aop/aspectj/AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
at org/springframework/aop/aspectj/AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)
at org/springframework/aop/framework/ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org/springframework/aop/interceptor/ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org/springframework/aop/framework/ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org/springframework/aop/framework/JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy51.read(Bytecode PC:31)
at de/mhp/reportEngine/web/servlet/ReportDeliveryServlet.doPost(ReportDeliveryServlet.java:72)
at de/mhp/reportEngine/web/servlet/ReportDeliveryServlet.doGet(ReportDeliveryServlet.java:37)
at javax/servlet/http/HttpServlet.service(HttpServlet.java:740)
at javax/servlet/http/HttpServlet.service(HttpServlet.java:853)
at com/sap/engine/services/servlets_jsp/server/HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com/sap/engine/services/servlets_jsp/server/HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com/sap/engine/services/httpserver/server/RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com/sap/engine/services/httpserver/server/RequestAnalizer.startServlet(RequestAnalizer.java:365)
at com/sap/engine/services/httpserver/server/RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
at com/sap/engine/services/httpserver/server/RequestAnalizer.handle(RequestAnalizer.java:266)
at com/sap/engine/services/httpserver/server/Client.handle(Client.java:95)
at com/sap/engine/services/httpserver/server/Processor.request(Processor.java:174)
at com/sap/engine/core/service630/context/cluster/session/ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com/sap/engine/core/cluster/impl6/session/MessageRunner.run(MessageRunner.java:41)
at com/sap/engine/core/thread/impl3/ActionObject.run(ActionObject.java:37)
at java/security/AccessController.doPrivileged(AccessController.java:219)
at com/sap/engine/core/thread/impl3/SingleThread.execute(SingleThread.java:100)
at com/sap/engine/core/thread/impl3/SingleThread.run(SingleThread.java:170)

There is an X-Server running on the machine. The necessary fonts are not yet present on the system.

Could you please let us know, what you would recommend to resolve this problem? Will it help to put the fonts in the fonts directory of the jdk? What other optimizations would you suggest?

This issue is rather urgent, since the application is scheduled to go live in 2 weeks and the customer is rather large.

Thank you for your help.

Best regards,

Andreas Bellmann

at sun/awt/font/NativeFontWrapper.getGlyphInfo(Native Method)

Exception can be thrown because java can’t read font information.
I’m not sure how it should work on X-server but try to add fonts.