Well that is because you cannot bind parameter like you do: name IN (?). Therefore you get an exception. Try name = ? and I bet it will work.
2009/5/25, Gurvan Le Guernic <glegu...@gmail.com>: > If I remove the "WHERE" part, it works fine (i.e. no exception generated > when preparing the statement). > > SELECT method FROM methodParameters AS mp INNER JOIN types ON > mp.parameter = types.id GROUP BY method HAVING COUNT(method) >= ? > > Peter Ondruška wrote: >> Would you please try if there is any difference if you remove "name IN >> (?)". >> >> 2009/5/25, Gurvan Le Guernic <glegu...@gmail.com>: >> >>> The NullPointer exception is thrown by the statement: >>> ps = dbConnection.prepareStatement(sqlStr); >>> ,with ps a PreparedStatement ans sqlStr a string equal to >>> >>> SELECT method, COUNT(method) FROM methodParameters INNER JOIN types >>> ON parameter = id WHERE name IN (?) GROUP BY method HAVING COUNT(method) >>> >= ? >>> >>> I use similar code to prepare other statements and they work well. So I >>> guess that if there is an error in my code, it lies in the SQL select >>> query. >>> >>> Bryan Pendelton suggested filling a bug query. If I have no clue what >>> happens this evening, I' ll do it. >>> >>> Peter Ondruška wrote: >>> >>>> Can we see how you set parameters for this prepared statement? >>>> >>>> 2009/5/25, Gurvan Le Guernic <glegu...@gmail.com>: >>>> >>>> >>>>> Hi, >>>>> I have a java.lang.NullPointerException when preparing the following >>>>> statement: >>>>> >>>>> SELECT method, COUNT(method) FROM methodParameters INNER JOIN >>>>> types >>>>> ON parameter = id WHERE name IN (?) GROUP BY method HAVING >>>>> COUNT(method) >>>>> >= ? >>>>> >>>>> with the command: dbConnection.prepareStatement(sqlStr); >>>>> >>>>> The tables involved are: >>>>> "CREATE TABLE types (" + >>>>> " id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY," + >>>>> " name VARCHAR(128) NOT NULL UNIQUE," + >>>>> " shortName VARCHAR(64) NOT NULL" + >>>>> ")" >>>>> and >>>>> "CREATE TABLE methodParameters (" + >>>>> " method INT REFERENCES methods (id)," + >>>>> " position INT," + >>>>> " parameter INT REFERENCES types (id)" + >>>>> ")" >>>>> >>>>> SQL information for the exception are: >>>>> SQL state: XJ001 >>>>> Error code: 0 >>>>> >>>>> And the stack trace is: >>>>> Message: Exception Java : ': java.lang.NullPointerException'. >>>>> java.sql.SQLException: Exception Java : ': >>>>> java.lang.NullPointerException'. >>>>> at >>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown >>>>> Source) >>>>> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown >>>>> Source) >>>>> at org.apache.derby.impl.jdbc.Util.javaException(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown >>>>> Source) >>>>> at org.thinkcollabs.jmbrowser.db.DAO.initSelect(DAO.java:370) >>>>> at >>>>> org.thinkcollabs.jmbrowser.db.DB_Derby$MethodDataLoader.run(DB_Derby.java:254) >>>>> Caused by: java.sql.SQLException: Exception Java : ': >>>>> java.lang.NullPointerException'. >>>>> at >>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown >>>>> Source) >>>>> ... 16 more >>>>> Caused by: java.lang.NullPointerException >>>>> at >>>>> org.apache.derby.impl.sql.compile.ColumnReference.remapColumnReferencesToExpressions(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.sql.compile.AggregateNode.getNewExpressionResultColumn(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.sql.compile.GroupByNode.addAggregateColumns(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.sql.compile.GroupByNode.addNewColumnsForAggregation(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.sql.compile.GroupByNode.addAggregates(Unknown >>>>> Source) >>>>> at org.apache.derby.impl.sql.compile.GroupByNode.init(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.iapi.sql.compile.NodeFactory.getNode(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.sql.compile.SelectNode.genProjectRestrict(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.sql.compile.SelectNode.modifyAccessPaths(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.sql.compile.DMLStatementNode.optimizeStatement(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.sql.compile.CursorNode.optimizeStatement(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown >>>>> Source) >>>>> at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown >>>>> Source) >>>>> at >>>>> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown >>>>> Source) >>>>> ... 9 more >>>>> >>>>> I can't see what I am doing wrong, but I am not an SQL expert. So, I am >>>>> doing something wrong or is there a problem with Derby 10.5.1.1? >>>>> >>>>> Thank you, >>>>> Gurvan >>>>> >>>>> >>>>> >>> > >