Description:
Hi,
Am using mysqlfabric to support HA to my application. The connector/J version am using is 5.1.30
The connection link is
jdbc:mysql:fabric://localhost:32274/optimaintake?fabricServerGroup=testgroup&fabricUsername=admin&fabricPassword=pass
which is working for normal DML operations but when trying to execute stored procedure am getting the following exception
java.sql.SQLException: java.lang.NullPointerException
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:973)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:949)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:939)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:433)
at com.mysql.jdbc.CallableStatement.getInstance(CallableStatement.java:5
24)
at com.mysql.jdbc.ConnectionImpl.parseCallableStatement(ConnectionImpl.j
ava:4334)
at com.mysql.jdbc.ConnectionImpl.prepareCall(ConnectionImpl.java:4418)
at com.mysql.jdbc.ConnectionImpl.prepareCall(ConnectionImpl.java:4392)
at com.mysql.jdbc.LoadBalancedMySQLConnection.prepareCall(LoadBalancedMy
SQLConnection.java:2159)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.mysql.jdbc.LoadBalancingConnectionProxy.invoke(LoadBalancingConne
ctionProxy.java:644)
at com.mysql.jdbc.LoadBalancingConnectionProxy.invoke(LoadBalancingConne
ctionProxy.java:549)
at com.sun.proxy.$Proxy0.prepareCall(Unknown Source)
at com.mysql.jdbc.ReplicationConnection.prepareCall(ReplicationConnectio
n.java:543)
at com.mysql.fabric.jdbc.FabricMySQLConnectionProxy.prepareCall(FabricMy
SQLConnectionProxy.java:696)
at com.cts.fabric.ProcedureTest.main(ProcedureTest.java:39)
Caused by: java.lang.NullPointerException
at com.mysql.jdbc.DatabaseMetaData.getCallStmtParameterTypes(DatabaseMet
aData.java:1770)
at com.mysql.jdbc.DatabaseMetaData.getProcedureOrFunctionColumns(Databas
eMetaData.java:4508)
at com.mysql.jdbc.JDBC4DatabaseMetaData.getProcedureColumns(JDBC4Databas
eMetaData.java:106)
at com.mysql.jdbc.CallableStatement.determineParameterTypes(CallableStat
ement.java:857)
at com.mysql.jdbc.CallableStatement.<init>(CallableStatement.java:630)
at com.mysql.jdbc.JDBC4CallableStatement.<init>(JDBC4CallableStatement.j
ava:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
... 15 more
Kindly help me regarding this asap.
Thanks,
Karthik. A
How to repeat:
The code snippet used to call the stored procedure is
Connection conn = DriverManager.getConnection(baseUrl, user,
password);
String seqId = "";
String query = "CALL generateSeq(?)";
CallableStatement callStmt = conn.prepareCall(query);
callStmt.registerOutParameter(1, java.sql.Types.VARCHAR);
callStmt.executeQuery();
seqId = callStmt.getString(1);