You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2013/06/24 17:24:34 UTC
svn commit: r1496092 - in
/manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database:
DBInterfacePostgreSQL.java Database.java
Author: kwright
Date: Mon Jun 24 15:24:33 2013
New Revision: 1496092
URL: http://svn.apache.org/r1496092
Log:
Fix CONNECTORS-734 a different way, since it is clear that the first fix was incorrect.
Modified:
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java
manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/Database.java
Modified: manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java?rev=1496092&r1=1496091&r2=1496092&view=diff
==============================================================================
--- manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java (original)
+++ manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java Mon Jun 24 15:24:33 2013
@@ -1230,32 +1230,19 @@ public class DBInterfacePostgreSQL exten
// We really can't retry at this level; it's not clear what the transaction nesting is etc.
// So if the EXPLAIN fails due to deadlock, we just give up.
IResultSet x;
- try
- {
- String queryType = "EXPLAIN ";
- if ("SELECT".equalsIgnoreCase(query.substring(0,6)))
- queryType += "ANALYZE ";
- x = executeUncachedQuery(queryType+query,params,true,
- -1,null,null);
- for (int k = 0; k < x.getRowCount(); k++)
- {
- IResultRow row = x.getRow(k);
- Iterator<String> iter = row.getColumns();
- String colName = (String)iter.next();
- Logging.db.warn(" Plan: "+row.getValue(colName).toString());
- }
- Logging.db.warn("");
- }
- catch (ManifoldCFException e)
- {
- if (e.getErrorCode() == e.DATABASE_TRANSACTION_ABORT)
- {
- if (Logging.perf.isDebugEnabled())
- Logging.perf.debug("Aborted transaction generating EXPLAIN: "+e.getMessage());
- }
- else
- throw e;
+ String queryType = "EXPLAIN ";
+ if ("SELECT".equalsIgnoreCase(query.substring(0,6)))
+ queryType += "ANALYZE ";
+ x = executeUncachedQuery(queryType+query,params,true,
+ -1,null,null);
+ for (int k = 0; k < x.getRowCount(); k++)
+ {
+ IResultRow row = x.getRow(k);
+ Iterator<String> iter = row.getColumns();
+ String colName = (String)iter.next();
+ Logging.db.warn(" Plan: "+row.getValue(colName).toString());
}
+ Logging.db.warn("");
if (query.indexOf("jobqueue") != -1)
{
Modified: manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/Database.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/Database.java?rev=1496092&r1=1496091&r2=1496092&view=diff
==============================================================================
--- manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/Database.java (original)
+++ manifoldcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/database/Database.java Mon Jun 24 15:24:33 2013
@@ -1450,7 +1450,11 @@ public abstract class Database
}
catch (ManifoldCFException e)
{
- Logging.db.error("Explain failed with error "+e.getMessage(),e);
+ // We need to know if explain generated a TRANSACTION_ABORT. If so we have to rethrow it.
+ if (e.getErrorCode() == e.DATABASE_TRANSACTION_ABORT || e.getErrorCode() == e.INTERRUPTED)
+ throw e;
+ // Eat the exception
+ Logging.db.warn("Explain failed with error "+e.getMessage(),e);
}
}