You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-users@xmlgraphics.apache.org by Donald Armstrong <do...@gmail.com> on 2009/06/02 02:21:06 UTC

java.lang.IncompatibleClassChangeError

I would appreciate If anyone could point me in a direction for which I
can begin to debug this problem.

The transcoder code:
			
String svgURI =
this.getClass().getClassLoader().getResource("voucher/PaymentVoucher.svg").toString();
TranscoderOutput output = new TranscoderOutput(os);
TranscoderInput input = new TranscoderInput(svgURI);
PDFTranscoder t = new PDFTranscoder();
t.transcode(input, output);


The element that causes the stack trace is below.  If I run the
test-case outside the tomcat container it works.  When I invoke the
PDF generation within tomcat, the stack trace is below.  If i remove
the element, the PDF succeeds.

		<g id="shape25-73" v:mID="25" v:groupContext="shape"
transform="translate(396,-171)">
			<title>Sheet.25</title>
			<rect v:rectContext="foreign" x="0" y="732.625" width="128.25"
height="59.375" class="st3"/>
			<image x="0" y="732.625" width="128.25" height="59.375"
preserveAspectRatio="none" xlink:href="logo2.gif"/>
			<rect v:rectContext="foreign" x="0" y="732.625" width="128.25"
height="59.375" class="st3"/>
		</g>


javax.faces.FacesException: Error calling action method of component
with id basicForm:print-voucher-button
	org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
	com.lifetouch.commons.ui.listener.LoggingActionListener.processAction(LoggingActionListener.java:61)
	javax.faces.component.UICommand.broadcast(UICommand.java:141)
	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:409)
	org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32)
	org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
	org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:151)
	com.lifetouch.userprofile.ui.UserProfileSecurityFilter.doFilter(UserProfileSecurityFilter.java:63)
	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
	com.lifetouch.userprofile.ui.AssociateUserProfileFilter.doFilterInternal(AssociateUserProfileFilter.java:90)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

root cause

javax.faces.el.EvaluationException: javax.el.ELException:
/paymentCode.xhtml @91,222
action="#{paymentVoucherHandler.printVoucher}":
java.lang.IncompatibleClassChangeError
	javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:82)
	org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:57)
	com.lifetouch.commons.ui.listener.LoggingActionListener.processAction(LoggingActionListener.java:61)
	javax.faces.component.UICommand.broadcast(UICommand.java:141)
	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:409)
	org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32)
	org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
	org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:151)
	com.lifetouch.userprofile.ui.UserProfileSecurityFilter.doFilter(UserProfileSecurityFilter.java:63)
	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
	com.lifetouch.userprofile.ui.AssociateUserProfileFilter.doFilterInternal(AssociateUserProfileFilter.java:90)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

root cause

javax.el.ELException: /paymentCode.xhtml @91,222
action="#{paymentVoucherHandler.printVoucher}":
java.lang.IncompatibleClassChangeError
	com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:74)
	javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:78)
	org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:57)
	com.lifetouch.commons.ui.listener.LoggingActionListener.processAction(LoggingActionListener.java:61)
	javax.faces.component.UICommand.broadcast(UICommand.java:141)
	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:409)
	org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32)
	org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
	org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:151)
	com.lifetouch.userprofile.ui.UserProfileSecurityFilter.doFilter(UserProfileSecurityFilter.java:63)
	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
	com.lifetouch.userprofile.ui.AssociateUserProfileFilter.doFilterInternal(AssociateUserProfileFilter.java:90)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

root cause

java.lang.IncompatibleClassChangeError
	org.apache.batik.bridge.SVGImageElementBridge.createRasterImageNode(SVGImageElementBridge.java:599)
	org.apache.batik.bridge.SVGImageElementBridge.createImageGraphicsNode(SVGImageElementBridge.java:327)
	org.apache.batik.bridge.SVGImageElementBridge.buildImageGraphicsNode(SVGImageElementBridge.java:177)
	org.apache.batik.bridge.SVGImageElementBridge.createGraphicsNode(SVGImageElementBridge.java:119)
	org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:213)
	org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
	org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219)
	org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
	org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219)
	org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
	org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82)
	org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:208)
	org.apache.fop.svg.PDFTranscoder.transcode(PDFTranscoder.java:140)
	org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
	org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
	com.lifetouch.ecommerce.mylifetouch.services.voucher.PaymentVoucherServiceImpl.write(PaymentVoucherServiceImpl.java:67)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:585)
	org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	$Proxy37.write(Unknown Source)
	com.lifetouch.ecommerce.mylifetouch.ui.handler.PaymentVoucherHandler.printVoucher(PaymentVoucherHandler.java:47)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:585)
	org.apache.el.parser.AstValue.invoke(AstValue.java:172)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
	javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:78)
	org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:57)
	com.lifetouch.commons.ui.listener.LoggingActionListener.processAction(LoggingActionListener.java:61)
	javax.faces.component.UICommand.broadcast(UICommand.java:141)
	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:409)
	org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32)
	org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
	org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:151)
	com.lifetouch.userprofile.ui.UserProfileSecurityFilter.doFilter(UserProfileSecurityFilter.java:63)
	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
	com.lifetouch.userprofile.ui.AssociateUserProfileFilter.doFilterInternal(AssociateUserProfileFilter.java:90)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: batik-users-help@xmlgraphics.apache.org


Re: java.lang.IncompatibleClassChangeError

Posted by th...@kodak.com.
Hi Donald,

Donald Armstrong <do...@gmail.com> wrote on 06/01/2009 08:21:06 
PM:

> I would appreciate If anyone could point me in a direction for which I
> can begin to debug this problem.

> If I run the test-case outside the tomcat container it works. 

   This is almost always caused by having multiple incompatible
versions of Batik on the class-path.  This is especially common
in servlet container.