Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] java.lang.VerifyError when @Access(AccessType.PROPERTY) is used selectively

Hi; we're seeing a java.lang.VerifyError "Expecting to find object/array on stack" when EclipseLink 2.3.2 dynamically weaves an entity that has the following things going on:
  • Explicit class-level @Access(AccessType.FIELD)
  • Selective @Access(AccessType.PROPERTY) annotated on one getter method
At deployment time, during ClassDescriptor.convertClassNamesToClasses, line 1290, the weaver seems to bump into this @Access(AccessType.PROPERTY) annotation and blows up.

Here's the method pair in question:

@Access(AccessType.PROPERTY)
@Override
public boolean getIsPrimaryConstituentFirst() {
  return this.isPrimaryConstituentFirst != null && "Y".equalsIgnoreCase(this.isPrimaryConstituentFirst.trim());
}

@Override
public void setIsPrimaryConstituentFirst(final boolean isPrimaryConstituentFirst) {
  this.isPrimaryConstituentFirst = isPrimaryConstituentFirst ? "Y" : "N";
}

Here's the log messages and stack:

INFO: com.foobar.CXRelationshipEntity actually got transformed
SEVERE: Exception while preparing the app
SEVERE: (class: com/foobar/CXRelationshipEntity, method: getIsPrimaryConstituentFirst signature: ()Z) Expecting to find object/array on stack
java.lang.VerifyError: (class: com/foobar/CXRelationshipEntity, method: getIsPrimaryConstituentFirst signature: ()Z) Expecting to find object/array on stack
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at org.eclipse.persistence.internal.security.PrivilegedAccessHelper.getClassForName(PrivilegedAccessHelper.java:119)
    at org.eclipse.persistence.descriptors.ClassDescriptor.convertClassNamesToClasses(ClassDescriptor.java:1290)
[and so on]

Hope that helps.  Any workaround?

Best,
Laird

--
http://about.me/lairdnelson

Back to the top