You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sm...@apache.org on 2014/11/04 00:03:26 UTC

git commit: FC-38 - Potential issues on synchronized protected elements - modified getGraph code to workaround deadlock.

Repository: directory-fortress-core
Updated Branches:
  refs/heads/master 40f6d2f28 -> 804ca390f


FC-38 - Potential issues on synchronized protected elements - modified getGraph code to workaround deadlock.


Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/804ca390
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/804ca390
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/804ca390

Branch: refs/heads/master
Commit: 804ca390fb55146696703441741a2ee32843edbf
Parents: 40f6d2f
Author: Shawn McKinney <sm...@apache.org>
Authored: Mon Nov 3 17:02:53 2014 -0600
Committer: Shawn McKinney <sm...@apache.org>
Committed: Mon Nov 3 17:02:53 2014 -0600

----------------------------------------------------------------------
 .../apache/directory/fortress/core/rbac/AdminRoleUtil.java  | 9 +++++----
 .../org/apache/directory/fortress/core/rbac/PsoUtil.java    | 9 +++++----
 .../org/apache/directory/fortress/core/rbac/RoleUtil.java   | 9 +++++----
 .../org/apache/directory/fortress/core/rbac/UsoUtil.java    | 9 +++++----
 4 files changed, 20 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/804ca390/src/main/java/org/apache/directory/fortress/core/rbac/AdminRoleUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rbac/AdminRoleUtil.java b/src/main/java/org/apache/directory/fortress/core/rbac/AdminRoleUtil.java
index 986a731..0a92b22 100755
--- a/src/main/java/org/apache/directory/fortress/core/rbac/AdminRoleUtil.java
+++ b/src/main/java/org/apache/directory/fortress/core/rbac/AdminRoleUtil.java
@@ -280,12 +280,13 @@ public final class AdminRoleUtil
                     hierLock.readLock().unlock();
                     hierLock.writeLock().lock();
 
-                    graph = ( SimpleDirectedGraph<String, Relationship> ) adminRoleCache.get( key );
+                    // TODO: determine why this (code that was commented out) creates a deadlock:
+                    //graph = ( SimpleDirectedGraph<String, Relationship> ) adminRoleCache.get( key );
 
-                    if ( graph == null )
-                    {
+                    //if ( graph == null )
+                    //{
                         graph = loadGraph( contextId );
-                    }
+                    //}
 
                     hierLock.readLock().lock();
                 }

http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/804ca390/src/main/java/org/apache/directory/fortress/core/rbac/PsoUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rbac/PsoUtil.java b/src/main/java/org/apache/directory/fortress/core/rbac/PsoUtil.java
index 004cde4..1dbb6e4 100755
--- a/src/main/java/org/apache/directory/fortress/core/rbac/PsoUtil.java
+++ b/src/main/java/org/apache/directory/fortress/core/rbac/PsoUtil.java
@@ -267,12 +267,13 @@ public final class PsoUtil
                     hierLock.readLock().unlock();
                     hierLock.writeLock().lock();
 
-                    graph = ( SimpleDirectedGraph<String, Relationship> ) psoCache.get( key );
+                    // TODO: determine why this (code that was commented out) creates a deadlock:
+                    //graph = ( SimpleDirectedGraph<String, Relationship> ) psoCache.get( key );
 
-                    if ( graph == null )
-                    {
+                    //if ( graph == null )
+                    //{
                         graph = loadGraph( contextId );
-                    }
+                    //}
 
                     hierLock.readLock().lock();
                 }

http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/804ca390/src/main/java/org/apache/directory/fortress/core/rbac/RoleUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rbac/RoleUtil.java b/src/main/java/org/apache/directory/fortress/core/rbac/RoleUtil.java
index 5de6533..9cd26ec 100755
--- a/src/main/java/org/apache/directory/fortress/core/rbac/RoleUtil.java
+++ b/src/main/java/org/apache/directory/fortress/core/rbac/RoleUtil.java
@@ -366,12 +366,13 @@ public final class RoleUtil
                     hierLock.readLock().unlock();
                     hierLock.writeLock().lock();
 
-                    graph = ( SimpleDirectedGraph<String, Relationship> ) roleCache.get( key );
+                    // TODO: determine why this (code that was commented out) creates a deadlock:
+                    //graph = ( SimpleDirectedGraph<String, Relationship> ) roleCache.get( key );
 
-                    if ( graph == null )
-                    {
+                    //if ( graph == null )
+                    //{
                         graph = loadGraph( contextId );
-                    }
+                    //}
                     
                     hierLock.readLock().lock();
                 }

http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/804ca390/src/main/java/org/apache/directory/fortress/core/rbac/UsoUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/rbac/UsoUtil.java b/src/main/java/org/apache/directory/fortress/core/rbac/UsoUtil.java
index fe04906..d151039 100755
--- a/src/main/java/org/apache/directory/fortress/core/rbac/UsoUtil.java
+++ b/src/main/java/org/apache/directory/fortress/core/rbac/UsoUtil.java
@@ -262,12 +262,13 @@ public final class UsoUtil
                     hierLock.readLock().unlock();
                     hierLock.writeLock().lock();
 
-                    graph = ( SimpleDirectedGraph<String, Relationship> ) usoCache.get( key );
+                    // TODO: determine why this (code that was commented out) creates a deadlock:
+                    //graph = ( SimpleDirectedGraph<String, Relationship> ) usoCache.get( key );
 
-                    if ( graph == null )
-                    {
+                    //if ( graph == null )
+                    //{
                         graph = loadGraph( contextId );
-                    }
+                    //}
                     hierLock.readLock().lock();
                 }
                 finally