You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by wi...@apache.org on 2007/04/04 20:45:41 UTC
svn commit: r525572 - in
/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql:
DB2Dictionary.java DBDictionary.java SQLExceptions.java
Author: wisneskid
Date: Wed Apr 4 11:45:40 2007
New Revision: 525572
URL: http://svn.apache.org/viewvc?view=rev&rev=525572
Log:
changes for OPENJPA-184.Appending DB2Diagnosable information to the exception.No logging done.
Modified:
incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java
incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SQLExceptions.java
Modified: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java?view=diff&rev=525572&r1=525571&r2=525572
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java (original)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java Wed Apr 4 11:45:40 2007
@@ -442,4 +442,39 @@
append(" ").append(rowClause);
return buf;
}
-}
+
+ /** Append exception information from SQLCA to the exsisting
+ * exception meassage
+ */
+ public String appendExtendedExceptionMsg(String msg, SQLException sqle){
+ final String GETSQLCA ="getSqlca";
+ String exceptionMsg = new String();
+ try {
+ Method sqlcaM2 = sqle.getNextException().getClass()
+ .getMethod(GETSQLCA,null);
+ Object sqlca = sqlcaM2.invoke(sqle.getNextException(),
+ new Object[] {});
+ Method getSqlErrpMethd = sqlca.getClass().
+ getMethod("getSqlErrp", null);
+ Method getSqlWarnMethd = sqlca.getClass().
+ getMethod("getSqlWarn", null);
+ Method getSqlErrdMethd = sqlca.getClass().
+ getMethod("getSqlErrd", null);
+ exceptionMsg = exceptionMsg.concat( "SQLCA OUTPUT" +
+ "[Errp=" +getSqlErrpMethd.invoke(sqlca,new Object[]{})
+ + ", Errd=" + Arrays.toString((int[])
+ (getSqlErrdMethd.invoke(sqlca, new Object[]{}))));
+ String Warn = new String((char[])getSqlWarnMethd.
+ invoke(sqlca, new Object[]{}));
+ if(Warn.trim().length() != 0)
+ exceptionMsg = exceptionMsg.concat(", Warn=" +Warn + "]" );
+ else
+ exceptionMsg = exceptionMsg.concat( "]" );
+ msg = msg.concat(exceptionMsg);
+ return msg;
+ } catch (Throwable t) {
+ return sqle.getMessage();
+ }
+ }
+
+ }
\ No newline at end of file
Modified: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java?view=diff&rev=525572&r1=525571&r2=525572
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java (original)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java Wed Apr 4 11:45:40 2007
@@ -2470,7 +2470,14 @@
buf.append(getTypeName(type));
buf.append(post);
}
-
+
+ /** Append any database specific exception message to
+ * the exsisting exception message
+ */
+ public String appendExtendedExceptionMsg(String msg, SQLException sqle) {
+ return msg;
+ }
+
///////////
// DDL SQL
///////////
Modified: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SQLExceptions.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SQLExceptions.java?view=diff&rev=525572&r1=525571&r2=525572
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SQLExceptions.java (original)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SQLExceptions.java Wed Apr 4 11:45:40 2007
@@ -87,6 +87,7 @@
Object failed, DBDictionary dict) {
if (msg == null)
msg = se.getClass().getName();
+ msg = dict.appendExtendedExceptionMsg(msg,se);
SQLException[] ses = getSQLExceptions(se);
if (dict == null)
return new StoreException(msg).setFailedObject(failed).