getOPAQUE(String) メソッドを呼び出すことができるように、OracleResultSet に変換する必要がある ResultSet オブジェクトがあります。接続プールとして c3p0 を使用しています。問題は、c3p0 が ResultSet を NewProxyResultSet オブジェクトにラップすることです。
次のように ResultSet で unwrap を呼び出すことができるはずなので、これは問題になりません。
rs.unwrap(OracleResultSet.class)
しかし、それはうまくいきません。実際には AbstractMethodError をスローします。
java.lang.AbstractMethodError: com.mchange.v2.c3p0.impl.NewProxyResultSet.unwrap(Ljava/lang/Class;)Ljava/lang/Object;
これにはスタック トレースが含まれていますが、スタック トレースの一番上の行は、unwrap メソッドを呼び出した正確な行を指しているだけなので、役に立ちません。これは、NewProxyResultSet 自体に unwrap が実装されていないことを示しているようです。
これどうしたの?NewProxyResultSet を取得してそこから OracleResultSet を取得するにはどうすればよいですか?