MySQL Forums
Forum List  »  General

prepareCall
Posted by: Darren Lombardi
Date: June 06, 2014 01:53PM

MySQL Fabric: 1.4.3
MySQL ConnectorJ: 1.5.30

I am getting a NullPointerException during a prepareCall when connecting to a MySQL Fabric group. If I connect to the Primary or Secondary server directly the prepareCall is successful. Also, if I use a prepareStatement when connecting via fabric the call is successful.

Any ideas on what might cause this issue?

Connection Strings:
Fabric: jdbc:mysql:fabric://10.199.248.111:32274/employees?fabricServerGroup=group_1&fabricUsername=admin&fabricPassword=admin
Primary: jdbc:mysql://10.199.248.153:3306/employees

Stored Proc:
DELIMITER $$

CREATE DEFINER=`fabric`@`%` PROCEDURE `sp_person_create`(
IN vchFirstName VARCHAR(255),
IN vchLastName VARCHAR(255),
OUT iOutId int
)
BEGIN
INSERT INTO persons(first_name, last_name)
VALUES (vchFirstName, vchLastName);

SET iOutId = LAST_INSERT_ID();
END

Method Call that throws exception:
CallableStatement cs = connection.prepareCall("{call sp_person_create(?, ?, ?)}");

Stack Trace:
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:524)
at com.mysql.jdbc.ConnectionImpl.parseCallableStatement(ConnectionImpl.java: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(LoadBalancedMySQLConnection.java:2159)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.mysql.jdbc.LoadBalancingConnectionProxy.invoke(LoadBalancingConnectionProxy.java:644)
at com.mysql.jdbc.LoadBalancingConnectionProxy.invoke(LoadBalancingConnectionProxy.java:549)
at com.sun.proxy.$Proxy28.prepareCall(Unknown Source)
at com.mysql.jdbc.ReplicationConnection.prepareCall(ReplicationConnection.java:543)
at com.mysql.fabric.jdbc.FabricMySQLConnectionProxy.prepareCall(FabricMySQLConnectionProxy.java:696)
at com.jolbox.bonecp.ConnectionHandle.prepareCall(ConnectionHandle.java:902)
at com.pearson.grid.assessments.controller.PersonController$PersonGenerator.run(PersonController.java:272)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at com.mysql.jdbc.DatabaseMetaData.getCallStmtParameterTypes(DatabaseMetaData.java:1770)
at com.mysql.jdbc.DatabaseMetaData.getProcedureOrFunctionColumns(DatabaseMetaData.java:4508)
at com.mysql.jdbc.JDBC4DatabaseMetaData.getProcedureColumns(JDBC4DatabaseMetaData.java:106)
at com.mysql.jdbc.CallableStatement.determineParameterTypes(CallableStatement.java:857)
at com.mysql.jdbc.CallableStatement.<init>(CallableStatement.java:630)
at com.mysql.jdbc.JDBC4CallableStatement.<init>(JDBC4CallableStatement.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
... 19 more

Options: ReplyQuote


Subject
Written By
Posted
prepareCall
June 06, 2014 01:53PM
June 20, 2014 08:39PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.