Hello Armin, Thanks for quick reply.
Unfortunately problem remains in OJB_1_0_RELEASE. Please look at SqlQueryStatement [line 128]: m_root = createTableAlias(m_baseCld, hints=null, path=""); When above line is called for abstract class descriptor (the one that has extent, but not mapped to a table itself) empty path causes variable lookForExtents=false, which in turn will result in TableAlias.tableName=null. All the Best, Andy ----- Original Message ----- From: "Armin Waibel" <[EMAIL PROTECTED]> To: "OJB Users List" <[email protected]> Sent: Monday, December 12, 2005 12:26 PM Subject: Re: NullPointerException in SqlQueryStatement OJB 1.0.3 > Hi Andy, > > Andy Malakov wrote: > > Hello All, > > > > When org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.TableAlias is used for abstract class (has extent classes declared, but not mapped to any table itself) it may initialized with tableName=null. This situation later produces a problem, because tableName is being used for TableAlias identity (equals/hashcode): > > > > I'm virtually certain that this is fixed in CVS. Some time ago a similar > error message was posted > http://mail-archives.apache.org/mod_mbox/db-ojb-user/200408.mbox/[EMAIL PROTECTED] > > If possible please try latest version from CVS (check out > OJB_1_0_RELEASE branch). Or do you use a CVS version? > > regards, > Armin > > > > > > java.lang.NullPointerException > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement$TableAlias.hashCode( SqlQueryStatement.java:1977) > > at java.util.HashMap.hash(HashMap.java:261) > > at java.util.HashMap.put(HashMap.java:379) > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.splitCriteria(SqlQue ryStatement.java:1686) > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.<init>(SqlQueryState ment.java:132) > > at org.apache.ojb.broker.accesslayer.sql.SqlSelectStatement.<init>(SqlSelectSta tement.java:64) > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.getSubQuerySQL(SqlQu eryStatement.java:976) > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendSubQuery(SqlQu eryStatement.java:957) > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendParameter(SqlQ ueryStatement.java:942) > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendInCriteria(Sql QueryStatement.java:770) > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendCriteria(SqlQu eryStatement.java:849) > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendSQLClause(SqlQ ueryStatement.java:922) > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.asSQLStatement(SqlQu eryStatement.java:671) > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendClause(SqlQuer yStatement.java:592) > > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendWhereClause(Sq lQueryStatement.java:544) > > at org.apache.ojb.broker.accesslayer.sql.SqlSelectStatement.getStatement(SqlSel ectStatement.java:243) > > at org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl.getPreparedSel ectStatement(SqlGeneratorDefaultImpl.java:151) > > at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(JdbcAccessImpl .java:305) > > at org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(RsQueryObject.j ava:74) > > at org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:185) > > at org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIterator FactoryImpl.java:58) > > at org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Pers istenceBrokerImpl.java:1918) > > at org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Persis tenceBrokerImpl.java:1493) > > at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryRe ferenceBroker.java:112) > > at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryRe ferenceBroker.java:251) > > at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryRe ferenceBroker.java:271) > > at org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Persis tenceBrokerImpl.java:1367) > > at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery( DelegatingPersistenceBroker.java:338) > > at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery( DelegatingPersistenceBroker.java:338) > > > > Thanks, > > Andy > > > > > > --------------------------------------------------------------------- > 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]
