Daniel John Debrunner <[EMAIL PROTECTED]> writes: > In DRDAConnThread.writeSQLCINRD() at line 4129 we have: > > ResultSet rs = null; > > ... > > if (!stmt.needsToSendParamData) <<< line 4129 > rs = stmt.getResultSet(); > > > then later at line 4137 we access rs regardless of its setting: > > ResultSetMetaData rsmeta = rs.getMetaData(); > > this will lead to an NPE if stmt.needsToSendParamData was true. > > Any ideas on what is going on here? Should the test of > needsToSendParamData be removed?
I think the test is there to ensure that we don't send the result set until all out parameters (for callable statements) have been sent. The only place writeSQLCINRD() is called, stmt.finishParams() is called first, so needsToSendParamData is always false when writeSQLCINRD() is called. Since the intention seems to be that !needsToSendParamData is a precondition for writeSQLCINRD(), I think it would be fine to replace the test with an assert. -- Knut Anders
