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 2014/11/28 18:02:05 UTC
svn commit: r1642318 - in /manifoldcf/trunk/framework:
agents/src/main/java/org/apache/manifoldcf/agents/outputconnection/
agents/src/main/java/org/apache/manifoldcf/agents/transformationconnection/
pull-agent/src/main/java/org/apache/manifoldcf/author...
Author: kwright
Date: Fri Nov 28 17:02:04 2014
New Revision: 1642318
URL: http://svn.apache.org/r1642318
Log:
Refactor work for CONNECTORS-1116 again.
Modified:
manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/outputconnection/OutputConnectionManager.java
manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/transformationconnection/TransformationConnectionManager.java
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authority/AuthorityConnectionManager.java
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/mapping/MappingConnectionManager.java
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Jobs.java
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/repository/RepositoryConnectionManager.java
Modified: manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/outputconnection/OutputConnectionManager.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/outputconnection/OutputConnectionManager.java?rev=1642318&r1=1642317&r2=1642318&view=diff
==============================================================================
--- manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/outputconnection/OutputConnectionManager.java (original)
+++ manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/outputconnection/OutputConnectionManager.java Fri Nov 28 17:02:04 2014
@@ -288,17 +288,17 @@ public class OutputConnectionManager ext
public boolean save(IOutputConnection object)
throws ManifoldCFException
{
- lockManager.enterWriteLock(outputsLock);
- try
+ StringSetBuffer ssb = new StringSetBuffer();
+ ssb.add(getOutputConnectionsKey());
+ ssb.add(getOutputConnectionKey(object.getName()));
+ StringSet cacheKeys = new StringSet(ssb);
+ while (true)
{
- StringSetBuffer ssb = new StringSetBuffer();
- ssb.add(getOutputConnectionsKey());
- ssb.add(getOutputConnectionKey(object.getName()));
- StringSet cacheKeys = new StringSet(ssb);
- while (true)
+ // Catch deadlock condition
+ long sleepAmt = 0L;
+ try
{
- // Catch deadlock condition
- long sleepAmt = 0L;
+ lockManager.enterNonExWriteLock(outputsLock);
try
{
ICacheHandle ch = cacheManager.enterCache(null,cacheKeys,getTransactionID());
@@ -382,22 +382,22 @@ public class OutputConnectionManager ext
cacheManager.leaveCache(ch);
}
}
- catch (ManifoldCFException e)
- {
- // Is this a deadlock exception? If so, we want to try again.
- if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
- throw e;
- sleepAmt = getSleepAmt();
- }
finally
{
- sleepFor(sleepAmt);
+ lockManager.leaveNonExWriteLock(outputsLock);
}
}
- }
- finally
- {
- lockManager.leaveWriteLock(outputsLock);
+ catch (ManifoldCFException e)
+ {
+ // Is this a deadlock exception? If so, we want to try again.
+ if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
+ throw e;
+ sleepAmt = getSleepAmt();
+ }
+ finally
+ {
+ sleepFor(sleepAmt);
+ }
}
}
@@ -408,13 +408,13 @@ public class OutputConnectionManager ext
public void delete(String name)
throws ManifoldCFException
{
- lockManager.enterWriteLock(outputsLock);
+ StringSetBuffer ssb = new StringSetBuffer();
+ ssb.add(getOutputConnectionsKey());
+ ssb.add(getOutputConnectionKey(name));
+ StringSet cacheKeys = new StringSet(ssb);
+ lockManager.enterNonExWriteLock(outputsLock);
try
{
- StringSetBuffer ssb = new StringSetBuffer();
- ssb.add(getOutputConnectionsKey());
- ssb.add(getOutputConnectionKey(name));
- StringSet cacheKeys = new StringSet(ssb);
ICacheHandle ch = cacheManager.enterCache(null,cacheKeys,getTransactionID());
try
{
@@ -453,7 +453,7 @@ public class OutputConnectionManager ext
}
finally
{
- lockManager.leaveWriteLock(outputsLock);
+ lockManager.leaveNonExWriteLock(outputsLock);
}
}
Modified: manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/transformationconnection/TransformationConnectionManager.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/transformationconnection/TransformationConnectionManager.java?rev=1642318&r1=1642317&r2=1642318&view=diff
==============================================================================
--- manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/transformationconnection/TransformationConnectionManager.java (original)
+++ manifoldcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/transformationconnection/TransformationConnectionManager.java Fri Nov 28 17:02:04 2014
@@ -288,17 +288,17 @@ public class TransformationConnectionMan
public boolean save(ITransformationConnection object)
throws ManifoldCFException
{
- lockManager.enterWriteLock(transformationsLock);
- try
+ StringSetBuffer ssb = new StringSetBuffer();
+ ssb.add(getTransformationConnectionsKey());
+ ssb.add(getTransformationConnectionKey(object.getName()));
+ StringSet cacheKeys = new StringSet(ssb);
+ while (true)
{
- StringSetBuffer ssb = new StringSetBuffer();
- ssb.add(getTransformationConnectionsKey());
- ssb.add(getTransformationConnectionKey(object.getName()));
- StringSet cacheKeys = new StringSet(ssb);
- while (true)
+ // Catch deadlock condition
+ long sleepAmt = 0L;
+ try
{
- // Catch deadlock condition
- long sleepAmt = 0L;
+ lockManager.enterNonExWriteLock(transformationsLock);
try
{
ICacheHandle ch = cacheManager.enterCache(null,cacheKeys,getTransactionID());
@@ -382,22 +382,22 @@ public class TransformationConnectionMan
cacheManager.leaveCache(ch);
}
}
- catch (ManifoldCFException e)
- {
- // Is this a deadlock exception? If so, we want to try again.
- if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
- throw e;
- sleepAmt = getSleepAmt();
- }
finally
{
- sleepFor(sleepAmt);
+ lockManager.leaveNonExWriteLock(transformationsLock);
}
}
- }
- finally
- {
- lockManager.leaveWriteLock(transformationsLock);
+ catch (ManifoldCFException e)
+ {
+ // Is this a deadlock exception? If so, we want to try again.
+ if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
+ throw e;
+ sleepAmt = getSleepAmt();
+ }
+ finally
+ {
+ sleepFor(sleepAmt);
+ }
}
}
@@ -408,13 +408,13 @@ public class TransformationConnectionMan
public void delete(String name)
throws ManifoldCFException
{
- lockManager.enterWriteLock(transformationsLock);
+ StringSetBuffer ssb = new StringSetBuffer();
+ ssb.add(getTransformationConnectionsKey());
+ ssb.add(getTransformationConnectionKey(name));
+ StringSet cacheKeys = new StringSet(ssb);
+ lockManager.enterNonExWriteLock(transformationsLock);
try
{
- StringSetBuffer ssb = new StringSetBuffer();
- ssb.add(getTransformationConnectionsKey());
- ssb.add(getTransformationConnectionKey(name));
- StringSet cacheKeys = new StringSet(ssb);
ICacheHandle ch = cacheManager.enterCache(null,cacheKeys,getTransactionID());
try
{
@@ -453,7 +453,7 @@ public class TransformationConnectionMan
}
finally
{
- lockManager.leaveWriteLock(transformationsLock);
+ lockManager.leaveNonExWriteLock(transformationsLock);
}
}
Modified: manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authority/AuthorityConnectionManager.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authority/AuthorityConnectionManager.java?rev=1642318&r1=1642317&r2=1642318&view=diff
==============================================================================
--- manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authority/AuthorityConnectionManager.java (original)
+++ manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authority/AuthorityConnectionManager.java Fri Nov 28 17:02:04 2014
@@ -375,16 +375,16 @@ public class AuthorityConnectionManager
public boolean save(IAuthorityConnection object)
throws ManifoldCFException
{
- lockManager.enterWriteLock(authoritiesLock);
- try
+ StringSetBuffer ssb = new StringSetBuffer();
+ ssb.add(getAuthorityConnectionsKey());
+ ssb.add(getAuthorityConnectionKey(object.getName()));
+ StringSet cacheKeys = new StringSet(ssb);
+ while (true)
{
- StringSetBuffer ssb = new StringSetBuffer();
- ssb.add(getAuthorityConnectionsKey());
- ssb.add(getAuthorityConnectionKey(object.getName()));
- StringSet cacheKeys = new StringSet(ssb);
- while (true)
+ long sleepAmt = 0L;
+ try
{
- long sleepAmt = 0L;
+ lockManager.enterNonExWriteLock(authoritiesLock);
try
{
ICacheHandle ch = cacheManager.enterCache(null,cacheKeys,getTransactionID());
@@ -460,22 +460,22 @@ public class AuthorityConnectionManager
cacheManager.leaveCache(ch);
}
}
- catch (ManifoldCFException e)
- {
- // Is this a deadlock exception? If so, we want to try again.
- if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
- throw e;
- sleepAmt = getSleepAmt();
- }
finally
{
- sleepFor(sleepAmt);
+ lockManager.leaveNonExWriteLock(authoritiesLock);
}
}
- }
- finally
- {
- lockManager.leaveWriteLock(authoritiesLock);
+ catch (ManifoldCFException e)
+ {
+ // Is this a deadlock exception? If so, we want to try again.
+ if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
+ throw e;
+ sleepAmt = getSleepAmt();
+ }
+ finally
+ {
+ sleepFor(sleepAmt);
+ }
}
}
@@ -487,13 +487,13 @@ public class AuthorityConnectionManager
public void delete(String name)
throws ManifoldCFException
{
- lockManager.enterWriteLock(authoritiesLock);
+ StringSetBuffer ssb = new StringSetBuffer();
+ ssb.add(getAuthorityConnectionsKey());
+ ssb.add(getAuthorityConnectionKey(name));
+ StringSet cacheKeys = new StringSet(ssb);
+ lockManager.enterNonExWriteLock(authoritiesLock);
try
{
- StringSetBuffer ssb = new StringSetBuffer();
- ssb.add(getAuthorityConnectionsKey());
- ssb.add(getAuthorityConnectionKey(name));
- StringSet cacheKeys = new StringSet(ssb);
ICacheHandle ch = cacheManager.enterCache(null,cacheKeys,getTransactionID());
try
{
@@ -529,7 +529,7 @@ public class AuthorityConnectionManager
}
finally
{
- lockManager.leaveWriteLock(authoritiesLock);
+ lockManager.leaveNonExWriteLock(authoritiesLock);
}
}
Modified: manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/mapping/MappingConnectionManager.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/mapping/MappingConnectionManager.java?rev=1642318&r1=1642317&r2=1642318&view=diff
==============================================================================
--- manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/mapping/MappingConnectionManager.java (original)
+++ manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/mapping/MappingConnectionManager.java Fri Nov 28 17:02:04 2014
@@ -394,16 +394,16 @@ public class MappingConnectionManager ex
public boolean save(IMappingConnection object)
throws ManifoldCFException
{
- lockManager.enterWriteLock(mappingsLock);
- try
+ StringSetBuffer ssb = new StringSetBuffer();
+ ssb.add(getMappingConnectionsKey());
+ ssb.add(getMappingConnectionKey(object.getName()));
+ StringSet cacheKeys = new StringSet(ssb);
+ while (true)
{
- StringSetBuffer ssb = new StringSetBuffer();
- ssb.add(getMappingConnectionsKey());
- ssb.add(getMappingConnectionKey(object.getName()));
- StringSet cacheKeys = new StringSet(ssb);
- while (true)
+ long sleepAmt = 0L;
+ try
{
- long sleepAmt = 0L;
+ lockManager.enterNonExWriteLock(mappingsLock);
try
{
ICacheHandle ch = cacheManager.enterCache(null,cacheKeys,getTransactionID());
@@ -477,22 +477,22 @@ public class MappingConnectionManager ex
cacheManager.leaveCache(ch);
}
}
- catch (ManifoldCFException e)
- {
- // Is this a deadlock exception? If so, we want to try again.
- if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
- throw e;
- sleepAmt = getSleepAmt();
- }
finally
{
- sleepFor(sleepAmt);
+ lockManager.leaveNonExWriteLock(mappingsLock);
}
}
- }
- finally
- {
- lockManager.leaveWriteLock(mappingsLock);
+ catch (ManifoldCFException e)
+ {
+ // Is this a deadlock exception? If so, we want to try again.
+ if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
+ throw e;
+ sleepAmt = getSleepAmt();
+ }
+ finally
+ {
+ sleepFor(sleepAmt);
+ }
}
}
@@ -507,14 +507,14 @@ public class MappingConnectionManager ex
// Grab authority connection manager handle, to check on legality of deletion.
IAuthorityConnectionManager authManager = AuthorityConnectionManagerFactory.make(threadContext);
+ StringSetBuffer ssb = new StringSetBuffer();
+ ssb.add(getMappingConnectionsKey());
+ ssb.add(getMappingConnectionKey(name));
+ StringSet cacheKeys = new StringSet(ssb);
- lockManager.enterWriteLock(mappingsLock);
+ lockManager.enterNonExWriteLock(mappingsLock);
try
{
- StringSetBuffer ssb = new StringSetBuffer();
- ssb.add(getMappingConnectionsKey());
- ssb.add(getMappingConnectionKey(name));
- StringSet cacheKeys = new StringSet(ssb);
ICacheHandle ch = cacheManager.enterCache(null,cacheKeys,getTransactionID());
try
{
@@ -555,7 +555,7 @@ public class MappingConnectionManager ex
}
finally
{
- lockManager.leaveWriteLock(mappingsLock);
+ lockManager.leaveNonExWriteLock(mappingsLock);
}
}
Modified: manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Jobs.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Jobs.java?rev=1642318&r1=1642317&r2=1642318&view=diff
==============================================================================
--- manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Jobs.java (original)
+++ manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Jobs.java Fri Nov 28 17:02:04 2014
@@ -766,7 +766,7 @@ public class Jobs extends org.apache.man
public void delete(Long id)
throws ManifoldCFException
{
- lockManager.enterWriteLock(jobsLock);
+ lockManager.enterNonExWriteLock(jobsLock);
try
{
StringSetBuffer ssb = new StringSetBuffer();
@@ -802,7 +802,7 @@ public class Jobs extends org.apache.man
}
finally
{
- lockManager.leaveWriteLock(jobsLock);
+ lockManager.leaveNonExWriteLock(jobsLock);
}
}
@@ -869,20 +869,20 @@ public class Jobs extends org.apache.man
public void save(IJobDescription jobDescription)
throws ManifoldCFException
{
- lockManager.enterWriteLock(jobsLock);
- try
- {
- // The invalidation keys for this are both the general and the specific.
- Long id = jobDescription.getID();
- StringSetBuffer ssb = new StringSetBuffer();
- ssb.add(getJobsKey());
- ssb.add(getJobStatusKey());
- ssb.add(getJobIDKey(id));
- StringSet invKeys = new StringSet(ssb);
+ // The invalidation keys for this are both the general and the specific.
+ Long id = jobDescription.getID();
+ StringSetBuffer ssb = new StringSetBuffer();
+ ssb.add(getJobsKey());
+ ssb.add(getJobStatusKey());
+ ssb.add(getJobIDKey(id));
+ StringSet invKeys = new StringSet(ssb);
- while (true)
+ while (true)
+ {
+ long sleepAmt = 0L;
+ try
{
- long sleepAmt = 0L;
+ lockManager.enterNonExWriteLock(jobsLock);
try
{
ICacheHandle ch = cacheManager.enterCache(null,invKeys,getTransactionID());
@@ -996,22 +996,22 @@ public class Jobs extends org.apache.man
cacheManager.leaveCache(ch);
}
}
- catch (ManifoldCFException e)
- {
- if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
- throw e;
- sleepAmt = getSleepAmt();
- continue;
- }
finally
{
- sleepFor(sleepAmt);
+ lockManager.leaveNonExWriteLock(jobsLock);
}
}
- }
- finally
- {
- lockManager.leaveWriteLock(jobsLock);
+ catch (ManifoldCFException e)
+ {
+ if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
+ throw e;
+ sleepAmt = getSleepAmt();
+ continue;
+ }
+ finally
+ {
+ sleepFor(sleepAmt);
+ }
}
}
Modified: manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/repository/RepositoryConnectionManager.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/repository/RepositoryConnectionManager.java?rev=1642318&r1=1642317&r2=1642318&view=diff
==============================================================================
--- manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/repository/RepositoryConnectionManager.java (original)
+++ manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/repository/RepositoryConnectionManager.java Fri Nov 28 17:02:04 2014
@@ -358,17 +358,17 @@ public class RepositoryConnectionManager
public boolean save(IRepositoryConnection object)
throws ManifoldCFException
{
- lockManager.enterWriteLock(repositoriesLock);
- try
+ StringSetBuffer ssb = new StringSetBuffer();
+ ssb.add(getRepositoryConnectionsKey());
+ ssb.add(getRepositoryConnectionKey(object.getName()));
+ StringSet cacheKeys = new StringSet(ssb);
+ while (true)
{
- StringSetBuffer ssb = new StringSetBuffer();
- ssb.add(getRepositoryConnectionsKey());
- ssb.add(getRepositoryConnectionKey(object.getName()));
- StringSet cacheKeys = new StringSet(ssb);
- while (true)
+ // Catch deadlock condition
+ long sleepAmt = 0L;
+ try
{
- // Catch deadlock condition
- long sleepAmt = 0L;
+ lockManager.enterNonExWriteLock(repositoriesLock);
try
{
ICacheHandle ch = cacheManager.enterCache(null,cacheKeys,getTransactionID());
@@ -460,22 +460,22 @@ public class RepositoryConnectionManager
cacheManager.leaveCache(ch);
}
}
- catch (ManifoldCFException e)
- {
- // Is this a deadlock exception? If so, we want to try again.
- if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
- throw e;
- sleepAmt = getSleepAmt();
- }
finally
{
- sleepFor(sleepAmt);
+ lockManager.leaveNonExWriteLock(repositoriesLock);
}
}
- }
- finally
- {
- lockManager.leaveWriteLock(repositoriesLock);
+ catch (ManifoldCFException e)
+ {
+ // Is this a deadlock exception? If so, we want to try again.
+ if (e.getErrorCode() != ManifoldCFException.DATABASE_TRANSACTION_ABORT)
+ throw e;
+ sleepAmt = getSleepAmt();
+ }
+ finally
+ {
+ sleepFor(sleepAmt);
+ }
}
}
@@ -488,13 +488,13 @@ public class RepositoryConnectionManager
{
// Grab a job manager handle. We will need to check if any jobs refer to this connection.
IJobManager jobManager = JobManagerFactory.make(threadContext);
- lockManager.enterWriteLock(repositoriesLock);
+ StringSetBuffer ssb = new StringSetBuffer();
+ ssb.add(getRepositoryConnectionsKey());
+ ssb.add(getRepositoryConnectionKey(name));
+ StringSet cacheKeys = new StringSet(ssb);
+ lockManager.enterNonExWriteLock(repositoriesLock);
try
{
- StringSetBuffer ssb = new StringSetBuffer();
- ssb.add(getRepositoryConnectionsKey());
- ssb.add(getRepositoryConnectionKey(name));
- StringSet cacheKeys = new StringSet(ssb);
ICacheHandle ch = cacheManager.enterCache(null,cacheKeys,getTransactionID());
try
{
@@ -535,7 +535,7 @@ public class RepositoryConnectionManager
}
finally
{
- lockManager.leaveWriteLock(repositoriesLock);
+ lockManager.leaveNonExWriteLock(repositoriesLock);
}
}