Para obtener oracle.jdbc.driver.LogicalConnection, necesita oracle.jdbc.OracleConnection

Estoy tratando de conectarme a una base de datos Oracle dentro de una aplicación Java que se ejecuta en WebSphere. Necesito poder crear un descriptor de matriz para usar en una llamada a un procedimiento.

El código se ve así:

Connection conn=null;
ArrayDescriptor arrayDescriptor;
Connection tmpCon = jdbcTemplate.getDataSource().getConnection();
conn =  WSCallHelper.getNativeConnection(tmpCon);
arrayDescriptor = ArrayDescriptor.createDescriptor("t_my_array",conn);
IDs = new oracle.sql.ARRAY(arrayDescriptor, conn, list.toArray());

La linea que llamaArrayDescriptor.createDescriptor lanza una excepción de reparto de clase

java.lang.ClassCastException: oracle.jdbc.driver.LogicalConnection incompatible with oracle.jdbc.OracleConnection
    at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:149)
    at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:115)

Caminando a través de esto con el depurador, puedo ver queconn es definitivamente unoracle.jdbc.driver.LogicalConnection. El problema es que no puedo realmente referenciaLogicalConnection en mi código porque esa clase no es pública, así que no puedo hacer algo como esto:

arrayDescriptor = ArrayDescriptor.createDescriptor("t_my_array",((LogicalConnection)conn).getWrapper());

.

Y esto:

arrayDescriptor = ArrayDescriptor.createDescriptor("t_my_array",((oracle.jdbc.driver.OracleConnection)conn).getWrapper());

También devuelve una excepción de reparto de clase:

java.lang.ClassCastException: oracle.jdbc.driver.LogicalConnection incompatible with oracle.jdbc.driver.OracleConnection

Necesito tener unOracleConnection objeto, pero parece que no puedo conseguir uno de laLogicalConnection que se me devuelve ¿Alguien ha visto esto antes? Siento que me estoy perdiendo algo realmente obvio aquí, pero tal vez solo necesito otra taza de café ...