Hello everyone,
I'm running into a severe problem when trying to use a WAR project under
WAS 8.0.0.4 that contains enhanced classes by the OpenJPA version
2.3.0-SNAPSHOT, the corresponding openjpa-maven-plugin (version
2.3.0-SNAPSHOT). I get the following exception when trying to execute the
first query:
java.lang.VerifyError: JVMVRFY012 Stackform inkonsistent;
Klasse=frontend/model/database/DbApproval, Methode=pcClearFields()V, PC=22
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(J9VMInternals.java:85)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:162)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:136)
at frontend.model.database.DbDocument.class$(DbDocument.java)
at frontend.model.database.DbDocument.<clinit>(DbDocument.java)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:228)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:170)
at org.apache.openjpa.meta.MetaDataRepository.classForName(
MetaDataRepository.java:1552)
at
org.apache.openjpa.meta.MetaDataRepository.loadPersistentTypesInternal(
MetaDataRepository.java:1528)
at org.apache.openjpa.meta.MetaDataRepository.loadPersistentTypes(
MetaDataRepository.java:1506)
at
org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(
AbstractBrokerFactory.java:283)
at
org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(
AbstractBrokerFactory.java:239)
at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(
AbstractBrokerFactory.java:213)
at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(
DelegatingBrokerFactory.java:156)
at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(
EntityManagerFactoryImpl.java:227)
at
com.ibm.ws.persistence.EntityManagerFactoryImpl.createEntityManager(
EntityManagerFactoryImpl.java:71)
at
com.ibm.ws.persistence.EntityManagerFactoryImpl.createEntityManager(
EntityManagerFactoryImpl.java:35)
at com.ibm.ws.jpa.management.JPAEMPool.getEntityManager(
JPAEMPool.java:140)
at
com.ibm.ws.jpa.management.JPATxEntityManager.getEMInvocationInfo(
JPATxEntityManager.java:242)
at
com.ibm.ws.jpa.management.JPATxEntityManager.getEMInvocationInfo(
JPATxEntityManager.java:174)
at com.ibm.ws.jpa.management.JPAEntityManager.createNativeQuery(
JPAEntityManager.java:339)
at frontend.boundary.DatabaseAccessGateway.getDatabaseNameAndUser(
DatabaseAccessGateway.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at com.ibm.ejs.container.EJSContainer.invokeProceed(
EJSContainer.java:6158)
at
com.ibm.ejs.container.interceptors.InvocationContextImpl.proceed(
InvocationContextImpl.java:568)
at
org.apache.webbeans.ejb.common.interceptor.OpenWebBeansEjbInterceptor.callInterceptorsAndDecorators(
OpenWebBeansEjbInterceptor.java:521)
at
org.apache.webbeans.ejb.common.interceptor.OpenWebBeansEjbInterceptor.callToOwbInterceptors(
OpenWebBeansEjbInterceptor.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at
com.ibm.ejs.container.interceptors.InterceptorProxy.invokeInterceptor(
InterceptorProxy.java:227)
at
com.ibm.ejs.container.interceptors.InvocationContextImpl.proceed(
InvocationContextImpl.java:548)
at org.apache.webbeans.ejb.WSEJBInterceptor.callToOwbInterceptors(
WSEJBInterceptor.java:136)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at
com.ibm.ejs.container.interceptors.InterceptorProxy.invokeInterceptor(
InterceptorProxy.java:227)
at
com.ibm.ejs.container.interceptors.InvocationContextImpl.proceed(
InvocationContextImpl.java:548)
at
com.ibm.ejs.container.interceptors.InvocationContextImpl.doAroundInvoke(
InvocationContextImpl.java:229)
at com.ibm.ejs.container.EJSContainer.invoke(
EJSContainer.java:6049)
at
frontend.boundary.EJSLocalNSFDatabaseAccessGateway_541396be.getDatabaseNameAndUser(EJSLocalNSFDatabaseAccessGateway_541396be.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at
org.apache.webbeans.ejb.common.proxy.EjbBeanProxyHandler.invoke(
EjbBeanProxyHandler.java:204)
at
frontend.boundary.DatabaseAccessGateway_$$_javassist_35.getDatabaseNameAndUser(DatabaseAccessGateway_$$_javassist_35.java)
at frontend.boundary.DataAccessService.getDatabaseNameAndUser(
DataAccessService.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.webbeans.intercept.InterceptorHandler.invoke(
InterceptorHandler.java:287)
at
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(
NormalScopedBeanInterceptorHandler.java:98)
at
frontend.boundary.DataAccessService_$$_javassist_34.getDatabaseNameAndUser(DataAccessService_$$_javassist_34.java)
at frontend.system.Configuration.retrieveDatabaseInfo(
Configuration.java:119)
at frontend.system.Configuration.getDatabaseName(
Configuration.java:99)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.webbeans.intercept.InterceptorHandler.invoke(
InterceptorHandler.java:287)
at
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(
NormalScopedBeanInterceptorHandler.java:98)
at
frontend.system.Configuration_$$_javassist_33.getDatabaseName(Configuration_$$_javassist_33.java)
at frontend.view.model.System.getDatabaseName(System.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.webbeans.intercept.InterceptorHandler.invoke(
InterceptorHandler.java:287)
at
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(
NormalScopedBeanInterceptorHandler.java:98)
at
frontend.view.model.System_$$_javassist_32.getDatabaseName(System_$$_javassist_32.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:91)
at javax.el.CompositeELResolver.getValue(
CompositeELResolver.java:55)
at
org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(
FacesCompositeELResolver.java:142)
at org.apache.el.parser.AstValue.getValue(AstValue.java:173)
at org.apache.el.ValueExpressionImpl.getValue(
ValueExpressionImpl.java:283)
at org.apache.webbeans.el.WrappedValueExpression.getValue(
WrappedValueExpression.java:68)
at
org.apache.myfaces.view.facelets.el.ELText$ELTextVariable.writeText(
ELText.java:213)
at
org.apache.myfaces.view.facelets.el.ELText$ELTextComposite.writeText(
ELText.java:125)
at
org.apache.myfaces.view.facelets.compiler.TextInstruction.write(
TextInstruction.java:48)
at
org.apache.myfaces.view.facelets.compiler.UIInstructions.encodeBegin(
UIInstructions.java:46)
at org.apache.myfaces.view.facelets.compiler.UILeaf.encodeAll(
UILeaf.java:214)
at javax.faces.component.UIComponent.encodeAll(
UIComponent.java:622)
at javax.faces.component.UIComponent.encodeAll(
UIComponent.java:622)
at
org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(
FaceletViewDeclarationLanguage.java:1320)
at org.apache.myfaces.application.ViewHandlerImpl.renderView(
ViewHandlerImpl.java:263)
at javax.faces.application.ViewHandlerWrapper.renderView(
ViewHandlerWrapper.java:59)
at javax.faces.application.ViewHandlerWrapper.renderView(
ViewHandlerWrapper.java:59)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(
RenderResponseExecutor.java:85)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(
LifecycleImpl.java:239)
at
org.apache.myfaces.extensions.validator.core.startup.ExtValLifecycleWrapper.render(
ExtValLifecycleWrapper.java:79)
at
org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.render(
CodiLifecycleWrapper.java:126)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(
ServletWrapper.java:1224)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(
ServletWrapper.java:774)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(
ServletWrapper.java:456)
at
com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(
ServletWrapperImpl.java:178)
at
com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(
WebAppFilterManager.java:1032)
at
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(
CacheServletWrapper.java:87)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(
WebContainer.java:895)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(
WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(
WCChannelLink.java:195)
at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(
HttpInboundLink.java:452)
at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(
HttpInboundLink.java:511)
at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(
HttpInboundLink.java:305)
at
com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(
HttpICLReadCallback.java:83)
at
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(
AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(
AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(
AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(
ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1659)
I've read about OPENJPA issues regarding this problem and updated the
openJPA maven plugin to version 2.3.0-SNAPSHOT. I cannot easily update
openjpa itself within WAS 8, as it tightly integrated. Is this a new bug
regarding the inconsistent stack form or should this be solved by the
existing JIRAs and therefore withing 2.3.0-SNAPSHOT. I checked, it uses
serp-1.14.1 instead of the older version.
The problem even occurs, when WAS 8 does the enhancement itself.
The class itself is defined as follows:
@Entity
@Table(name = "GENEHMIGUNG")
public class DbApproval implements Serializable
{
/** ID necessary for serialization */
private static final long serialVersionUID = 7890436335290264198L;
@Id
@Column(name = "GEN_ID")
private long id;
@Column(name = "GEN_TEXT")
private String text;
@Column(name = "GEN_STATUS")
private int state;
@Column(name = "GEN_SCO_ID")
private long scoringId;
@Column(name = "GEN_AUTO_GENEHMIGUNG_KZ")
@ExternalValues({ "true=Y", "false=N" })
@Type(String.class)
private boolean noAutomaticApprovalPermitted;
@Column(name = "GEN_EL_EURO")
private BigDecimal expectedLoss;
@Column(name = "GEN_EL_PROZENT")
private BigDecimal expectedLossInPercent;
@Column(name = "GEN_SCOREKLASSE")
private String scoreClass;
@Column(name = "GEN_SCORING_DATUM")
private Date scoringDate;
@Column(name = "GEN_ENTSCHEIDUNG")
@Type(String.class)
private int decision;
@Column(name = "GEN_AENDERUNGSTYP")
@Enumerated(EnumType.ORDINAL)
private ApprovalModificationType modificationType;
@Column(name = "GEN_AENDERUNGSENTSCHEIDUNG")
private int modificationDecision;
@Column(name = "GEN_KOMM_VERHINDERN_KZ")
private boolean noCommunicationAllowed;
@Column(name = "GEN_INSERT_DATUM")
private Date insertDate;
@Column(name = "GEN_INSERT_USER_ID")
private String insertUserId;
@Column(name = "GEN_UPDATE_DATUM")
private Date updateDate;
@Column(name = "GEN_UPDATE_USER_ID")
private String updateUserId;
@Version
@Column(name = "GEN_VERSION")
private long version;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
@JoinColumn(name = "GEN_VTR_ID", referencedColumnName = "VTR_ID")
private DbContract contract;
@OneToMany(mappedBy = "approval", fetch = FetchType.LAZY, cascade =
CascadeType.REFRESH)
@OrderBy("number ASC")
private List<DbCollateral> collaterals;
@Column(name = "GEN_KL_STATUS_KZ")
@ExternalValues({ "true=J", "false=N", "false=null" })
@Type(String.class)
private boolean klStateSet;
@Column(name = "GEN_KAUTIONSOLL")
private BigDecimal securityDeposit;
@Column(name = "GEN_RISIKOBUDGET")
private BigDecimal riskBudget;
@Column(name = "GEN_BANKBUERGSCHAFT")
private BigDecimal bankGuaranty;
@Column(name = "GEN_SONSTBESICHERUNG")
@ExternalValues({"true=J", "false=N", "false=null"})
@Type(String.class)
private boolean additionalCollateralPresent;
@Column(name = "GEN_REGELN_PRUEFBAR")
private boolean expertRulesTestable;
@Column(name = "GEN_REGELN_GEPRUEFT")
private boolean expertRulesTested;
@OneToMany(mappedBy = "approval", fetch = FetchType.LAZY, cascade =
CascadeType.REFRESH)
private List<DbTask> tasks;
@OneToOne(mappedBy = "approval", fetch = FetchType.LAZY, cascade =
CascadeType.REFRESH)
private DbDocument document;
...
}
Hopefully, somebody can help me out here!
Best regards,
Heiko
--
Heiko Kopp
If you are not the intended addressee, please inform us immediately that you
have received this e-mail in error, and delete it. We thank you for your
cooperation.