[
https://issues.apache.org/jira/browse/JDO-509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12514738
]
Andy Jefferson commented on JDO-509:
------------------------------------
Thx.
Taking the actual issue a little further, you're overriding the field types of
some of the methods with the PIXXX variant and that is the actual issue - all
previous persistent-interface samples did nothing of the sort. Once I update
JPOX to use that value it goes past the PICompany message and comes to PIPerson
which has "address" declared as IAddress and the jdo file does nothing to set
the "fieldType" so get the message
org.jpox.metadata.InvalidMetaDataException: Field
"org.apache.jdo.tck.pc.company.PIPerson.address" is of type
"org.apache.jdo.tck.pc.company.IAddress" yet has been specified as embedded.
JPOX doesnt support embedding of this type. Your embedded type must be
PersistenceCapable"
i.e you must define the fieldType or have a PC/persistent-interface type as the
method type.
> Enhancement failure on persistent interface that extends non-persistent
> interface
> ---------------------------------------------------------------------------------
>
> Key: JDO-509
> URL: https://issues.apache.org/jira/browse/JDO-509
> Project: JDO
> Issue Type: Bug
> Components: tck2
> Reporter: Michelle Caisse
> Assignee: Andy Jefferson
> Fix For: JDO 2 maintenance release 1
>
>
> Imagine that the existing interface company.ICompany is not persistent and
> there is a new interface company.PICompany that extends ICompany. Existing
> xml metadata is modified to refer to PICompany rather than ICompany. On
> enhancement, we get the error below. Craig suggests that using the
> reflective "getDeclaredMethod" instead of the reflective "getMethod" could
> give this error. These are changes that we would like to check in for the 2.1
> maintenance release.
> [java] An error was encountered reading the specified input files. Please
> consult the log for details. The following may help : Class
> org.apache.jdo.tck.pc.
> company.IPCompany has property null.companyid declared in MetaData, but this
> method doesnt exist in the class!
> [java] Exception in thread "main" Class
> org.apache.jdo.tck.pc.company.IPCompany has property null.companyid declared
> in MetaData, but this method doesnt exist in the class!
> [java] org.jpox.metadata.InvalidMetaDataException: Class
> org.apache.jdo.tck.pc.company.IPCompany has property null.companyid declared
> in MetaData, but this method doesnt exist in the class!
> [java] at
> org.jpox.metadata.InterfaceMetaData.populatePropertyMetaData(InterfaceMetaData.java:538)
> [java] at
> org.jpox.metadata.InterfaceMetaData.populate(InterfaceMetaData.java:436)
> [java] at
> org.jpox.metadata.MetaDataManager.populateFileMetaData(MetaDataManager.java:1590)
> [java] at
> org.jpox.metadata.JDOMetaDataManager.loadMetaDataForClass(JDOMetaDataManager.java:615)
> [java] at
> org.jpox.metadata.JDOMetaDataManager.getMetaDataForClassInternal(JDOMetaDataManager.java:308)
> [java] at
> org.jpox.metadata.AbstractClassMetaData.determineSuperClassName(AbstractClassMetaData.java:618)
> [java] at
> org.jpox.metadata.InterfaceMetaData.populate(InterfaceMetaData.java:421)
> [java] at
> org.jpox.metadata.MetaDataManager.populateFileMetaData(MetaDataManager.java:1590)
> [java] at
> org.jpox.metadata.MetaDataManager.initialise(MetaDataManager.java:313)
> [java] at
> org.jpox.enhancer.JPOXEnhancer.getFileMetaDataForInput(JPOXEnhancer.java:716)
> [java] at org.jpox.enhancer.JPOXEnhancer.main(JPOXEnhancer.java:531)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.