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

Michelle Caisse commented on JDO-453:
-------------------------------------

>From the spec (assertion numbers need to be added):

Object newInstance(Class persistenceCapable);

A12.6.6-1 [The parameter must be one of the following:
-  an abstract class that is declared in the metadata as persistence-capable, 
in which all abstract methods are declared as persistent properties, or 
-  an interface that is declared in the metadata as persistence-capable, in 
which all methods are declared as persistent properties, or
-  a concrete class that is declared in the metadata as persistence-capable. In 
this case, the concrete class must declare a public no-args constructor.

If the parameter does not satisfy the above requirements, JDOUserException is 
thrown.]
...
A12.6.6-2 [In order for the newInstance method to be used, the parameter 
interface must be completely mapped. For relational implementations, the 
interface must be mapped to a table and all persistent properties must be 
mapped to columns. Additionally, interfaces that are the targets of all 
relationships from persistent properties must also be mapped. Otherwise, 
JDOUserException is thrown by the newInstance method.]

> Create a test for illegal arguments for PersistenceManager.newInstance
> ----------------------------------------------------------------------
>
>                 Key: JDO-453
>                 URL: https://issues.apache.org/jira/browse/JDO-453
>             Project: JDO
>          Issue Type: Test
>          Components: tck2, tck2-legacy
>    Affects Versions: JDO 2 final
>            Reporter: Craig Russell
>         Assigned To: Michelle Caisse
>             Fix For: JDO 2 maintenance release 1
>
>
> New test cases are needed for illegal arguments of newInstance. 
> One strategy is to define classes in a new package along with metadata, but 
> no mapping (since these are error classes). A new test should try to 
> instantiate the classes using the newInstance method and verify that 
> JDOUserException is thrown.
> Classes to test include:
> Abstract class with abstract method not declared as a property (missing 
> metadata for the method)
> Interface with method not declared as a property (missing metadata for the 
> method)
> Concrete class with missing public no-args constructor

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