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]

Reply via email to