Jackrabbit Content Repository
  1. Jackrabbit Content Repository
  2. JCR-1525

Jackrabbit depends on Oracle driver for BLOB support in Oracle versions previous than 10.2


    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-beta5
    • Fix Version/s: 2.0-beta6
    • Component/s: jackrabbit-core
    • Labels:


      In Oracle versions previous to 10.2, Jackrabbit explicitly uses a class from the Oracle driver to provide BLOB support (see OracleFileSystem.init()). This special handling is no longer necesary for Oracle 10.2+, so we should provide a new implementation. As discussed on the list, we can create a new class for Oracle 10.2+, make it inherit from DbFileSystem, and override the createSchema(), and table space related methods, which are the ones that need special handling. Furthermore, we could refactor the current OracleFileSystem and break it into two clases, one of them to keep the current behavior and a new one to keep the common code (which we could rename to OracleBaseFileSystem or similar, to maintain compatiblity with code that uses OracleFileSystem for versions previous to 10.2). Then we make the Oracle10FileSystem inherit from the latter.

      1. JCR-1525.patch
        3 kB
        Martijn Hendriks
      2. JCR-1525.patch
        51 kB
        Jared Roberts
      3. JCR-1525.patch
        27 kB
        Esteban Franqueiro


        Esteban Franqueiro created issue -
        Esteban Franqueiro made changes -
        Field Original Value New Value
        Attachment JCR-1525.patch [ 12380528 ]
        Serge Huber made changes -
        Comment [ Actually in the most recent versions of the Oracle driver (11) we no longer need the Oracle BLOB specific code. And the new driver solves this even for older versions of Oracle. If you're interested I have a patch for that also. But it's not clear to me if it's acceptable to Jackrabbit to have a dependency on the latest version of the driver ?

        Here is the extract from the README for the new driver :

        "New Factory Methods
        The JDBC 4.0 spec for java.sql.Connection includes factory methods
        for creating instances of the standard JDBC types, Array, Blob,
        Clob, etc. Building on this concept Oracle JDBC 11R1
        oracle.jdbc.OracleConnection provides factory methods for creating
        instances of the Oracle specific types. Best practice is to use
        the standard JDBC types and the new factory methods. When it is
        necessary to use the Oracle specific types best practice is to
        create them via the new factory methods. Direct customer access to
        the the constructors for these types will be deprecated and later
        desupported. The supported types are all those in oracle.sql,
        TIMESTAMP, etc."

          Serge ]
        Jukka Zitting made changes -
        Workflow jira [ 12428366 ] no-reopen-closed, patch-avail [ 12467745 ]
        Jukka Zitting made changes -
        Status Open [ 1 ] Patch Available [ 10002 ]
        Jared Roberts made changes -
        Attachment JCR-1525.patch [ 12413160 ]
        Martijn Hendriks made changes -
        Assignee Martijn Hendriks [ martijnh ]
        Martijn Hendriks made changes -
        Attachment JCR-1525.patch [ 12427096 ]
        Martijn Hendriks made changes -
        Status Patch Available [ 10002 ] Resolved [ 5 ]
        Assignee Martijn Hendriks [ martijnh ]
        Fix Version/s 2.0.0 [ 12312449 ]
        Resolution Fixed [ 1 ]
        Jukka Zitting made changes -
        Affects Version/s 2.0-beta5 [ 12314459 ]
        Jukka Zitting made changes -
        Fix Version/s 2.0-beta6 [ 12314522 ]
        Fix Version/s 2.0.0 [ 12312449 ]
        Jukka Zitting made changes -
        Status Resolved [ 5 ] Closed [ 6 ]


          • Assignee:
            Esteban Franqueiro
          • Votes:
            1 Vote for this issue
            0 Start watching this issue


            • Created: