Thanks for your fast reply. To reproduce the problem, simply execute the following few lines of code:
Class.forName( "org.apache.derby.jdbc.EmbeddedDriver" );
Connection conn = DriverManager.getConnection( "jdbc:derby:db;create=true", "user", "pwd" );
Statement sta = conn.createStatement();
sta.executeUpdate( "drop procedure \"PROC\"" );
catch( Exception e )
// ignore, PROC doesn't exist when run for the first time
sta.execute( "create procedure PROC( inout x int ) parameter style java modifies sql data language java external name 'DUMMY.PROC'" );
Please note, that there is only one parameter of type INOUT and the parameter value is provided directly.
Beside the NPE thing, your fix to the original bug seems to work well. Should I close this ticket then or would you prefer to keep it open until you had a look into the NPE problem which didn't occur before?