I have the following function:

CREATE OR REPLACE FUNCTION FUNCTEST (
val1 IN OUT NUMBER, val2 IN OUT NUMBER)

RETURN NUMBER
AS
BEGIN
val1 := val1 + 1000;
val2 := val2 + 5000;

RETURN 0;
END FUNCTEST;


and the following java code to call the function above:

Connection con;
String Url = "jdbc:odbc:myDataSource";

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e) {
}

try {
con = DriverManager.getConnection (Url, "user", "pwd");
}
catch (SQLException e) {
}

CallableStatement cstmt = (CallableStatement)con.prepareCall("begin FUNCTEST(?,?); end;");

cstmt.setInt (1, 1);
cstmt.setInt (2, 5);
cstmt.registerOutParameter (1, Types.INTEGER);
cstmt.registerOutParameter (2, Types.INTEGER);
cstmt.execute ();

Double d1 = (Double)((CallableStatement)cstmt).getObject(1);
Double d2 = (Double)((CallableStatement)cstmt).getObject(2);

when I try to execute the java code I got the error:
"java.sql.SQLException: [Oracle][ODBC Oracle Driver]Error in assignment" when I execute the line cstmt.execute ();

What Im doing wrong?