RE: Oracle LOB problem

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Fri Nov 12 2004 - 13:24:40 EST

  • Next message: Andrus Adamchik: "Re: Running a packaged Stored Procedure"

    Cris,

    Thanks for tracking this down. Looks like it became a victim of the
    earlier 1.1 refactoring sweep. I will need to make sure that our tests
    reflect this case and will work on the fix per your suggestion.

    I guess folks from Spring are right - statics and singletons ARE evil ;-)

    Andrus

    > Andrus,
    >
    > It looks like the problem is that OracleAdapter registers the special
    > BLOB handler in static method initDriverInformation(), which does not
    > exist in any of the other Adapters. Unfortunately, the method is only
    > being called by getOracleCursorType(), which in turn is only invoked by
    > readStoredProcedureOutParameters(). Thus, the driver info is never
    > initialized unless you first call a stored proc.
    >
    > I added it to the constructor to test, and the blob handling worked like
    > a charm. Since none of the other Adapters were relying on a similar
    > method, I was at a loss for where a proper invocation should go. It
    > seems that there are only two functions served by
    > initDriverInformation() - cursor setup and blob setup, so I would guess
    > the best location would be in
    > isSupportsOracleLOB():
    >
    > public static boolean isSupportsOracleLOB() {
    > if (!initDone) {
    > initDriverInformation();
    > }
    > return supportsOracleLOB;
    > }
    >



    This archive was generated by hypermail 2.0.0 : Fri Nov 12 2004 - 13:24:42 EST