Author: gk
Date: Fri Jan 11 10:09:52 2019
New Revision: 1851024

URL: http://svn.apache.org/viewvc?rev=1851024&view=rev
Log:
- Use DatabackendException as a wrapper for TorqueException to get internal 
(secondary) database errors stack more transparently. Othwerwise 
TorqueTurbineUserManagerImpl may not get the error stack for attached objects. 

Modified:
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/basic/TorqueAbstractBasicGroup.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/basic/TorqueAbstractBasicUser.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicGroup.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicPermission.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicRole.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicUser.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/TorqueAbstractSecurityEntity.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntityDefault.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineGroup.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbinePermission.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineRole.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineUser.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineGroup.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbinePermission.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineRole.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineUser.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
 Fri Jan 11 10:09:52 2019
@@ -198,6 +198,8 @@ public abstract class TorqueAbstractUser
 
        /**
         * Retrieve a user from persistent storage using username as the key.
+        * 
+        * Additionally retrieves all attached objects from {@link 
TorqueAbstractSecurityEntity#retrieveAttachedObjects(Connection, Boolean)}
         *
         * @param userName the name of the user.
         * @return an User object.

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/basic/TorqueAbstractBasicGroup.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/basic/TorqueAbstractBasicGroup.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/basic/TorqueAbstractBasicGroup.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/basic/TorqueAbstractBasicGroup.java
 Fri Jan 11 10:09:52 2019
@@ -27,6 +27,7 @@ import org.apache.fulcrum.security.torqu
 import org.apache.fulcrum.security.torque.om.TorqueBasicUserGroup;
 import org.apache.fulcrum.security.torque.om.TorqueBasicUserGroupPeer;
 import 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.UserSet;
 import org.apache.torque.TorqueException;
 import org.apache.torque.criteria.Criteria;
@@ -133,7 +134,7 @@ public abstract class TorqueAbstractBasi
     
     @Override
     public void retrieveAttachedObjects( Connection con )
-        throws TorqueException
+        throws DataBackendException
     {
         retrieveAttachedObjects( con, false );
     }
@@ -143,16 +144,20 @@ public abstract class TorqueAbstractBasi
      */
     @Override
     public void retrieveAttachedObjects( Connection con, Boolean lazy )
