[ https://issues.apache.org/jira/browse/JDO-517?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519893 ]
Andy Jefferson commented on JDO-517:
------------------------------------
> If a class is persistence-capable, by default fields of a particular type are persistent.
> Therefore, to use properties, fields must be marked not persistent.
This is an imposition on the user IMHO. When a property is marked as persistent (and should have a field-name attribute defined according to the spec 18.14 - which they don't in this case) then that should automatically make the associated field NotPersistent with no need for marking it. You can't persistent both the field and the property (jdoSetXXX enhanced methods have to handle field OR property.
I also don't see any NPE. I see
Class org.apache.jdo.tck.pc.companyAnnotatedPC.PCDSInsurance has property fieldRepr declared in MetaData, but its setter method doesnt exist in the class!
which is simply due to following JPA policy on persistent fields/properties - either all fields, or all properties. So if there is some property it finds all un-annotated getters and marks those as persistent - but since JDO is going a different route it needs different handling. Will take a while to allow for JDO rules on persistent props alongside catering for what we already cater for.
> NPE on enhancement of classes with persistent properties
> --------------------------------------------------------
>
> Key: JDO-517
> URL: https://issues.apache.org/jira/browse/JDO-517
> Project: JDO
> Issue Type: Bug
> Components: tck2
> Affects Versions: JDO 2 maintenance release 1
> Reporter: Michelle Caisse
> Assignee: Andy Jefferson
>
> To reproduce, edit project.propeties, go to the end of the file, and edit out the comment and blank lines so that the classes in the companyAnnotatedPC package are included in the argument list to the enhancer.
> 11:39:16,031 (main) ERROR [JPOX.Enhancer] - An error was encountered reading the specified input files. Please consult the log for details. The following may help : Errors were encountered when loading the specified MetaData files and classes. See the nested exceptions for details
> Errors were encountered when loading the specified MetaData files and classes. See the nested exceptions for details
> org.jpox.exceptions.JPOXUserException: Errors were encountered when loading the specified MetaData files and classes. See the nested exceptions for details
> at org.jpox.metadata.MetaDataManager.initialise(MetaDataManager.java:299)
> at org.jpox.enhancer.JPOXEnhancer.getFileMetaDataForInput(JPOXEnhancer.java:724)
> at org.jpox.enhancer.JPOXEnhancer.main(JPOXEnhancer.java:533)
> Caused by: java.lang.NullPointerException
> at org.jpox.metadata.annotations.JDOAnnotationReader.processFieldAnnotations(JDOAnnotationReader.java:1594)
> at org.jpox.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:211)
> at org.jpox.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:133)
> at org.jpox.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:1729)
> at org.jpox.metadata.MetaDataManager.initialise(MetaDataManager.java:265)
> ... 2 more
> Nested Throwables StackTrace:
> java.lang.NullPointerException
> at org.jpox.metadata.annotations.JDOAnnotationReader.processFieldAnnotations(JDOAnnotationReader.java:1594)
> at org.jpox.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:211)
> at org.jpox.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:133)
> at org.jpox.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:1729)
> at org.jpox.metadata.MetaDataManager.initialise(MetaDataManager.java:265)
> at org.jpox.enhancer.JPOXEnhancer.getFileMetaDataForInput(JPOXEnhancer.java:724)
> at org.jpox.enhancer.JPOXEnhancer.main(JPOXEnhancer.java:533)
> java.lang.NullPointerException
> at org.jpox.metadata.annotations.JDOAnnotationReader.processFieldAnnotations(JDOAnnotationReader.java:1594)
> at org.jpox.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:211)
> at org.jpox.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:133)
> at org.jpox.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:1729)
> at org.jpox.metadata.MetaDataManager.initialise(MetaDataManager.java:265)
> at org.jpox.enhancer.JPOXEnhancer.getFileMetaDataForInput(JPOXEnhancer.java:724)
> at org.jpox.enhancer.JPOXEnhancer.main(JPOXEnhancer.java:533)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.