You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Sebastian Muench <se...@gmx.net> on 2003/12/17 01:42:05 UTC

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.buildWithReflection(R
owReaderDefaultImpl.java:239)
        at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(RowRea
derDefaultImpl.java:115)
        at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterat
or.java:463)
        at
org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:284)
        at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryRe
ferenceBroker.java:147)
        at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryRe
ferenceBroker.java:244)
        at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryRe
ferenceBroker.java:263)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Persis
tenceBrokerImpl.java:997)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
DelegatingPersistenceBroker.java:322)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
DelegatingPersistenceBroker.java:322)
        at org.apache.ojb.jdori.sql.OjbExtent.<init>(OjbExtent.java:98)
        at
org.apache.ojb.jdori.sql.OjbStoreManager.getExtent(OjbStoreManager.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.ClassNotPersistenceCapableException: (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(ConstructorHelper.j
ava:162)
        at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(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(ConstructorHelper.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.getCollectionByQuery(QueryRe
ferenceBroker.java:251)
        at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryRe
ferenceBroker.java:263)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Persis
tenceBrokerImpl.java:997)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
DelegatingPersistenceBroker.java:322)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
DelegatingPersistenceBroker.java:322)
        at org.apache.ojb.jdori.sql.OjbExtent.<init>(OjbExtent.java:98)
        at
org.apache.ojb.jdori.sql.OjbStoreManager.getExtent(OjbStoreManager.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.getCollectionByQuery(QueryRe
ferenceBroker.java:147)
        at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(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: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: R: JDO - Unable to build object instance

Posted by Gus Heck <gu...@olin.edu>.
Well, does you object in fact have a no-arg constructor? (it's ok if 
it's private, but it must have one)

-Gus


Sebastian Muench wrote:

>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.buildWithReflection(R
>owReaderDefaultImpl.java:239)
>        at
>org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(RowRea
>derDefaultImpl.java:115)
>        at
>org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterat
>or.java:463)
>        at
>org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:284)
>        at
>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryRe
>ferenceBroker.java:147)
>        at
>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryRe
>ferenceBroker.java:244)
>        at
>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryRe
>ferenceBroker.java:263)
>        at
>org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Persis
>tenceBrokerImpl.java:997)
>        at
>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
>DelegatingPersistenceBroker.java:322)
>        at
>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
>DelegatingPersistenceBroker.java:322)
>        at org.apache.ojb.jdori.sql.OjbExtent.<init>(OjbExtent.java:98)
>        at
>org.apache.ojb.jdori.sql.OjbStoreManager.getExtent(OjbStoreManager.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.ClassNotPersistenceCapableException: (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(ConstructorHelper.j
>ava:162)
>        at
>org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(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(ConstructorHelper.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.getCollectionByQuery(QueryRe
>ferenceBroker.java:251)
>        at
>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryRe
>ferenceBroker.java:263)
>        at
>org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Persis
>tenceBrokerImpl.java:997)
>        at
>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
>DelegatingPersistenceBroker.java:322)
>        at
>org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(
>DelegatingPersistenceBroker.java:322)
>        at org.apache.ojb.jdori.sql.OjbExtent.<init>(OjbExtent.java:98)
>        at
>org.apache.ojb.jdori.sql.OjbStoreManager.getExtent(OjbStoreManager.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.getCollectionByQuery(QueryRe
>ferenceBroker.java:147)
>        at
>org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(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: ojb-user-unsubscribe@db.apache.org
>For additional commands, e-mail: ojb-user-help@db.apache.org
>
>  
>



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org