It doesn't outside of JDO at least, I use private no-arg constructors with OJB all the time.
-Brian On Wed, 2003-12-17 at 12:18, Gus Heck wrote: > Mahler Thomas wrote: > > >Hi Sebastian, > > > >Does your class have a public default constructor? > > > > > > > > > From _Core Java Data Objects_ page 51: > > "There is one requirement, however; JDO requires that a > persistence-capable class have a no-arguments constructor. This > constructor does not need to be declared public it just needs to be > accessible to the class itself and to any potential subclasses. If thee > are no sublcasses it can be declared as private." > > Does OJB place a further restriction that it must be public? > > -Gus > > > > > > >>-----Original Message----- > >>From: Sebastian Muench [mailto:[EMAIL PROTECTED] > >>Sent: Wednesday, December 17, 2003 1:42 AM > >>To: OJB Users List; [EMAIL PROTECTED] > >>Subject: R: JDO - Unable to build object instance > >> > >> > >>Oh, the file I mentioned in my last mail hasn't been attached. > >>Here is the screenshot: > >> > >>[JDO] DEBUG: OjbStoreConnector.begin: connectionReadyForRelease=false > >>[org.apache.ojb.broker.accesslayer.RsIterator] ERROR: Error > >>while iterate > >>ResultSet for query > >>org.apache.ojb.broker.accesslayer.RsQueryObject[query: > >>Query from class JDOTest.Person where null, class descriptor: > >>JDOTest.Person] > >>Unable to build object instance (MAYBE you don't have a constructor > >>available):class JDOTest.Person > >>org.apache.ojb.broker.PersistenceBrokerException: Unable to > >>build object > >>instance (MAYBE you don't have a constructor available):class > >>JDOTest.Person > >> at > >>org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWi > >>thReflection(R > >>owReaderDefaultImpl.java:239) > >> at > >>org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObj > >>ectFrom(RowRea > >>derDefaultImpl.java:115) > >> at > >>org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResu > >>ltSet(RsIterat > >>or.java:463) > >> at > >>org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:284) > >> at > >>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB > >>yQuery(QueryRe > >>ferenceBroker.java:147) > >> at > >>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB > >>yQuery(QueryRe > >>ferenceBroker.java:244) > >> at > >>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB > >>yQuery(QueryRe > >>ferenceBroker.java:263) > >> at > >>org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollection > >>ByQuery(Persis > >>tenceBrokerImpl.java:997) > >> at > >>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getColl > >>ectionByQuery( > >>DelegatingPersistenceBroker.java:322) > >> at > >>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getColl > >>ectionByQuery( > >>DelegatingPersistenceBroker.java:322) > >> at > >>org.apache.ojb.jdori.sql.OjbExtent.<init>(OjbExtent.java:98) > >> at > >>org.apache.ojb.jdori.sql.OjbStoreManager.getExtent(OjbStoreMan > >>ager.java:251) > >> at > >>com.sun.jdori.common.PersistenceManagerImpl.getExtent(Unknown > >>Source) > >> at > >>com.sun.jdori.common.query.QueryImpl.checkCandidates(Unknown > >>Source) > >> at > >>com.sun.jdori.common.query.QueryImpl.execute(Unknown Source) > >> at JDOTest.TestJdo.run(TestJdo.java:52) > >> at JDOTest.TestJdo.main(TestJdo.java:39) > >>Caused by: > >>org.apache.ojb.broker.metadata.ClassNotPersistenceCapableExcep > >>tion: (Could > >>not instantiate JDOTest.Person: Class > >>org.apache.ojb.broker.util.ConstructorHelper can not access a > >>member of > >>class JDOTest.Person with modifiers "public") > >> at > >>org.apache.ojb.broker.util.ConstructorHelper.instantiate(Const > >>ructorHelper.j > >>ava:162) > >> at > >>org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWi > >>thReflection(R > >>owReaderDefaultImpl.java:235) > >> ... 16 more > >>Caused by: java.lang.IllegalAccessException: Class > >>org.apache.ojb.broker.util.ConstructorHelper can not access a > >>member of > >>class JDOTest.Person with modifiers "public" > >> at > >>sun.reflect.Reflection.ensureMemberAccess(Reflection.java:57) > >> at > >>java.lang.reflect.Constructor.newInstance(Constructor.java:268) > >> at > >>org.apache.ojb.broker.util.ConstructorHelper.instantiate(Const > >>ructorHelper.j > >>ava:158) > >> ... 17 more > >>org.apache.ojb.broker.PersistenceBrokerException: > >>java.util.NoSuchElementException: Could not obtain next > >>object: Unable to > >>build object instance (MAYBE you > >>don't have a constructor available):class JDOTest.Person > >> at > >>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB > >>yQuery(QueryRe > >>ferenceBroker.java:251) > >> at > >>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB > >>yQuery(QueryRe > >>ferenceBroker.java:263) > >> at > >>org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollection > >>ByQuery(Persis > >>tenceBrokerImpl.java:997) > >> at > >>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getColl > >>ectionByQuery( > >>DelegatingPersistenceBroker.java:322) > >> at > >>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getColl > >>ectionByQuery( > >>DelegatingPersistenceBroker.java:322) > >> at > >>org.apache.ojb.jdori.sql.OjbExtent.<init>(OjbExtent.java:98) > >> at > >>org.apache.ojb.jdori.sql.OjbStoreManager.getExtent(OjbStoreMan > >>ager.java:251) > >> at > >>com.sun.jdori.common.PersistenceManagerImpl.getExtent(Unknown > >>Source) > >> at > >>com.sun.jdori.common.query.QueryImpl.checkCandidates(Unknown > >>Source) > >> at > >>com.sun.jdori.common.query.QueryImpl.execute(Unknown Source) > >> at JDOTest.TestJdo.run(TestJdo.java:52) > >> at JDOTest.TestJdo.main(TestJdo.java:39) > >>Caused by: java.util.NoSuchElementException: Could not obtain > >>next object: > >>Unable to build object instance (MAYBE you don't have a constructor > >>available):class JDOTest.Person > >> at > >>org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:310) > >> at > >>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB > >>yQuery(QueryRe > >>ferenceBroker.java:147) > >> at > >>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB > >>yQuery(QueryRe > >>ferenceBroker.java:244) > >> ... 11 more > >>Exception in thread "main" javax.jdo.JDOUserException: Cannot close > >>PersistenceManager while transaction is still active. > >> at > >>com.sun.jdori.common.PersistenceManagerImpl.close(Unknown Source) > >> at > >>com.sun.jdori.common.PersistenceManagerImpl.popCurrentWrapper(Unknown > >>Source) > >> at > >>com.sun.jdori.common.PersistenceManagerWrapper.close(Unknown > >>Source) > >> at JDOTest.TestJdo.run(TestJdo.java:69) > >> at JDOTest.TestJdo.main(TestJdo.java:39) > >> > >> > >> > >>--------------------------------------------------------------------- > >>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > >> > >> > > > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [EMAIL PROTECTED] > >For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]