@Override
  protected Collection<AuthorityType> retrieveJDOObjects(
      Set<AuthorityTypeID> authorityTypeIDs,
      String[] fetchGroups,
      int maxFetchDepth,
      ProgressMonitor monitor)
      throws Exception {
    JFireSecurityManagerRemote sm = securityManager;
    if (sm == null) sm = getEjbProvider().getRemoteBean(JFireSecurityManagerRemote.class);

    return sm.getAuthorityTypes(authorityTypeIDs, fetchGroups, maxFetchDepth);
  }
 public synchronized List<AuthorityType> getAuthorityTypes(
     String[] fetchGroups, int maxFetchDepth, ProgressMonitor monitor) {
   try {
     securityManager = getEjbProvider().getRemoteBean(JFireSecurityManagerRemote.class);
     Set<AuthorityTypeID> authorityTypeIDs = securityManager.getAuthorityTypeIDs();
     return getJDOObjects(null, authorityTypeIDs, fetchGroups, maxFetchDepth, monitor);
   } catch (RuntimeException x) {
     throw x;
   } catch (Exception x) {
     throw new RuntimeException(x);
   } finally {
     securityManager = null;
   }
 }