Return-Path: Delivered-To: apmail-db-ojb-dev-archive@www.apache.org Received: (qmail 43501 invoked from network); 16 Dec 2005 21:41:37 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 16 Dec 2005 21:41:37 -0000 Received: (qmail 39449 invoked by uid 500); 16 Dec 2005 21:41:36 -0000 Delivered-To: apmail-db-ojb-dev-archive@db.apache.org Received: (qmail 39425 invoked by uid 500); 16 Dec 2005 21:41:36 -0000 Mailing-List: contact ojb-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "OJB Developers List" Reply-To: "OJB Developers List" Delivered-To: mailing list ojb-dev@db.apache.org Received: (qmail 62419 invoked by uid 99); 16 Dec 2005 20:54:10 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Message-ID: <1340459052.1134766428834.JavaMail.jira@ajax.apache.org> Date: Fri, 16 Dec 2005 21:53:48 +0100 (CET) From: "Jakob Braeuchi (JIRA)" To: ojb-dev@db.apache.org Subject: [jira] Commented: (OJB-83) NullPointerException in SqlQueryStatement OJB 1.0.3 In-Reply-To: <130796337.1134750708301.JavaMail.jira@ajax.apache.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N [ http://issues.apache.org/jira/browse/OJB-83?page=comments#action_12360625 ] Jakob Braeuchi commented on OJB-83: ----------------------------------- reproduced the bug using andy's testcase. the 'null' table is a problem in the subquery, but these are not extent aware known-bugs: Subqueries are not extent aware. see QueryTest#testSubQueryAgainstExtents > NullPointerException in SqlQueryStatement OJB 1.0.3 > --------------------------------------------------- > > Key: OJB-83 > URL: http://issues.apache.org/jira/browse/OJB-83 > Project: OJB > Type: Bug > Components: PB-API > Versions: 1.0.3, 1.0.4 > Environment: Windows, Oracle 9.2 > Reporter: Andy Malakov > Attachments: testcase.zip > > 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): > 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(SqlQueryStatement.java:1686) > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.(SqlQueryStatement.java:132) > at org.apache.ojb.broker.accesslayer.sql.SqlSelectStatement.(SqlSelectStatement.java:64) > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.getSubQuerySQL(SqlQueryStatement.java:976) > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendSubQuery(SqlQueryStatement.java:957) > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendParameter(SqlQueryStatement.java:942) > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendInCriteria(SqlQueryStatement.java:770) > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendCriteria(SqlQueryStatement.java:849) > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendSQLClause(SqlQueryStatement.java:922) > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.asSQLStatement(SqlQueryStatement.java:671) > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendClause(SqlQueryStatement.java:592) > at org.apache.ojb.broker.accesslayer.sql.SqlQueryStatement.appendWhereClause(SqlQueryStatement.java:544) > at org.apache.ojb.broker.accesslayer.sql.SqlSelectStatement.getStatement(SqlSelectStatement.java:243) > at org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl.getPreparedSelectStatement(SqlGeneratorDefaultImpl.java:151) > at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(JdbcAccessImpl.java:305) > at org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(RsQueryObject.java:74) > at org.apache.ojb.broker.accesslayer.RsIterator.(RsIterator.java:185) > at org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIteratorFactoryImpl.java:58) > at org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(PersistenceBrokerImpl.java:1918) > at org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(PersistenceBrokerImpl.java:1493) > at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:112) > at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:251) > at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(QueryReferenceBroker.java:271) > at org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBrokerImpl.java:1367) > at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:338) > at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(DelegatingPersistenceBroker.java:338) > Additional information: 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. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org For additional commands, e-mail: ojb-dev-help@db.apache.org