db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andy Jefferson (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JDO-517) NPE on enhancement of classes with persistent properties
Date Wed, 15 Aug 2007 08:19:30 GMT

    [ 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.


Mime
View raw message