Bug 906500

Summary: quartz throwing NoClassDefFoundError: oracle/sql/BLOB
Product: [Other] RHQ Project Reporter: John Mazzitelli <mazz>
Component: Core ServerAssignee: Jay Shaughnessy <jshaughn>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: high Docs Contact:
Priority: urgent    
Version: 4.5CC: hrupp, jshaughn, mfoley
Target Milestone: ---   
Target Release: RHQ 4.6   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-09-03 14:46:23 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description John Mazzitelli 2013-01-31 17:52:39 UTC
Using Oracle (and 11.x JDBC driver), you get this in the RHQ Server and you can't do things like invoke operations:

Caused by: java.lang.NoClassDefFoundError: oracle/sql/BLOB
        at org.quartz.impl.jdbcjobstore.oracle.OracleDelegate.writeDataToBlob(OracleDelegate.java:645) [quartz-oracle-1.6.5.jar:1.6.5]
        at org.quartz.impl.jdbcjobstore.oracle.OracleDelegate.insertJobDetail(OracleDelegate.java:210) [quartz-oracle-1.6.5.jar:1.6.5]
...

Comment 1 Kosch 2013-01-31 18:05:20 UTC
According to:

svn.terracotta.org/svn/quartz/trunk/quartz-oracle/src/main/java/org/quartz/impl/jdbcjobstore/oracle/OracleDelegate.java

the source there in line 622+ should be changed e.g.
try {
Class blobClass = Class.forName("oracle.sql.BLOB");
if(blobClass.isInstance(blob){
 // then use reflection to put/trim
}
}....

this avoids dependecy to legacy oracle.sql.BLOB import.
Of course additional implementation for current ojdbc driver is needed also.

Comment 2 Jay Shaughnessy 2013-02-01 15:50:01 UTC
master commit bdcd5f13b9943fae99c35749bec4710c8c08f16a
Author: Jay Shaughnessy <jshaughn>
Date:   Fri Feb 1 10:48:06 2013 -0500

    I believe this is fixed.  I added an optional module dependency on the
    Oracle driver, for the server jar.  Our datasources had no problem, they
    are defined correctly to find/use the oracle driver, but since Quartz
    wants to perform a test directly against a driver class, we had to ensure
    the driver jar was accessible to the classloader.

Comment 3 John Mazzitelli 2013-03-11 18:45:36 UTC
*** Bug 911385 has been marked as a duplicate of this bug. ***

Comment 4 Heiko W. Rupp 2013-09-03 14:46:23 UTC
Bulk closing of issues in old RHQ releases that are in production for a while now.

Please open a new issue when running into an issue.