[ 
https://issues.apache.org/jira/browse/JDO-509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12516019
 ] 

Andy Jefferson commented on JDO-509:
------------------------------------

All of this is caused by the change in the model. The fact is that you now are 
trying to embed an interface type that is not persistent (neither 
PersistenceCapable, nor "persistent-interface"). Ok, you are specifying 
"field-type" but sadly JPOX doesn't cater for that (my previous fix was a guess 
since I didn't write support for PI's and turns out that it only worked around 
metadata consistency issues). JPOX's handling of "persistent-interface" is for 
use of relation fields that are either PC or persistent-interface only.

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

Reply via email to