Craig,
Now the error (returned null) is the same for PMClass and PMInterface tests. As
I told, I don't have any idea of the cause. Calling these methods outside
Spring works.
[org.apache.jdo.tck.pc.company.CompanyFactoryPMClass] returned null
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiteUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:576)
[org.apache.jdo.tck.pc.company.CompanyFactoryPMInterface] returned null
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiteUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:576)
> The exception thrown to the caller of newInstance should be a
> JDOUserException.
fixed in CVS
Quoting Craig L Russell <[EMAIL PROTECTED]>:
> Hi Erik,
>
> The exception thrown to the caller of newInstance should be a
> JDOUserException.
>
> The bug is fixed in JDO svn.
>
> Craig
>
> On Mar 15, 2006, at 3:36 PM, Erik Bengtson wrote:
>
> > Thanks Craig. I was unable to find it :(
> >
> > With this fixed in JPOX, the issue is that the constructor of
> > Address is
> > protected
> >
> > org.springframework.beans.factory.BeanDefinitionStoreException:
> > Factory method
> > [public org.apache.jdo.tck.pc.company.IAddress
> > org.apache.jdo.tck.pc.company.CompanyFactoryAbstractImpl.newAddress
> > (long,java.lang.String,java.lang.String,java.lang.String,java.lang.Str
> > ing,java.lang.String)]
> > threw exception; nested exception is javax.jdo.JDOFatalException:
> > java.lang.IllegalAccessException: Class
> > org.jpox.AbstractPersistenceManager can
> > not access a member of class org.apache.jdo.tck.pc.company.Address
> > with
> > modifiers "protected"
> > javax.jdo.JDOFatalException: java.lang.IllegalAccessException: Class
> > org.jpox.AbstractPersistenceManager can not access a member of class
> > org.apache.jdo.tck.pc.company.Address with modifiers "protected"
> > at
> > org.jpox.AbstractPersistenceManager.newInstance
> > (AbstractPersistenceManager.java:2329)
> > at
> > org.apache.jdo.tck.pc.company.CompanyFactoryPMClass.newAddress
> > (CompanyFactoryPMClass.java:38)
> > at
> > org.apache.jdo.tck.pc.company.CompanyFactoryAbstractImpl.newAddress
> > (CompanyFactoryAbstractImpl.java:46)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> > sun.reflect.NativeMethodAccessorImpl.invoke
> > (NativeMethodAccessorImpl.java:39)
> > at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke
> > (DelegatingMethodAccessorImpl.java:25)
> > ...
> >
> >
> > Quoting Craig L Russell <[EMAIL PROTECTED]>:
> >
> >> Hi Erik,
> >>
> >> Sorry, I thought I had answered this but found the message in my "to
> >> be sent" box.
> >>
> >> The instance returned from newInstance is transient. The application
> >> treats the new instance just like an instance created via the "new PC
> >> ()" method call. An example implementation is:
> >>
> >> Object newInstance(Class pcClass) {
> >> if (it's a persistent interface or abstract class) {
> >> ... construct your implementation based on metadata
> >> } else if (PersistenceCapable.class.isAssignableFrom(pcClass) {
> >> return pc.getConstructor(new Class[ ]{}).newInstance(); //
> >> throws if abstract class or no privileges
> >> } else {
> >> throw JDOUserException...
> >> }
> >> }
> >>
> >> Craig
> >>
> >> <spec>
> >> The following method is used to create an instance of a persistence-
> >> capable interface, or of
> >> a concrete or abstract class.
> >> Object newInstance(Class persistenceCapable);
> >> The parameter must be one of the following:
> >> an abstract class that is declared in the metadata using the class
> >> element, or
> >> an interface that is declared in the metadata using the interface
> >> element, 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.
> >> The returned instance is transient, and is an instanceof the
> >> parameter. Applications
> >> might use the instance via the get and set property methods and
> >> change its life cycle
> >> state exactly as if it were an instance of a persistence-capable
> >> class.
> >> In order for the newInstance method to be used, the parameter
> >> interface must be com-
> >> pletely 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.
> >> For interfaces and classes that use a SingleFieldIdentity as the
> >> object-id class, if the
> >> returned instance is subsequently made persistent, the target class
> >> stored in the object-id
> >> instance is the parameter of the newInstance method that created it.
> >> </spec>
> >> On Mar 15, 2006, at 1:59 PM, Erik Bengtson wrote:
> >>
> >>> Hi,
> >>>
> >>> All issues in JPOX were solved but not the ones related to the
> >>> newInstance
> >>> tests.
> >>>
> >>>> It's not clear to me in what state must be the instance created by
> >>>> this
> >>>> method.
> >>>
> >>> Can someone answer this?
> >>>
> >>> Quoting Erik Bengtson <[EMAIL PROTECTED]>:
> >>>
> >>>> Craig,
> >>>>
> >>>> It's not clear to me in what state must be the instance created by
> >>>> this
> >>>> method.
> >>>> Can you clarify?
> >>>>
> >>>> Thanks
> >>>>
> >>>> Quoting Craig L Russell <[EMAIL PROTECTED]>:
> >>>>
> >>>>> Hi Erik,
> >>>>>
> >>>>> On Mar 14, 2006, at 1:21 PM, Erik Bengtson wrote:
> >>>>>
> >>>>>> Can someone with spring understanding check JDO-327 ?
> >>>>>
> >>>>> Your symptom is different from mine. Have you checked in all the
> >>>>> code
> >>>>> that gives you the error on pm.newInstance
> >>>>> (IDentalInsurance.class) ?
> >>>>>
> >>>>>>
> >>>>>> With me
> >>>>>> JDO-241
> >>>>>> JDO-246 (Issue in derby, needs workaround implemented in JPOX)
> >>>>>> JDO-337 (to be fixed tonight)
> >>>>>>
> >>>>>> Work not started
> >>>>>> JDO-326 (abstract class support)
> >>>>>
> >>>>> Note that this is not abstract class support. The parameter is a
> >>>>> concrete class. "All the implementation has to do" is to recognize
> >>>>> that the parameter is PersistenceCapable, and call the
> >>>>> jdoNewInstance
> >>>>> () method that's enhanced into the class.
> >>>>>
> >>>>> Regards,
> >>>>>
> >>>>> Craig
> >>>>>>
> >>>>>>
> >>>>>> Quoting Craig L Russell <[EMAIL PROTECTED]>:
> >>>>>>
> >>>>>>> Hi,
> >>>>>>>
> >>>>>>> I'm looking at JDO JIRA issues 241, 246, 326, 327, and 337, and
> >>>>>>> I'm
> >>>>>>> assuming that these issues are being looked at by the JPOX
> >>>>>>> folks.
> >>>>>>>
> >>>>>>> Please correct me if there's some TCK activity needed here.
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>>
> >>>>>>> Craig
> >>>>>>>
> >>>>>>> Craig Russell
> >>>>>>> Architect, Sun Java Enterprise System http://java.sun.com/
> >>>>>>> products/
> >>>>>>> jdo
> >>>>>>> 408 276-5638 mailto:[EMAIL PROTECTED]
> >>>>>>> P.S. A good JDO? O, Gasp!
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>> Craig Russell
> >>>>> Architect, Sun Java Enterprise System http://java.sun.com/
> >>>>> products/jdo
> >>>>> 408 276-5638 mailto:[EMAIL PROTECTED]
> >>>>> P.S. A good JDO? O, Gasp!
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>
> >> Craig Russell
> >> Architect, Sun Java Enterprise System http://java.sun.com/products/
> >> jdo
> >> 408 276-5638 mailto:[EMAIL PROTECTED]
> >> P.S. A good JDO? O, Gasp!
> >>
> >>
> >
> >
> >
>
> Craig Russell
> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> 408 276-5638 mailto:[EMAIL PROTECTED]
> P.S. A good JDO? O, Gasp!
>
>