Good afternoon all,
I have generated jOOQ classes for database objects in a Oracle 11g database: the generation was successful.
One of the database objects is a PL/SQL procedure with the following signature:
PROCEDURE search_public
( i_comref_id IN VARCHAR2
,i_free_text IN VARCHAR2
,i_is_manager IN VARCHAR2
,i_current_user_login IN t$users.user_login%TYPE
,o_ref_list OUT setup$m.CUSTOM_REF_CURSOR
,i_orderby IN VARCHAR2
,i_order IN VARCHAR2
,o_result OUT VARCHAR2)
My jUnit test of the corresponding class SearchPublic() fails with the following stacktrace:
java.lang.NullPointerException
at org.jooq.impl.DefaultDataType.getSQLType(DefaultDataType.java:510)
at org.jooq.impl.DefaultBinding.register(DefaultBinding.java:766)
at org.jooq.impl.AbstractRoutine.registerOutParameter(AbstractRoutine.java:622)
at org.jooq.impl.AbstractRoutine.registerOutParameters(AbstractRoutine.java:616)
at org.jooq.impl.AbstractRoutine.executeCallableStatement(AbstractRoutine.java:339)
at org.jooq.impl.AbstractRoutine.execute(AbstractRoutine.java:270)
at org.jooq.impl.AbstractRoutine.execute(AbstractRoutine.java:256)
The problems seem to originate in the instantiation
SearchPublic searchPublic = new SearchPublic();
and are described as follows by IntelliJ:
Method threw 'java.lang.NullPointerException' exception. Cannot evaluate domain.framew.packages.user$o.SearchPublic.toString()
Do you know what might be going wrong?
Thank you, kind regards,
--
You received this message because you are subscribed to the Google Groups "jOOQ User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jooq-user+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
CREATE OR REPLACE PACKAGE setup$m ASTYPE CUSTOM_REF_CURSOR IS REF CURSOR;
PROCEDURE search_public( i_comref_id IN VARCHAR2,i_free_text IN VARCHAR2,i_is_manager IN VARCHAR2
,i_current_user_login IN VARCHAR2
,o_ref_list OUT setup$m.CUSTOM_REF_CURSOR,i_orderby IN VARCHAR2,i_order IN VARCHAR2
,o_result OUT VARCHAR2);END setup$m;/CREATE OR REPLACE PACKAGE BODY setup$m AS
PROCEDURE search_public( i_comref_id IN VARCHAR2,i_free_text IN VARCHAR2,i_is_manager IN VARCHAR2
,i_current_user_login IN VARCHAR2
,o_ref_list OUT setup$m.CUSTOM_REF_CURSOR,i_orderby IN VARCHAR2,i_order IN VARCHAR2
,o_result OUT VARCHAR2) ISBEGINOPEN o_ref_list FOR SELECT 1 a FROM DUAL;END search_public;END setup$m;/
SearchPublic result = Setup$m.searchPublic(configuration, null, null, null, null, null, null);System.out.println(result.getORefList());
+----+| A|+----+| 1|+----+
else if (Result.class.isAssignableFrom(type)) { switch (dialect.family()) { /* [pro] */ case ORACLE: /* [/pro] */ case H2: return -10; // OracleTypes.CURSOR; case POSTGRES: default: return Types.OTHER; } }
public void testSearchPublic() {
try {
DSLContext context = getDslContext();
SearchPublic searchPublic = new SearchPublic();
searchPublic.setIComrefId("");
searchPublic.setIFreeText("");
searchPublic.setIIsManager("");
searchPublic.setICurrentUserLogin("");
searchPublic.setIOrderby("");
searchPublic.setIOrder("");
searchPublic.execute(context.configuration());
Result<Record> oRefList = searchPublic.getORefList();
String oResult = searchPublic.getOResult();
} catch (Exception e) {
e.printStackTrace();
}
}
private DSLContext getDslContext() throws SQLException {
Connection conn = DriverManager.getConnection(url, userName, password);
return DSL.using(conn, SQLDialect.ORACLE11G);
}