You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by Michael Watzek <mw...@spree.de> on 2005/05/27 19:38:17 UTC

JPOX-Enhancer Bug

Hi Eric,

the TCK implements two enhancement tests for field access annotation and 
class augmentation. Both tests are currently not included into a test run.

Today I run the class augmentation test and I encountered a JPOX 
enhancer bug:

- Accessor/mutator methods for persistent public fields have no access 
modifiers, e.g. field "doubleB".

To follow the bug please have a look into the javap output below.

Regards,
Michael


public class org.apache.jdo.tck.pc.inheritance.AllPersist extends 
java.lang.Object implements javax.jdo.spi.PersistenceCapable{
     public int intA;
     public double doubleB;
     public int intB;
     private int keyValue;
     private static int nextKeyValue;
     protected transient javax.jdo.spi.StateManager jdoStateManager;
     protected transient byte jdoFlags;
     private static final byte[] jdoFieldFlags;
     private static final java.lang.Class jdoPersistenceCapableSuperclass;
     private static final java.lang.Class[] jdoFieldTypes;
     private static final java.lang.String[] jdoFieldNames;
     private static final int jdoInheritedFieldCount;
     static {};
     public boolean equals(java.lang.Object);
     public org.apache.jdo.tck.pc.inheritance.AllPersist();
     public org.apache.jdo.tck.pc.inheritance.AllPersist(int,double,int);
     public void 
jdoCopyKeyFieldsFromObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldConsumer,java.lang.Object);
     protected void jdoCopyKeyFieldsFromObjectId(java.lang.Object);
     public final void jdoCopyKeyFieldsToObjectId(java.lang.Object);
     public final void 
jdoCopyKeyFieldsToObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldSupplier,java.lang.Object);
     public final java.lang.Object jdoGetObjectId();
     public final java.lang.Object jdoGetVersion();
     protected final void jdoPreSerialize();
     public final javax.jdo.PersistenceManager jdoGetPersistenceManager();
     public final java.lang.Object jdoGetTransactionalObjectId();
     public final boolean jdoIsDeleted();
     public final boolean jdoIsDirty();
     public final boolean jdoIsNew();
     public final boolean jdoIsPersistent();
     public final boolean jdoIsTransactional();
     public final boolean jdoIsDetached();
     public final void jdoMakeDirty(java.lang.String);
     public final java.lang.Object jdoNewObjectIdInstance();
     public final java.lang.Object jdoNewObjectIdInstance(java.lang.Object);
     public final void jdoProvideFields(int[]);
     public final void jdoReplaceFields(int[]);
     public final void jdoReplaceFlags();
     public final synchronized void 
jdoReplaceStateManager(javax.jdo.spi.StateManager);
     public javax.jdo.spi.PersistenceCapable 
jdoNewInstance(javax.jdo.spi.StateManager);
     public javax.jdo.spi.PersistenceCapable 
jdoNewInstance(javax.jdo.spi.StateManager,java.lang.Object);
     public void jdoReplaceField(int);
     public void jdoProvideField(int);
     protected final void 
jdoCopyField(org.apache.jdo.tck.pc.inheritance.AllPersist,int);
     public void jdoCopyFields(java.lang.Object,int[]);
     private static final java.lang.String[] __jdoFieldNamesInit();
     private static final java.lang.Class[] __jdoFieldTypesInit();
     private static final byte[] __jdoFieldFlagsInit();
     protected static int __jdoGetInheritedFieldCount();
     protected static int jdoGetManagedFieldCount();
     private static java.lang.Class __jdoPersistenceCapableSuperclassInit();
     public static java.lang.Class ___jdo$loadClass(java.lang.String);
     private java.lang.Object jdoSuperClone();
        throws java/lang/CloneNotSupportedException
     static void 
jdoSetdoubleB(org.apache.jdo.tck.pc.inheritance.AllPersist,double);
     static double 
jdoGetdoubleB(org.apache.jdo.tck.pc.inheritance.AllPersist);
     static void 
jdoSetintB(org.apache.jdo.tck.pc.inheritance.AllPersist,int);
     static int jdoGetintB(org.apache.jdo.tck.pc.inheritance.AllPersist);
     private static void 
jdoSetkeyValue(org.apache.jdo.tck.pc.inheritance.AllPersist,int);
     private static int 
jdoGetkeyValue(org.apache.jdo.tck.pc.inheritance.AllPersist);
     public int hashCode();
}

-- 
-------------------------------------------------------------------
Michael Watzek                  Tech@Spree Engineering GmbH
mailto:mwa.tech@spree.de        Buelowstr. 66
Tel.:  ++49/30/235 520 36       10783 Berlin - Germany
Fax.:  ++49/30/217 520 12       http://www.spree.de/
-------------------------------------------------------------------

Re: JPOX-Enhancer Bug

Posted by Michael Watzek <mw...@spree.de>.
Hi Andy,

I verified the fix using nightly build 20050531.

Thanks,
Michael
>>Today I run the class augmentation test and I encountered a JPOX
>>enhancer bug:
> 
> 
> Now fixed in CVS. Will be in tonights nightly build (20050528).
> 


-- 
-------------------------------------------------------------------
Michael Watzek                  Tech@Spree Engineering GmbH
mailto:mwa.tech@spree.de        Buelowstr. 66
Tel.:  ++49/30/235 520 36       10783 Berlin - Germany
Fax.:  ++49/30/217 520 12       http://www.spree.de/
-------------------------------------------------------------------

Re: JPOX-Enhancer Bug

Posted by Andy Jefferson <an...@jpox.org>.
> Today I run the class augmentation test and I encountered a JPOX
> enhancer bug:

Now fixed in CVS. Will be in tonights nightly build (20050528).

-- 
Andy
JPOX - Java Persistent Objects