-        throws TorqueException
+        throws DataBackendException
     {
         this.userSet = new UserSet();
 
-        List<TorqueBasicUserGroup> usergroups =
-               getTorqueBasicUserGroupsJoinTorqueBasicUser(new Criteria(), 
con);
-
-        for (TorqueBasicUserGroup tbug : usergroups)
-        {
-            userSet.add(tbug.getTorqueBasicUser());
+        try {
+            List<TorqueBasicUserGroup> usergroups =
+               getTorqueBasicUserGroupsJoinTorqueBasicUser(new Criteria(), 
con);
+    
+            for (TorqueBasicUserGroup tbug : usergroups)
+            {
+                userSet.add(tbug.getTorqueBasicUser());
+            }
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
         }
     }
 

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/basic/TorqueAbstractBasicUser.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/basic/TorqueAbstractBasicUser.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/basic/TorqueAbstractBasicUser.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/basic/TorqueAbstractBasicUser.java
 Fri Jan 11 10:09:52 2019
@@ -27,6 +27,7 @@ import org.apache.fulcrum.security.torqu
 import org.apache.fulcrum.security.torque.om.TorqueBasicUserGroupPeer;
 import org.apache.fulcrum.security.torque.om.TorqueBasicUserPeer;
 import 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.GroupSet;
 import org.apache.torque.TorqueException;
 import org.apache.torque.criteria.Criteria;
@@ -134,7 +135,7 @@ public abstract class TorqueAbstractBasi
      */
     @Override
     public void retrieveAttachedObjects( Connection con )
-        throws TorqueException
+        throws DataBackendException
     {
         retrieveAttachedObjects( con, false );
     }
@@ -144,15 +145,19 @@ public abstract class TorqueAbstractBasi
      */
     @Override
     public void retrieveAttachedObjects( Connection con, Boolean lazy )
-        throws TorqueException
+        throws DataBackendException
     {
         this.groupSet = new GroupSet();
 
-        List<TorqueBasicUserGroup> usergroups = 
getTorqueBasicUserGroupsJoinTorqueBasicGroup(new Criteria(), con);
-
-        for (TorqueBasicUserGroup tbug : usergroups)
-        {
-            groupSet.add(tbug.getTorqueBasicGroup());
+        try {
+            List<TorqueBasicUserGroup> usergroups = 
getTorqueBasicUserGroupsJoinTorqueBasicGroup(new Criteria(), con);
+    
+            for (TorqueBasicUserGroup tbug : usergroups)
+            {
+                groupSet.add(tbug.getTorqueBasicGroup());
+            }
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
         }
     }
 

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicGroup.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicGroup.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicGroup.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicGroup.java
 Fri Jan 11 10:09:52 2019
@@ -30,6 +30,7 @@ import org.apache.fulcrum.security.torqu
 import org.apache.fulcrum.security.torque.om.TorqueDynamicUserGroup;
 import org.apache.fulcrum.security.torque.om.TorqueDynamicUserGroupPeer;
 import 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.RoleSet;
 import org.apache.fulcrum.security.util.UserSet;
 import org.apache.torque.TorqueException;
@@ -234,7 +235,7 @@ public abstract class TorqueAbstractDyna
      */
     @Override
     public void retrieveAttachedObjects( Connection con )
-        throws TorqueException
+        throws DataBackendException
     {
         retrieveAttachedObjects( con, false );
     }
@@ -244,24 +245,30 @@ public abstract class TorqueAbstractDyna
      */
     @Override
     public void retrieveAttachedObjects( Connection con, Boolean lazy )
-        throws TorqueException
+        throws DataBackendException
     {
         this.userSet = new UserSet<User>();
+        
+        try {
 
-        List<TorqueDynamicUserGroup> usergroups = 
getTorqueDynamicUserGroupsJoinTorqueDynamicUser(new Criteria(), con);
-
-        for (TorqueDynamicUserGroup tdug : usergroups)
-        {
-            userSet.add(tdug.getTorqueDynamicUser());
-        }
-
-        this.roleSet = new RoleSet();
-
-        List<TorqueDynamicGroupRole> grouproles = 
getTorqueDynamicGroupRolesJoinTorqueDynamicRole(new Criteria(), con);
-
-        for (TorqueDynamicGroupRole tdgr : grouproles)
-        {
-            roleSet.add(tdgr.getTorqueDynamicRole());
+            List<TorqueDynamicUserGroup> usergroups = 
getTorqueDynamicUserGroupsJoinTorqueDynamicUser(new Criteria(), con);
+    
+            for (TorqueDynamicUserGroup tdug : usergroups)
+            {
+                userSet.add(tdug.getTorqueDynamicUser());
+            }
+    
+            this.roleSet = new RoleSet();
+    
+            List<TorqueDynamicGroupRole> grouproles = 
getTorqueDynamicGroupRolesJoinTorqueDynamicRole(new Criteria(), con);
+    
+            for (TorqueDynamicGroupRole tdgr : grouproles)
+            {
+                roleSet.add(tdgr.getTorqueDynamicRole());
+            }
+        
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
         }
     }
 

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicPermission.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicPermission.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicPermission.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicPermission.java
 Fri Jan 11 10:09:52 2019
@@ -27,6 +27,7 @@ import org.apache.fulcrum.security.torqu
 import org.apache.fulcrum.security.torque.om.TorqueDynamicRolePermission;
 import org.apache.fulcrum.security.torque.om.TorqueDynamicRolePermissionPeer;
 import 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.RoleSet;
 import org.apache.torque.TorqueException;
 import org.apache.torque.criteria.Criteria;
@@ -139,7 +140,7 @@ public abstract class TorqueAbstractDyna
     
     @Override
     public void retrieveAttachedObjects( Connection con )
-        throws TorqueException
+        throws DataBackendException
     {
         retrieveAttachedObjects( con, false );
     }
@@ -149,15 +150,19 @@ public abstract class TorqueAbstractDyna
      */
     @Override
     public void retrieveAttachedObjects( Connection con, Boolean lazy )
-        throws TorqueException
+        throws DataBackendException
     {
         this.roleSet = new RoleSet();
 
-        List<TorqueDynamicRolePermission> rolepermissions = 
getTorqueDynamicRolePermissionsJoinTorqueDynamicRole(new Criteria(), con);
-
-        for (TorqueDynamicRolePermission tdrp : rolepermissions)
-        {
-            roleSet.add(tdrp.getTorqueDynamicRole());
+        try {
+            List<TorqueDynamicRolePermission> rolepermissions = 
getTorqueDynamicRolePermissionsJoinTorqueDynamicRole(new Criteria(), con);
+    
+            for (TorqueDynamicRolePermission tdrp : rolepermissions)
+            {
+                roleSet.add(tdrp.getTorqueDynamicRole());
+            }
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
         }
     }
 

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicRole.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicRole.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicRole.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicRole.java
 Fri Jan 11 10:09:52 2019
@@ -31,6 +31,7 @@ import org.apache.fulcrum.security.torqu
 import org.apache.fulcrum.security.torque.om.TorqueDynamicRolePermission;
 import org.apache.fulcrum.security.torque.om.TorqueDynamicRolePermissionPeer;
 import 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.GroupSet;
 import org.apache.fulcrum.security.util.PermissionSet;
 import org.apache.torque.TorqueException;
@@ -232,7 +233,7 @@ public abstract class TorqueAbstractDyna
     
     @Override
     public void retrieveAttachedObjects( Connection con )
-        throws TorqueException
+        throws DataBackendException
     {
         retrieveAttachedObjects( con, false );
     }
@@ -242,24 +243,28 @@ public abstract class TorqueAbstractDyna
      */
     @Override
     public void retrieveAttachedObjects( Connection con, Boolean lazy )
-        throws TorqueException
+        throws DataBackendException
     {
         this.permissionSet = new PermissionSet();
-
-        List<TorqueDynamicRolePermission> rolepermissions = 
getTorqueDynamicRolePermissionsJoinTorqueDynamicPermission(new Criteria(), con);
-
-        for (TorqueDynamicRolePermission tdrp : rolepermissions)
-        {
-            permissionSet.add(tdrp.getTorqueDynamicPermission());
-        }
-
-        this.groupSet = new GroupSet();
-
-        List<TorqueDynamicGroupRole> grouproles = 
getTorqueDynamicGroupRolesJoinTorqueDynamicGroup(new Criteria(), con);
-
-        for (TorqueDynamicGroupRole tdgr : grouproles)
-        {
-            groupSet.add(tdgr.getTorqueDynamicGroup());
+        
+        try {
+            List<TorqueDynamicRolePermission> rolepermissions = 
getTorqueDynamicRolePermissionsJoinTorqueDynamicPermission(new Criteria(), con);
+    
+            for (TorqueDynamicRolePermission tdrp : rolepermissions)
+            {
+                permissionSet.add(tdrp.getTorqueDynamicPermission());
+            }
+    
+            this.groupSet = new GroupSet();
+    
+            List<TorqueDynamicGroupRole> grouproles = 
getTorqueDynamicGroupRolesJoinTorqueDynamicGroup(new Criteria(), con);
+    
+            for (TorqueDynamicGroupRole tdgr : grouproles)
+            {
+                groupSet.add(tdgr.getTorqueDynamicGroup());
+            }
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
         }
     }
 

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicUser.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicUser.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicUser.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueAbstractDynamicUser.java
 Fri Jan 11 10:09:52 2019
@@ -1,361 +1,369 @@
-package org.apache.fulcrum.security.torque.dynamic;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import java.sql.Connection;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.fulcrum.security.entity.Group;
-import org.apache.fulcrum.security.entity.User;
-import org.apache.fulcrum.security.model.dynamic.entity.DynamicUser;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserDelegates;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserDelegatesPeer;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserGroup;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserGroupPeer;
-import org.apache.fulcrum.security.torque.om.TorqueDynamicUserPeer;
-import 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
-import org.apache.fulcrum.security.util.GroupSet;
-import org.apache.fulcrum.security.util.UserSet;
-import org.apache.torque.TorqueException;
-import org.apache.torque.criteria.Criteria;
-import org.apache.torque.om.SimpleKey;
-
-/**
- * This abstract class provides the SecurityInterface to the managers.
- *
- * @author <a href="mailto:[email protected]";>Thomas Vandahl</a>
- * @version $Id:$
- */
-public abstract class TorqueAbstractDynamicUser extends 
TorqueAbstractSecurityEntity implements DynamicUser {
-       /** Serial version */
-       private static final long serialVersionUID = -7307211992287876455L;
-
-       /** a cache of group objects */
-       private Set<Group> groupSet = null;
-
-       /** a cache of delegator (user) objects */
-       private Set<User> delegators = null;
-
-       /** a cache of delegatee(user) objects */
-       private Set<User> delegatees = null;
-
-       /**
-        * Forward reference to generated code
-        *
-        * Get a list of association objects, pre-populated with their
-        * TorqueDynamicGroup objects.
-        *
-        * @param criteria Criteria to define the selection of records
-        * @param con      a database connection
-        * @throws TorqueException if any database error occurs
-        *
-        * @return a list of User/Group relations
-        */
-       protected List<TorqueDynamicUserGroup> 
getTorqueDynamicUserGroupsJoinTorqueDynamicGroup(Criteria criteria,
-                       Connection con) throws TorqueException {
-               criteria.and(TorqueDynamicUserGroupPeer.USER_ID, getEntityId());
-               return 
TorqueDynamicUserGroupPeer.doSelectJoinTorqueDynamicGroup(criteria, con);
-       }
-
-       /**
-        * Forward reference to generated code
-        *
-        * Get a list of delegator association objects, pre-populated with their
-        * TorqueDynamicUserDelegates objects.
-        *
-        * @param criteria Criteria to define the selection of records
-        * @param con      a database connection
-        * @throws TorqueException if any database error occurs
-        *
-        * @return a list of User/Delegator relations
-        */
-       protected List<TorqueDynamicUserDelegates> 
getTorqueDynamicUserDelegatessRelatedByDelegateeUserIdJoinTorqueDynamicUserRelatedByDelegatorUserId(
-                       Criteria criteria, Connection con) throws 
TorqueException {
-               criteria.and(TorqueDynamicUserDelegatesPeer.DELEGATEE_USER_ID, 
getEntityId());
-               return 
TorqueDynamicUserDelegatesPeer.doSelectJoinTorqueDynamicUserRelatedByDelegatorUserId(criteria,
 con);
-       }
-
-       /**
-        * Forward reference to generated code
-        *
-        * Get a list of delegatee association objects, pre-populated with their
-        * TorqueDynamicUserDelegates objects.
-        *
-        * @param criteria Criteria to define the selection of records
-        * @param con      a database connection
-        * @throws TorqueException if any database error occurs
-        *
-        * @return a list of User/Delegator relations
-        */
-       protected List<TorqueDynamicUserDelegates> 
getTorqueDynamicUserDelegatessRelatedByDelegatorUserIdJoinTorqueDynamicUserRelatedByDelegateeUserId(
-                       Criteria criteria, Connection con) throws 
TorqueException {
-               criteria.and(TorqueDynamicUserDelegatesPeer.DELEGATOR_USER_ID, 
getEntityId());
-               return 
TorqueDynamicUserDelegatesPeer.doSelectJoinTorqueDynamicUserRelatedByDelegateeUserId(criteria,
 con);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.basic.entity.BasicUser#addGroup(org.apache.
-        * fulcrum.security.entity.Group)
-        */
-       public void addGroup(Group group) {
-               getGroups().add(group);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see 
org.apache.fulcrum.security.model.basic.entity.BasicUser#getGroups()
-        */
-       public GroupSet getGroups() {
-               if (groupSet == null) {
-                       groupSet = new GroupSet();
-               } else if (!(groupSet instanceof GroupSet)) {
-                       groupSet = new GroupSet(groupSet);
-               }
-
-               return (GroupSet) groupSet;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.basic.entity.BasicUser#getGroupsAsSet()
-        */
-       @SuppressWarnings("unchecked")
-       public <T extends Group> Set<T> getGroupsAsSet() {
-               return (Set<T>) groupSet;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.basic.entity.BasicUser#removeGroup(org.
-        * apache.fulcrum.security.entity.Group)
-        */
-       public void removeGroup(Group group) {
-               getGroups().remove(group);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.basic.entity.BasicUser#setGroups(org.apache
-        * .fulcrum.security.util.GroupSet)
-        */
-       public void setGroups(GroupSet groups) {
-               if (groups != null) {
-                       this.groupSet = groups;
-               } else {
-                       this.groupSet = new GroupSet();
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.basic.entity.BasicUser#setGroupsAsSet(java.
-        * util.Set)
-        */
-       public <T extends Group> void setGroupsAsSet(Set<T> groups) {
-               setGroups(new GroupSet(groups));
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.dynamic.entity.DynamicUser#getDelegatees()
-        */
-       @SuppressWarnings("unchecked")
-       public <T extends User> Set<T> getDelegatees() {
-               if (delegatees == null) {
-                       delegatees = new UserSet<T>();
-               }
-
-               return (Set<T>) delegatees;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.dynamic.entity.DynamicUser#getDelegators()
-        */
-       @SuppressWarnings("unchecked")
-       public <T extends User> Set<T> getDelegators() {
-               if (delegators == null) {
-                       delegators = new UserSet<T>();
-               }
-
-               return (Set<T>) delegators;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.dynamic.entity.DynamicUser#setDelegatees(
-        * java.util.Set)
-        */
-       public <T extends User> void setDelegatees(Set<T> delegatees) {
-               if (delegatees != null) {
-                       this.delegatees = new UserSet<T>(delegatees);
-               } else {
-                       this.delegatees = new UserSet<T>();
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.dynamic.entity.DynamicUser#setDelegators(
-        * java.util.Set)
-        */
-       public <T extends User> void setDelegators(Set<T> delegates) {
-               if (delegators != null) {
-                       this.delegators = new UserSet<T>(delegates);
-               } else {
-                       this.delegators = new UserSet<T>();
-               }
-       }
-
-       /**
-        * @return the database name
-        */
-       public String getDatabaseName() {
-               return TorqueDynamicUserPeer.DATABASE_NAME;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#
-        * retrieveAttachedObjects(java.sql.Connection)
-        */
-       @Override
-       public void retrieveAttachedObjects(Connection con) throws 
TorqueException {
-               retrieveAttachedObjects(con, false);
-       }
-
-       /**
-        * @see 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#retrieveAttachedObjects(Connection,
-        *      Boolean)
-        */
-       @Override
-       public void retrieveAttachedObjects(Connection con, Boolean lazy) 
throws TorqueException {
-               this.groupSet = new GroupSet();
-
-               List<TorqueDynamicUserGroup> usergroups = 
getTorqueDynamicUserGroupsJoinTorqueDynamicGroup(new Criteria(), con);
-
-               for (TorqueDynamicUserGroup tdug : usergroups) {
-                       groupSet.add(tdug.getTorqueDynamicGroup());
-               }
-
-               this.delegators = new UserSet<User>();
-
-               List<TorqueDynamicUserDelegates> delegatorlist = 
getTorqueDynamicUserDelegatessRelatedByDelegateeUserIdJoinTorqueDynamicUserRelatedByDelegatorUserId(
-                               new Criteria(), con);
-
-               for (TorqueDynamicUserDelegates tdud : delegatorlist) {
-                       
delegators.add(tdud.getTorqueDynamicUserRelatedByDelegatorUserId());
-               }
-
-               this.delegatees = new UserSet<User>();
-
-               List<TorqueDynamicUserDelegates> delegateelist = 
getTorqueDynamicUserDelegatessRelatedByDelegatorUserIdJoinTorqueDynamicUserRelatedByDelegateeUserId(
-                               new Criteria(), con);
-
-               for (TorqueDynamicUserDelegates tdud : delegateelist) {
-                       
delegatees.add(tdud.getTorqueDynamicUserRelatedByDelegateeUserId());
-               }
-       }
-
-       /**
-        * @see 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#update(java.sql.Connection)
-        */
-       public void update(Connection con) throws TorqueException {
-               if (groupSet != null) {
-                       Criteria criteria = new Criteria();
-
-                       /* remove old entries */
-                       criteria.where(TorqueDynamicUserGroupPeer.USER_ID, 
getEntityId());
-                       TorqueDynamicUserGroupPeer.doDelete(criteria, con);
-
-                       for (Group g : groupSet) {
-                               TorqueDynamicUserGroup ug = new 
TorqueDynamicUserGroup();
-                               ug.setUserId(getEntityId());
-                               ug.setGroupId((Integer) g.getId());
-                               ug.save(con);
-                       }
-               }
-
-               if (delegators != null) {
-                       Criteria criteria = new Criteria();
-
-                       /* remove old entries */
-                       
criteria.where(TorqueDynamicUserDelegatesPeer.DELEGATEE_USER_ID, getEntityId());
-                       TorqueDynamicUserDelegatesPeer.doDelete(criteria, con);
-
-                       for (User u : delegators) {
-                               TorqueDynamicUserDelegates ud = new 
TorqueDynamicUserDelegates();
-                               ud.setDelegateeUserId(getEntityId());
-                               ud.setDelegatorUserId((Integer) u.getId());
-                               ud.save(con);
-                       }
-               }
-
-               if (delegatees != null) {
-                       Criteria criteria = new Criteria();
-
-                       /* remove old entries */
-                       
criteria.where(TorqueDynamicUserDelegatesPeer.DELEGATOR_USER_ID, getEntityId());
-                       TorqueDynamicUserDelegatesPeer.doDelete(criteria, con);
-
-                       for (User u : delegatees) {
-                               TorqueDynamicUserDelegates ud = new 
TorqueDynamicUserDelegates();
-                               ud.setDelegatorUserId(getEntityId());
-                               ud.setDelegateeUserId((Integer) u.getId());
-                               ud.save(con);
-                       }
-               }
-
-               try {
-                       save(con);
-               } catch (Exception e) {
-                       throw new TorqueException(e);
-               }
-       }
-
-       /**
-        * @see 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#delete()
-        */
-       public void delete() throws TorqueException {
-               TorqueDynamicUserPeer.doDelete(SimpleKey.keyFor(getEntityId()));
-       }
-}
+package org.apache.fulcrum.security.torque.dynamic;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import java.sql.Connection;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.fulcrum.security.entity.Group;
+import org.apache.fulcrum.security.entity.User;
+import org.apache.fulcrum.security.model.dynamic.entity.DynamicUser;
+import org.apache.fulcrum.security.torque.om.TorqueDynamicUserDelegates;
+import org.apache.fulcrum.security.torque.om.TorqueDynamicUserDelegatesPeer;
+import org.apache.fulcrum.security.torque.om.TorqueDynamicUserGroup;
+import org.apache.fulcrum.security.torque.om.TorqueDynamicUserGroupPeer;
+import org.apache.fulcrum.security.torque.om.TorqueDynamicUserPeer;
+import 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.util.DataBackendException;
+import org.apache.fulcrum.security.util.GroupSet;
+import org.apache.fulcrum.security.util.UserSet;
+import org.apache.torque.TorqueException;
+import org.apache.torque.criteria.Criteria;
+import org.apache.torque.om.SimpleKey;
+
+/**
+ * This abstract class provides the SecurityInterface to the managers.
+ *
+ * @author <a href="mailto:[email protected]";>Thomas Vandahl</a>
+ * @version $Id:$
+ */
+public abstract class TorqueAbstractDynamicUser extends 
TorqueAbstractSecurityEntity implements DynamicUser {
+    /** Serial version */
+    private static final long serialVersionUID = -7307211992287876455L;
+
+    /** a cache of group objects */
+    private Set<Group> groupSet = null;
+
+    /** a cache of delegator (user) objects */
+    private Set<User> delegators = null;
+
+    /** a cache of delegatee(user) objects */
+    private Set<User> delegatees = null;
+
+    /**
+     * Forward reference to generated code
+     *
+     * Get a list of association objects, pre-populated with their
+     * TorqueDynamicGroup objects.
+     *
+     * @param criteria Criteria to define the selection of records
+     * @param con      a database connection
+     * @throws TorqueException if any database error occurs
+     *
+     * @return a list of User/Group relations
+     */
+    protected List<TorqueDynamicUserGroup> 
getTorqueDynamicUserGroupsJoinTorqueDynamicGroup(Criteria criteria,
+            Connection con) throws TorqueException {
+        criteria.and(TorqueDynamicUserGroupPeer.USER_ID, getEntityId());
+        return 
TorqueDynamicUserGroupPeer.doSelectJoinTorqueDynamicGroup(criteria, con);
+    }
+
+    /**
+     * Forward reference to generated code
+     *
+     * Get a list of delegator association objects, pre-populated with their
+     * TorqueDynamicUserDelegates objects.
+     *
+     * @param criteria Criteria to define the selection of records
+     * @param con      a database connection
+     * @throws TorqueException if any database error occurs
+     *
+     * @return a list of User/Delegator relations
+     */
+    protected List<TorqueDynamicUserDelegates> 
getTorqueDynamicUserDelegatessRelatedByDelegateeUserIdJoinTorqueDynamicUserRelatedByDelegatorUserId(
+            Criteria criteria, Connection con) throws TorqueException {
+        criteria.and(TorqueDynamicUserDelegatesPeer.DELEGATEE_USER_ID, 
getEntityId());
+        return 
TorqueDynamicUserDelegatesPeer.doSelectJoinTorqueDynamicUserRelatedByDelegatorUserId(criteria,
 con);
+    }
+
+    /**
+     * Forward reference to generated code
+     *
+     * Get a list of delegatee association objects, pre-populated with their
+     * TorqueDynamicUserDelegates objects.
+     *
+     * @param criteria Criteria to define the selection of records
+     * @param con      a database connection
+     * @throws TorqueException if any database error occurs
+     *
+     * @return a list of User/Delegator relations
+     */
+    protected List<TorqueDynamicUserDelegates> 
getTorqueDynamicUserDelegatessRelatedByDelegatorUserIdJoinTorqueDynamicUserRelatedByDelegateeUserId(
+            Criteria criteria, Connection con) throws TorqueException {
+        criteria.and(TorqueDynamicUserDelegatesPeer.DELEGATOR_USER_ID, 
getEntityId());
+        return 
TorqueDynamicUserDelegatesPeer.doSelectJoinTorqueDynamicUserRelatedByDelegateeUserId(criteria,
 con);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.basic.entity.BasicUser#addGroup(org.apache.
+     * fulcrum.security.entity.Group)
+     */
+    public void addGroup(Group group) {
+        getGroups().add(group);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see 
org.apache.fulcrum.security.model.basic.entity.BasicUser#getGroups()
+     */
+    public GroupSet getGroups() {
+        if (groupSet == null) {
+            groupSet = new GroupSet();
+        } else if (!(groupSet instanceof GroupSet)) {
+            groupSet = new GroupSet(groupSet);
+        }
+
+        return (GroupSet) groupSet;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.basic.entity.BasicUser#getGroupsAsSet()
+     */
+    @SuppressWarnings("unchecked")
+    public <T extends Group> Set<T> getGroupsAsSet() {
+        return (Set<T>) groupSet;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.basic.entity.BasicUser#removeGroup(org.
+     * apache.fulcrum.security.entity.Group)
+     */
+    public void removeGroup(Group group) {
+        getGroups().remove(group);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.basic.entity.BasicUser#setGroups(org.apache
+     * .fulcrum.security.util.GroupSet)
+     */
+    public void setGroups(GroupSet groups) {
+        if (groups != null) {
+            this.groupSet = groups;
+        } else {
+            this.groupSet = new GroupSet();
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.basic.entity.BasicUser#setGroupsAsSet(java.
+     * util.Set)
+     */
+    public <T extends Group> void setGroupsAsSet(Set<T> groups) {
+        setGroups(new GroupSet(groups));
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.dynamic.entity.DynamicUser#getDelegatees()
+     */
+    @SuppressWarnings("unchecked")
+    public <T extends User> Set<T> getDelegatees() {
+        if (delegatees == null) {
+            delegatees = new UserSet<T>();
+        }
+
+        return (Set<T>) delegatees;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.dynamic.entity.DynamicUser#getDelegators()
+     */
+    @SuppressWarnings("unchecked")
+    public <T extends User> Set<T> getDelegators() {
+        if (delegators == null) {
+            delegators = new UserSet<T>();
+        }
+
+        return (Set<T>) delegators;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.dynamic.entity.DynamicUser#setDelegatees(
+     * java.util.Set)
+     */
+    public <T extends User> void setDelegatees(Set<T> delegatees) {
+        if (delegatees != null) {
+            this.delegatees = new UserSet<T>(delegatees);
+        } else {
+            this.delegatees = new UserSet<T>();
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.dynamic.entity.DynamicUser#setDelegators(
+     * java.util.Set)
+     */
+    public <T extends User> void setDelegators(Set<T> delegates) {
+        if (delegators != null) {
+            this.delegators = new UserSet<T>(delegates);
+        } else {
+            this.delegators = new UserSet<T>();
+        }
+    }
+
+    /**
+     * @return the database name
+     */
+    public String getDatabaseName() {
+        return TorqueDynamicUserPeer.DATABASE_NAME;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#
+     * retrieveAttachedObjects(java.sql.Connection)
+     */
+    @Override
+    public void retrieveAttachedObjects(Connection con) throws 
DataBackendException {
+        retrieveAttachedObjects(con, false);
+    }
+
+    /**
+     * @see 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#retrieveAttachedObjects(Connection,
+     *      Boolean)
+     */
+    @Override
+    public void retrieveAttachedObjects(Connection con, Boolean lazy) throws 
DataBackendException {
+        
+        this.groupSet = new GroupSet();
+
+        try {
+            
+            List<TorqueDynamicUserGroup> usergroups = 
getTorqueDynamicUserGroupsJoinTorqueDynamicGroup(new Criteria(), con);
+    
+            for (TorqueDynamicUserGroup tdug : usergroups) {
+                groupSet.add(tdug.getTorqueDynamicGroup());
+            }
+    
+            this.delegators = new UserSet<User>();
+    
+            List<TorqueDynamicUserDelegates> delegatorlist = 
getTorqueDynamicUserDelegatessRelatedByDelegateeUserIdJoinTorqueDynamicUserRelatedByDelegatorUserId(
+                    new Criteria(), con);
+    
+            for (TorqueDynamicUserDelegates tdud : delegatorlist) {
+                
delegators.add(tdud.getTorqueDynamicUserRelatedByDelegatorUserId());
+            }
+    
+            this.delegatees = new UserSet<User>();
+    
+            List<TorqueDynamicUserDelegates> delegateelist = 
getTorqueDynamicUserDelegatessRelatedByDelegatorUserIdJoinTorqueDynamicUserRelatedByDelegateeUserId(
+                    new Criteria(), con);
+    
+            for (TorqueDynamicUserDelegates tdud : delegateelist) {
+                
delegatees.add(tdud.getTorqueDynamicUserRelatedByDelegateeUserId());
+            }
+            
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
+        }
+    }
+
+    /**
+     * @see 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#update(java.sql.Connection)
+     */
+    public void update(Connection con) throws TorqueException {
+        if (groupSet != null) {
+            Criteria criteria = new Criteria();
+
+            /* remove old entries */
+            criteria.where(TorqueDynamicUserGroupPeer.USER_ID, getEntityId());
+            TorqueDynamicUserGroupPeer.doDelete(criteria, con);
+
+            for (Group g : groupSet) {
+                TorqueDynamicUserGroup ug = new TorqueDynamicUserGroup();
+                ug.setUserId(getEntityId());
+                ug.setGroupId((Integer) g.getId());
+                ug.save(con);
+            }
+        }
+
+        if (delegators != null) {
+            Criteria criteria = new Criteria();
+
+            /* remove old entries */
+            criteria.where(TorqueDynamicUserDelegatesPeer.DELEGATEE_USER_ID, 
getEntityId());
+            TorqueDynamicUserDelegatesPeer.doDelete(criteria, con);
+
+            for (User u : delegators) {
+                TorqueDynamicUserDelegates ud = new 
TorqueDynamicUserDelegates();
+                ud.setDelegateeUserId(getEntityId());
+                ud.setDelegatorUserId((Integer) u.getId());
+                ud.save(con);
+            }
+        }
+
+        if (delegatees != null) {
+            Criteria criteria = new Criteria();
+
+            /* remove old entries */
+            criteria.where(TorqueDynamicUserDelegatesPeer.DELEGATOR_USER_ID, 
getEntityId());
+            TorqueDynamicUserDelegatesPeer.doDelete(criteria, con);
+
+            for (User u : delegatees) {
+                TorqueDynamicUserDelegates ud = new 
TorqueDynamicUserDelegates();
+                ud.setDelegatorUserId(getEntityId());
+                ud.setDelegateeUserId((Integer) u.getId());
+                ud.save(con);
+            }
+        }
+
+        try {
+            save(con);
+        } catch (Exception e) {
+            throw new TorqueException(e);
+        }
+    }
+
+    /**
+     * @see 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#delete()
+     */
+    public void delete() throws TorqueException {
+        TorqueDynamicUserPeer.doDelete(SimpleKey.keyFor(getEntityId()));
+    }
+}

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/TorqueAbstractSecurityEntity.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/TorqueAbstractSecurityEntity.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/TorqueAbstractSecurityEntity.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/TorqueAbstractSecurityEntity.java
 Fri Jan 11 10:09:52 2019
@@ -21,6 +21,7 @@ import java.io.Serializable;
 import java.sql.Connection;
 
 import org.apache.fulcrum.security.entity.SecurityEntity;
+import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.torque.TorqueException;
 import org.apache.torque.om.Persistent;
 /**
@@ -71,16 +72,16 @@ public abstract class TorqueAbstractSecu
      * @param lazy if <code>true</code>, may load some or all relationships 
later
      * @throws TorqueException database not found exception
      */
-    public abstract void retrieveAttachedObjects(Connection con, Boolean lazy) 
throws TorqueException;
+    public abstract void retrieveAttachedObjects(Connection con, Boolean lazy) 
throws DataBackendException;
     
     
     /**
      * old contract, lazy is set to <code>false</code>.
      *
      * @param con A database connection
-     * @throws TorqueException database not found exception
+     * @throws DataBackendException wrapper exception: user information not 
found exception
      */
-    public abstract void retrieveAttachedObjects(Connection con) throws 
TorqueException;
+    public abstract void retrieveAttachedObjects(Connection con) throws 
DataBackendException;
 
     /**
      * Update this instance to the database with all dependent objects

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntityDefault.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntityDefault.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntityDefault.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/security/turbine/TorqueAbstractTurbineTurbineSecurityEntityDefault.java
 Fri Jan 11 10:09:52 2019
@@ -23,6 +23,7 @@ import java.util.List;
 import org.apache.fulcrum.security.model.ACLFactory;
 import 
org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRoleEntity;
 import 
org.apache.fulcrum.security.torque.peer.TurbineUserGroupRoleModelPeerMapper;
+import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.torque.TorqueException;
 
 /**
@@ -47,8 +48,8 @@ public abstract class TorqueAbstractTurb
      * @param con A database connection
      * @param lazy if <code>true</code>, fetches objects lazily
      * @param ugrs The custom TurbineUserGroupRole set
-     * @throws TorqueException if data connection not found
+     * @throws DataBackendException if data connection or user information 
(table objects) not found
      */
-    public abstract <T extends TurbineUserGroupRoleModelPeerMapper> void 
retrieveAttachedObjects( Connection con, Boolean lazy, List<T> ugrs ) throws 
TorqueException;
+    public abstract <T extends TurbineUserGroupRoleModelPeerMapper> void 
retrieveAttachedObjects( Connection con, Boolean lazy, List<T> ugrs ) throws 
DataBackendException;
    
 }

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineGroup.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineGroup.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineGroup.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineGroup.java
 Fri Jan 11 10:09:52 2019
@@ -65,7 +65,7 @@ public abstract class DefaultAbstractTur
     
     @Override
     public void retrieveAttachedObjects( Connection con )
-        throws TorqueException
+        throws DataBackendException
     {
         retrieveAttachedObjects( con, false );
     }    
@@ -74,23 +74,26 @@ public abstract class DefaultAbstractTur
      * @see 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#retrieveAttachedObjects(java.sql.Connection,
 java.lang.Boolean)
      */
     @Override
-    public void retrieveAttachedObjects( Connection con, Boolean lazy ) throws 
TorqueException
+    public void retrieveAttachedObjects( Connection con, Boolean lazy ) throws 
DataBackendException
     {
-        if (!lazy) {
-            Set<TurbineUserGroupRole> userGroupRoleSet = new 
HashSet<TurbineUserGroupRole>();
-            
-            List<org.apache.fulcrum.security.torque.om.TurbineUserGroupRole> 
ugrs = getTurbineUserGroupRolesJoinTurbineRole(new Criteria(), con);
-    
-            for (org.apache.fulcrum.security.torque.om.TurbineUserGroupRole 
ttugr : ugrs)
-            {
-                TurbineUserGroupRole ugr = new TurbineUserGroupRole();
-                ugr.setGroup(this);
-                ugr.setRole(ttugr.getTurbineRole());
-                ugr.setUser(ttugr.getTurbineUser(con));
-                userGroupRoleSet.add(ugr);
+        try {
+            if (!lazy) {
+                Set<TurbineUserGroupRole> userGroupRoleSet = new 
HashSet<TurbineUserGroupRole>();
+                
+                
List<org.apache.fulcrum.security.torque.om.TurbineUserGroupRole> ugrs = 
getTurbineUserGroupRolesJoinTurbineRole(new Criteria(), con);
+        
+                for 
(org.apache.fulcrum.security.torque.om.TurbineUserGroupRole ttugr : ugrs)
+                {
+                    TurbineUserGroupRole ugr = new TurbineUserGroupRole();
+                    ugr.setGroup(this);
+                    ugr.setRole(ttugr.getTurbineRole());
+                    ugr.setUser(ttugr.getTurbineUser(con));
+                    userGroupRoleSet.add(ugr);
+                }
+                setUserGroupRoleSet(userGroupRoleSet);
             }
-    
-            setUserGroupRoleSet(userGroupRoleSet);
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
         }
     }
     

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbinePermission.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbinePermission.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbinePermission.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbinePermission.java
 Fri Jan 11 10:09:52 2019
@@ -27,6 +27,7 @@ import org.apache.fulcrum.security.torqu
 import org.apache.fulcrum.security.torque.om.TurbineRolePermission;
 import org.apache.fulcrum.security.torque.om.TurbineRolePermissionPeer;
 import 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.RoleSet;
 import org.apache.torque.TorqueException;
 import org.apache.torque.criteria.Criteria;
@@ -138,7 +139,7 @@ public abstract class DefaultAbstractTur
 
     @Override
     public void retrieveAttachedObjects( Connection con )
-        throws TorqueException
+        throws DataBackendException
     {
         retrieveAttachedObjects( con, false );
     }
@@ -148,15 +149,21 @@ public abstract class DefaultAbstractTur
      */
     @Override
        public void retrieveAttachedObjects( Connection con, Boolean lazy )
-           throws TorqueException
+           throws DataBackendException
     {
-        this.roleSet = new RoleSet();
-
-        List<TurbineRolePermission> rolepermissions = 
getTurbineRolePermissionsJoinTurbineRole(new Criteria(), con);
-
-        for (TurbineRolePermission ttrp : rolepermissions)
-        {
-            roleSet.add(ttrp.getTurbineRole());
+        try {
+            
+            this.roleSet = new RoleSet();
+    
+            List<TurbineRolePermission> rolepermissions = 
getTurbineRolePermissionsJoinTurbineRole(new Criteria(), con);
+    
+            for (TurbineRolePermission ttrp : rolepermissions)
+            {
+                roleSet.add(ttrp.getTurbineRole());
+            }
+            
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
         }
     }
 

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineRole.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineRole.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineRole.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineRole.java
 Fri Jan 11 10:09:52 2019
@@ -162,7 +162,7 @@ public abstract class DefaultAbstractTur
     
     @Override
     public void retrieveAttachedObjects( Connection con )
-        throws TorqueException
+        throws DataBackendException
     {
         retrieveAttachedObjects( con, false );
     }
@@ -173,33 +173,37 @@ public abstract class DefaultAbstractTur
      */
     @Override
     public void retrieveAttachedObjects( Connection con, Boolean lazy )
-        throws TorqueException
+        throws DataBackendException
     {
         this.permissionSet = new PermissionSet();
 
-        List<TurbineRolePermission> rolepermissions = 
getTurbineRolePermissionsJoinTurbinePermission(new Criteria(), con);
-
-        for (TurbineRolePermission ttrp : rolepermissions)
-        {
-            permissionSet.add(ttrp.getTurbinePermission());
-        }
-
-        if (!lazy) {
-            Set<TurbineUserGroupRole> userGroupRoleSet = new 
HashSet<TurbineUserGroupRole>();
-    
-            List<org.apache.fulcrum.security.torque.om.TurbineUserGroupRole> 
ugrs = getTurbineUserGroupRolesJoinTurbineGroup(new Criteria(), con);
+        try {
+            List<TurbineRolePermission> rolepermissions = 
getTurbineRolePermissionsJoinTurbinePermission(new Criteria(), con);
     
-            for (org.apache.fulcrum.security.torque.om.TurbineUserGroupRole 
ttugr : ugrs)
+            for (TurbineRolePermission ttrp : rolepermissions)
             {
-                TurbineUserGroupRole ugr = new TurbineUserGroupRole();
-                ugr.setRole(this);
-                ugr.setGroup(ttugr.getTurbineGroup());
-                ugr.setUser(ttugr.getTurbineUser(con));
-                userGroupRoleSet.add(ugr);
+                permissionSet.add(ttrp.getTurbinePermission());
             }
     
-            setUserGroupRoleSet(userGroupRoleSet);
+            if (!lazy) {
+                Set<TurbineUserGroupRole> userGroupRoleSet = new 
HashSet<TurbineUserGroupRole>();
         
+                
List<org.apache.fulcrum.security.torque.om.TurbineUserGroupRole> ugrs = 
getTurbineUserGroupRolesJoinTurbineGroup(new Criteria(), con);
+        
+                for 
(org.apache.fulcrum.security.torque.om.TurbineUserGroupRole ttugr : ugrs)
+                {
+                    TurbineUserGroupRole ugr = new TurbineUserGroupRole();
+                    ugr.setRole(this);
+                    ugr.setGroup(ttugr.getTurbineGroup());
+                    ugr.setUser(ttugr.getTurbineUser(con));
+                    userGroupRoleSet.add(ugr);
+                }
+        
+                setUserGroupRoleSet(userGroupRoleSet);
+            
+            }
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
         }
     }
     

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineUser.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineUser.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineUser.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/DefaultAbstractTurbineUser.java
 Fri Jan 11 10:09:52 2019
@@ -28,8 +28,8 @@ import org.apache.fulcrum.security.model
 import org.apache.fulcrum.security.torque.om.TurbineUserGroupRolePeer;
 import org.apache.fulcrum.security.torque.om.TurbineUserPeer;
 import 
org.apache.fulcrum.security.torque.peer.TurbineUserGroupRoleModelPeerMapper;
-import 
org.apache.fulcrum.security.torque.security.turbine.TorqueAbstractTurbineTurbineSecurityEntity;
 import 
org.apache.fulcrum.security.torque.security.turbine.TorqueAbstractTurbineTurbineSecurityEntityDefault;
+import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.torque.TorqueException;
 import org.apache.torque.criteria.Criteria;
 import org.apache.torque.om.SimpleKey;
@@ -55,27 +55,31 @@ public abstract class DefaultAbstractTur
      * 
      * Does intentionally not initialize the cache collTurbineUserGroupRoles 
for referenced objects. 
      * 
-     * Be careful not call any of the generated getTurbineUserGroupRoles 
methods in derived classes,
+     * Be careful not to call any of the generated getTurbineUserGroupRoles 
methods in derived classes,
      * the link {@link #save()} method otherwise might not update the right 
relationships.
      *
      * @param criteria Criteria to define the selection of records
      * @param con a database connection
-     * @throws TorqueException  if any database error occurs
+     * @throws DataBackendException  if any database error occurs
      *
      * @return a list of User/Group/Role relations
      */
     protected <T extends TurbineUserGroupRoleModelPeerMapper> List<T> 
getTurbineUserGroupRolesJoinTurbineRole(Criteria criteria, Connection con)
-        throws TorqueException
+        throws DataBackendException
     {
         criteria.and(TurbineUserGroupRolePeer.USER_ID, getEntityId() );
-        return (List<T>) 
TurbineUserGroupRolePeer.doSelectJoinTurbineRole(criteria, con);
+        try {
+            return (List<T>) 
TurbineUserGroupRolePeer.doSelectJoinTurbineRole(criteria, con);
+        } catch (  TorqueException e) {
+            throw new DataBackendException( e.getMessage(), e );
+        }
     }
     
     /* (non-Javadoc)
      * @see 
org.apache.fulcrum.security.torque.security.turbine.TorqueAbstractTurbineTurbineSecurityEntityDefault#retrieveAttachedObjects(java.sql.Connection,
 java.lang.Boolean, java.util.List)
      */
     @Override
-    public <T extends TurbineUserGroupRoleModelPeerMapper> void 
retrieveAttachedObjects( Connection con, Boolean lazy, List<T> ugrs ) throws 
TorqueException
+    public <T extends TurbineUserGroupRoleModelPeerMapper> void 
retrieveAttachedObjects( Connection con, Boolean lazy, List<T> ugrs ) throws 
DataBackendException
     {
         if (!lazy ) { // !lazy
             Set<TurbineUserGroupRole> userGroupRoleSet = new 
HashSet<TurbineUserGroupRole>();
@@ -94,7 +98,7 @@ public abstract class DefaultAbstractTur
      * @see 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#retrieveAttachedObjects(java.sql.Connection,
 java.lang.Boolean)
      */
     @Override
-    public void retrieveAttachedObjects( Connection con, Boolean lazy ) throws 
TorqueException
+    public void retrieveAttachedObjects( Connection con, Boolean lazy ) throws 
DataBackendException
     {
         if (!lazy) {
             Set<TurbineUserGroupRole> userGroupRoleSet = new 
HashSet<TurbineUserGroupRole>();
@@ -113,7 +117,7 @@ public abstract class DefaultAbstractTur
      */
     @Override
     public void retrieveAttachedObjects( Connection con )
-        throws TorqueException
+        throws DataBackendException
     {
         retrieveAttachedObjects( con, false ); //false
     }
@@ -169,19 +173,23 @@ public abstract class DefaultAbstractTur
      */
     private <T extends TurbineUserGroupRoleModelPeerMapper> void maptoModel( 
Connection con, Set<TurbineUserGroupRole> userGroupRoleSet,
                              List<T> ugrs )
-        throws TorqueException
+        throws DataBackendException
     {
-        for (TurbineUserGroupRoleModelPeerMapper ttugr : ugrs)
-        {
-            TurbineUserGroupRole ugr = new TurbineUserGroupRole();
-            ugr.setUser((User) this);
-            ugr.setRole(ttugr.getTurbineRole(con));
-            
-            // org.apache.fulcrum.security.torque.om.TurbineGroup implements 
-            // org.apache.fulcrum.security.model.turbine.entity.TurbineGroup
-            // but may be hides it? 
-            ugr.setGroup(ttugr.getTurbineGroup(con));
-            userGroupRoleSet.add(ugr);
+        try {
+            for (TurbineUserGroupRoleModelPeerMapper ttugr : ugrs)
+            {
+                TurbineUserGroupRole ugr = new TurbineUserGroupRole();
+                ugr.setUser((User) this);
+                ugr.setRole(ttugr.getTurbineRole(con));
+                
+                // org.apache.fulcrum.security.torque.om.TurbineGroup 
implements 
+                // 
org.apache.fulcrum.security.model.turbine.entity.TurbineGroup
+                // but may be hides it? 
+                ugr.setGroup(ttugr.getTurbineGroup(con));
+                userGroupRoleSet.add(ugr);
+            }
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
         }
     }
 }

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineGroup.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineGroup.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineGroup.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineGroup.java
 Fri Jan 11 10:09:52 2019
@@ -66,7 +66,7 @@ public abstract class FulcrumAbstractTur
     
     @Override
     public void retrieveAttachedObjects( Connection con )
-        throws TorqueException
+        throws DataBackendException
     {
         retrieveAttachedObjects( con, false );
     }
@@ -75,22 +75,26 @@ public abstract class FulcrumAbstractTur
      * @see 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#retrieveAttachedObjects(Connection,
 Boolean)
      */
     @Override
-    public void retrieveAttachedObjects( Connection con, Boolean lazy ) throws 
TorqueException
+    public void retrieveAttachedObjects( Connection con, Boolean lazy ) throws 
DataBackendException
     {
-        if (!lazy) {
-            Set<TurbineUserGroupRole> userGroupRoleSet = new 
HashSet<TurbineUserGroupRole>();
-            List<TorqueTurbineUserGroupRole> ugrs = 
getTorqueTurbineUserGroupRolesJoinTorqueTurbineRole(new Criteria(), con);
-    
-            for (TorqueTurbineUserGroupRole ttugr : ugrs)
-            {
-                TurbineUserGroupRole ugr = new TurbineUserGroupRole();
-                ugr.setGroup(this);
-                ugr.setRole(ttugr.getTorqueTurbineRole());
-                ugr.setUser(ttugr.getTorqueTurbineUser(con));
-                userGroupRoleSet.add(ugr);
+        try {
+            if (!lazy) {
+                Set<TurbineUserGroupRole> userGroupRoleSet = new 
HashSet<TurbineUserGroupRole>();
+                List<TorqueTurbineUserGroupRole> ugrs = 
getTorqueTurbineUserGroupRolesJoinTorqueTurbineRole(new Criteria(), con);
+        
+                for (TorqueTurbineUserGroupRole ttugr : ugrs)
+                {
+                    TurbineUserGroupRole ugr = new TurbineUserGroupRole();
+                    ugr.setGroup(this);
+                    ugr.setRole(ttugr.getTorqueTurbineRole());
+                    ugr.setUser(ttugr.getTorqueTurbineUser(con));
+                    userGroupRoleSet.add(ugr);
+                }
+        
+                setUserGroupRoleSet(userGroupRoleSet);
             }
-    
-            setUserGroupRoleSet(userGroupRoleSet);
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
         }
     }
     

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbinePermission.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbinePermission.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbinePermission.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbinePermission.java
 Fri Jan 11 10:09:52 2019
@@ -27,6 +27,7 @@ import org.apache.fulcrum.security.torqu
 import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermission;
 import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermissionPeer;
 import 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity;
+import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.RoleSet;
 import org.apache.torque.TorqueException;
 import org.apache.torque.criteria.Criteria;
@@ -143,7 +144,7 @@ public abstract class FulcrumAbstractTur
      */
     @Override
     public void retrieveAttachedObjects( Connection con )
-        throws TorqueException
+        throws DataBackendException
     {
         retrieveAttachedObjects( con, false );
     }
@@ -153,15 +154,19 @@ public abstract class FulcrumAbstractTur
      */
     @Override
     public void retrieveAttachedObjects( Connection con, Boolean lazy )
-        throws TorqueException
+        throws DataBackendException
     {
         this.roleSet = new RoleSet();
 
-        List<TorqueTurbineRolePermission> rolepermissions = 
getTorqueTurbineRolePermissionsJoinTorqueTurbineRole(new Criteria(), con);
-
-        for (TorqueTurbineRolePermission ttrp : rolepermissions)
-        {
-            roleSet.add(ttrp.getTorqueTurbineRole());
+        try {
+            List<TorqueTurbineRolePermission> rolepermissions = 
getTorqueTurbineRolePermissionsJoinTorqueTurbineRole(new Criteria(), con);
+    
+            for (TorqueTurbineRolePermission ttrp : rolepermissions)
+            {
+                roleSet.add(ttrp.getTorqueTurbineRole());
+            }
+        } catch (TorqueException e ) {
+            throw new DataBackendException( e.getMessage(),e );
         }
     }
 

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineRole.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineRole.java?rev=1851024&r1=1851023&r2=1851024&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineRole.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/FulcrumAbstractTurbineRole.java
 Fri Jan 11 10:09:52 2019
@@ -1,310 +1,314 @@
-package org.apache.fulcrum.security.torque.turbine;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-import java.sql.Connection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.fulcrum.security.entity.Permission;
-import org.apache.fulcrum.security.model.turbine.entity.TurbineRole;
-import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
-import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePeer;
-import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermission;
-import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermissionPeer;
-import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRole;
-import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRolePeer;
-import 
org.apache.fulcrum.security.torque.security.turbine.TorqueAbstractTurbineTurbineSecurityEntity;
-import org.apache.fulcrum.security.util.DataBackendException;
-import org.apache.fulcrum.security.util.PermissionSet;
-import org.apache.torque.TorqueException;
-import org.apache.torque.criteria.Criteria;
-import org.apache.torque.om.SimpleKey;
-import org.apache.torque.util.Transaction;
-
-/**
- * This abstract class provides the SecurityInterface to the managers.
- *
- * @author <a href="mailto:[email protected]";>Thomas Vandahl</a>
- * @version $Id:$
- */
-public abstract class FulcrumAbstractTurbineRole extends 
TorqueAbstractTurbineTurbineSecurityEntity
-               implements TurbineRole {
-       /** Serial version */
-       private static final long serialVersionUID = -1782236723198646728L;
-
-       /** a cache of permission objects */
-       private Set<Permission> permissionSet = null;
-
-       /**
-        * Forward reference to generated code
-        *
-        * Get a list of association objects, pre-populated with their
-        * TorqueTurbinePermission objects.
-        *
-        * @param criteria Criteria to define the selection of records
-        * @param con      a database connection
-        * @throws TorqueException if any database error occurs
-        *
-        * @return a list of Role/Permission relations
-        */
-       protected List<TorqueTurbineRolePermission> 
getTorqueTurbineRolePermissionsJoinTorqueTurbinePermission(
-                       Criteria criteria, Connection con) throws 
TorqueException {
-               criteria.and(TorqueTurbineRolePermissionPeer.ROLE_ID, 
getEntityId());
-               return 
TorqueTurbineRolePermissionPeer.doSelectJoinTorqueTurbinePermission(criteria, 
con);
-       }
-
-       /**
-        * Forward reference to generated code
-        *
-        * Get a list of association objects, pre-populated with their
-        * TorqueTurbineGroup objects.
-        *
-        * @param criteria Criteria to define the selection of records
-        * @param con      a database connection
-        * @throws TorqueException if any database error occurs
-        *
-        * @return a list of User/Group/Role relations
-        */
-       protected List<TorqueTurbineUserGroupRole> 
getTorqueTurbineUserGroupRolesJoinTorqueTurbineGroup(Criteria criteria,
-                       Connection con) throws TorqueException {
-               criteria.and(TorqueTurbineUserGroupRolePeer.ROLE_ID, 
getEntityId());
-               return 
TorqueTurbineUserGroupRolePeer.doSelectJoinTorqueTurbineGroup(criteria, con);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.turbine.entity.TurbineRole#addPermission(
-        * org.apache.fulcrum.security.entity.Permission)
-        */
-       public void addPermission(Permission permission) {
-               getPermissions().add(permission);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.turbine.entity.TurbineRole#getPermissions()
-        */
-       public PermissionSet getPermissions() {
-               if (permissionSet == null) {
-                       permissionSet = new PermissionSet();
-               } else if (!(permissionSet instanceof PermissionSet)) {
-                       permissionSet = new PermissionSet(permissionSet);
-               }
-
-               return (PermissionSet) permissionSet;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#
-        * getPermissionsAsSet()
-        */
-       @SuppressWarnings("unchecked")
-       public <T extends Permission> Set<T> getPermissionsAsSet() {
-               return (Set<T>) permissionSet;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.turbine.entity.TurbineRole#removePermission
-        * (org.apache.fulcrum.security.entity.Permission)
-        */
-       public void removePermission(Permission permission) {
-               getPermissions().remove(permission);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.model.turbine.entity.TurbineRole#setPermissions(
-        * org.apache.fulcrum.security.util.PermissionSet)
-        */
-       public void setPermissions(PermissionSet permissionSet) {
-               if (permissionSet != null) {
-                       this.permissionSet = permissionSet;
-               } else {
-                       this.permissionSet = new PermissionSet();
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#
-        * setPermissionsAsSet(java.util.Set)
-        */
-       public <T extends Permission> void setPermissionsAsSet(Set<T> 
permissions) {
-               setPermissions(new PermissionSet(permissions));
-       }
-
-       /**
-        * @return the database name
-        */
-       public String getDatabaseName() {
-               return TorqueTurbineRolePeer.DATABASE_NAME;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#
-        * retrieveAttachedObjects(java.sql.Connection)
-        */
-       @Override
-       public void retrieveAttachedObjects(Connection con) throws 
TorqueException {
-               retrieveAttachedObjects(con, false);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#
-        * retrieveAttachedObjects(java.sql.Connection, java.lang.Boolean)
-        */
-       public void retrieveAttachedObjects(Connection con, Boolean lazy) 
throws TorqueException {
-               this.permissionSet = new PermissionSet();
-
-               List<TorqueTurbineRolePermission> rolepermissions = 
getTorqueTurbineRolePermissionsJoinTorqueTurbinePermission(
-                               new Criteria(), con);
-
-               for (TorqueTurbineRolePermission ttrp : rolepermissions) {
-                       permissionSet.add(ttrp.getTorqueTurbinePermission());
-               }
-
-               if (!lazy) {
-                       Set<TurbineUserGroupRole> userGroupRoleSet = new 
HashSet<TurbineUserGroupRole>();
-
-                       List<TorqueTurbineUserGroupRole> ugrs = 
getTorqueTurbineUserGroupRolesJoinTorqueTurbineGroup(new Criteria(),
-                                       con);
-
-                       for (TorqueTurbineUserGroupRole ttugr : ugrs) {
-                               TurbineUserGroupRole ugr = new 
TurbineUserGroupRole();
-                               ugr.setRole(this);
-                               ugr.setGroup(ttugr.getTorqueTurbineGroup());
-                               ugr.setUser(ttugr.getTorqueTurbineUser(con));
-                               userGroupRoleSet.add(ugr);
-                       }
-
-                       setUserGroupRoleSet(userGroupRoleSet);
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.fulcrum.security.torque.security.turbine.
-        * TorqueAbstractTurbineTurbineSecurityEntity#getUserGroupRoleSet()
-        */
-       @Override
-       public <T extends TurbineUserGroupRole> Set<T> getUserGroupRoleSet() 
throws DataBackendException {
-               if (super.getUserGroupRoleSet() == null || 
super.getUserGroupRoleSet().isEmpty()) {
-                       Connection con = null;
-                       try {
-                               con = Transaction.begin();
-
-                               retrieveAttachedObjects(con, false); // not 
configurable, we set it
-
-                               Transaction.commit(con);
-                               con = null;
-                       } catch (TorqueException e) {
-                               throw new DataBackendException("Error 
retrieving group information", e);
-                       } finally {
-                               if (con != null) {
-                                       Transaction.safeRollback(con);
-                               }
-                       }
-               }
-
-               return super.getUserGroupRoleSet();
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#
-        * update(java.sql.Connection)
-        */
-       public void update(Connection con) throws TorqueException {
-               if (permissionSet != null) {
-                       Criteria criteria = new Criteria();
-
-                       /* remove old entries */
-                       criteria.where(TorqueTurbineRolePermissionPeer.ROLE_ID, 
getEntityId());
-                       TorqueTurbineRolePermissionPeer.doDelete(criteria, con);
-
-                       for (Permission p : permissionSet) {
-                               TorqueTurbineRolePermission rp = new 
TorqueTurbineRolePermission();
-                               rp.setPermissionId((Integer) p.getId());
-                               rp.setRoleId(getEntityId());
-                               rp.save(con);
-                       }
-               }
-               // not needed
-//        try
-//        {
-//             Set<TurbineUserGroupRole> userGroupRoleSet = 
getUserGroupRoleSet();
-//            if (userGroupRoleSet != null)
-//            {
-//                Criteria criteria = new Criteria();
-//    
-//                /* remove old entries */
-//                criteria.where(TorqueTurbineUserGroupRolePeer.ROLE_ID, 
getEntityId());
-//                TorqueTurbineUserGroupRolePeer.doDelete(criteria, con);
-//    
-//                for (TurbineUserGroupRole ugr : userGroupRoleSet)
-//                {
-//                    TorqueTurbineUserGroupRole ttugr = new 
TorqueTurbineUserGroupRole();
-//                    ttugr.setGroupId((Integer)ugr.getGroup().getId());
-//                    ttugr.setUserId((Integer)ugr.getUser().getId());
-//                    ttugr.setRoleId((Integer)ugr.getRole().getId());
-//                    ttugr.save(con);
-//                }
-//            }
-//            save(con);
-//        }
-//        catch (Exception e)
-//        {
-//            throw new TorqueException(e);
-//        }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#
-        * delete()
-        */
-       public void delete() throws TorqueException {
-               TorqueTurbineRolePeer.doDelete(SimpleKey.keyFor(getEntityId()));
-       }
-}
+package org.apache.fulcrum.security.torque.turbine;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import java.sql.Connection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.fulcrum.security.entity.Permission;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineRole;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermission;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermissionPeer;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRole;
+import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRolePeer;
+import 
org.apache.fulcrum.security.torque.security.turbine.TorqueAbstractTurbineTurbineSecurityEntity;
+import org.apache.fulcrum.security.util.DataBackendException;
+import org.apache.fulcrum.security.util.PermissionSet;
+import org.apache.torque.TorqueException;
+import org.apache.torque.criteria.Criteria;
+import org.apache.torque.om.SimpleKey;
+import org.apache.torque.util.Transaction;
+
+/**
+ * This abstract class provides the SecurityInterface to the managers.
+ *
+ * @author <a href="mailto:[email protected]";>Thomas Vandahl</a>
+ * @version $Id:$
+ */
+public abstract class FulcrumAbstractTurbineRole extends 
TorqueAbstractTurbineTurbineSecurityEntity
+        implements TurbineRole {
+    /** Serial version */
+    private static final long serialVersionUID = -1782236723198646728L;
+
+    /** a cache of permission objects */
+    private Set<Permission> permissionSet = null;
+
+    /**
+     * Forward reference to generated code
+     *
+     * Get a list of association objects, pre-populated with their
+     * TorqueTurbinePermission objects.
+     *
+     * @param criteria Criteria to define the selection of records
+     * @param con      a database connection
+     * @throws TorqueException if any database error occurs
+     *
+     * @return a list of Role/Permission relations
+     */
+    protected List<TorqueTurbineRolePermission> 
getTorqueTurbineRolePermissionsJoinTorqueTurbinePermission(
+            Criteria criteria, Connection con) throws TorqueException {
+        criteria.and(TorqueTurbineRolePermissionPeer.ROLE_ID, getEntityId());
+        return 
TorqueTurbineRolePermissionPeer.doSelectJoinTorqueTurbinePermission(criteria, 
con);
+    }
+
+    /**
+     * Forward reference to generated code
+     *
+     * Get a list of association objects, pre-populated with their
+     * TorqueTurbineGroup objects.
+     *
+     * @param criteria Criteria to define the selection of records
+     * @param con      a database connection
+     * @throws TorqueException if any database error occurs
+     *
+     * @return a list of User/Group/Role relations
+     */
+    protected List<TorqueTurbineUserGroupRole> 
getTorqueTurbineUserGroupRolesJoinTorqueTurbineGroup(Criteria criteria,
+            Connection con) throws TorqueException {
+        criteria.and(TorqueTurbineUserGroupRolePeer.ROLE_ID, getEntityId());
+        return 
TorqueTurbineUserGroupRolePeer.doSelectJoinTorqueTurbineGroup(criteria, con);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.turbine.entity.TurbineRole#addPermission(
+     * org.apache.fulcrum.security.entity.Permission)
+     */
+    public void addPermission(Permission permission) {
+        getPermissions().add(permission);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.turbine.entity.TurbineRole#getPermissions()
+     */
+    public PermissionSet getPermissions() {
+        if (permissionSet == null) {
+            permissionSet = new PermissionSet();
+        } else if (!(permissionSet instanceof PermissionSet)) {
+            permissionSet = new PermissionSet(permissionSet);
+        }
+
+        return (PermissionSet) permissionSet;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#
+     * getPermissionsAsSet()
+     */
+    @SuppressWarnings("unchecked")
+    public <T extends Permission> Set<T> getPermissionsAsSet() {
+        return (Set<T>) permissionSet;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.turbine.entity.TurbineRole#removePermission
+     * (org.apache.fulcrum.security.entity.Permission)
+     */
+    public void removePermission(Permission permission) {
+        getPermissions().remove(permission);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.model.turbine.entity.TurbineRole#setPermissions(
+     * org.apache.fulcrum.security.util.PermissionSet)
+     */
+    public void setPermissions(PermissionSet permissionSet) {
+        if (permissionSet != null) {
+            this.permissionSet = permissionSet;
+        } else {
+            this.permissionSet = new PermissionSet();
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.fulcrum.security.model.turbine.entity.TurbineRole#
+     * setPermissionsAsSet(java.util.Set)
+     */
+    public <T extends Permission> void setPermissionsAsSet(Set<T> permissions) 
{
+        setPermissions(new PermissionSet(permissions));
+    }
+
+    /**
+     * @return the database name
+     */
+    public String getDatabaseName() {
+        return TorqueTurbineRolePeer.DATABASE_NAME;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#
+     * retrieveAttachedObjects(java.sql.Connection)
+     */
+    @Override
+    public void retrieveAttachedObjects(Connection con) throws 
DataBackendException {
+        retrieveAttachedObjects(con, false);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#
+     * retrieveAttachedObjects(java.sql.Connection, java.lang.Boolean)
+     */
+    public void retrieveAttachedObjects(Connection con, Boolean lazy) throws 
DataBackendException {
+        this.permissionSet = new PermissionSet();
+
+        try {
+            List<TorqueTurbineRolePermission> rolepermissions = 
getTorqueTurbineRolePermissionsJoinTorqueTurbinePermission(
+                    new Criteria(), con);
+    
+            for (TorqueTurbineRolePermission ttrp : rolepermissions) {
+                permissionSet.add(ttrp.getTorqueTurbinePermission());
+            }
+    
+            if (!lazy) {
+                Set<TurbineUserGroupRole> userGroupRoleSet = new 
HashSet<TurbineUserGroupRole>();
+    
+                List<TorqueTurbineUserGroupRole> ugrs = 
getTorqueTurbineUserGroupRolesJoinTorqueTurbineGroup(new Criteria(),
+                        con);
+    
+                for (TorqueTurbineUserGroupRole ttugr : ugrs) {
+                    TurbineUserGroupRole ugr = new TurbineUserGroupRole();
+                    ugr.setRole(this);
+                    ugr.setGroup(ttugr.getTorqueTurbineGroup());
+                    ugr.setUser(ttugr.getTorqueTurbineUser(con));
+                    userGroupRoleSet.add(ugr);
+                }
+    
+                setUserGroupRoleSet(userGroupRoleSet);
+            }
+         } catch (TorqueException e ) {
+               throw new DataBackendException( e.getMessage(),e );
+         }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.fulcrum.security.torque.security.turbine.
+     * TorqueAbstractTurbineTurbineSecurityEntity#getUserGroupRoleSet()
+     */
+    @Override
+    public <T extends TurbineUserGroupRole> Set<T> getUserGroupRoleSet() 
throws DataBackendException {
+        if (super.getUserGroupRoleSet() == null || 
super.getUserGroupRoleSet().isEmpty()) {
+            Connection con = null;
+            try {
+                con = Transaction.begin();
+
+                retrieveAttachedObjects(con, false); // not configurable, we 
set it
+
+                Transaction.commit(con);
+                con = null;
+            } catch (TorqueException e) {
+                throw new DataBackendException("Error retrieving group 
information", e);
+            } finally {
+                if (con != null) {
+                    Transaction.safeRollback(con);
+                }
+            }
+        }
+
+        return super.getUserGroupRoleSet();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#
+     * update(java.sql.Connection)
+     */
+    public void update(Connection con) throws TorqueException {
+        if (permissionSet != null) {
+            Criteria criteria = new Criteria();
+
+            /* remove old entries */
+            criteria.where(TorqueTurbineRolePermissionPeer.ROLE_ID, 
getEntityId());
+            TorqueTurbineRolePermissionPeer.doDelete(criteria, con);
+
+            for (Permission p : permissionSet) {
+                TorqueTurbineRolePermission rp = new 
TorqueTurbineRolePermission();
+                rp.setPermissionId((Integer) p.getId());
+                rp.setRoleId(getEntityId());
+                rp.save(con);
+            }
+        }
+        // not needed
+//        try
+//        {
+//          Set<TurbineUserGroupRole> userGroupRoleSet = getUserGroupRoleSet();
+//            if (userGroupRoleSet != null)
+//            {
+//                Criteria criteria = new Criteria();
+//    
+//                /* remove old entries */
+//                criteria.where(TorqueTurbineUserGroupRolePeer.ROLE_ID, 
getEntityId());
+//                TorqueTurbineUserGroupRolePeer.doDelete(criteria, con);
+//    
+//                for (TurbineUserGroupRole ugr : userGroupRoleSet)
+//                {
+//                    TorqueTurbineUserGroupRole ttugr = new 
TorqueTurbineUserGroupRole();
+//                    ttugr.setGroupId((Integer)ugr.getGroup().getId());
+//                    ttugr.setUserId((Integer)ugr.getUser().getId());
+//                    ttugr.setRoleId((Integer)ugr.getRole().getId());
+//                    ttugr.save(con);
+//                }
+//            }
+//            save(con);
+//        }
+//        catch (Exception e)
+//        {
+//            throw new TorqueException(e);
+//        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * 
org.apache.fulcrum.security.torque.security.TorqueAbstractSecurityEntity#
+     * delete()
+     */
+    public void delete() throws TorqueException {
+        TorqueTurbineRolePeer.doDelete(SimpleKey.keyFor(getEntityId()));
+    }
+}


Reply via email to