@ -8,6 +8,7 @@ import java.util.concurrent.Executors;
import javax.inject.Inject ;
import javax.inject.Singleton ;
import javax.jcr.ItemNotFoundException ;
import javax.jcr.Node ;
import javax.jcr.NodeIterator ;
import javax.jcr.RepositoryException ;
@ -101,14 +102,24 @@ public class VREManager {
VRE vre = this . getVRE ( groupName ) ;
if ( vre ! = null ) return vre ;
else {
String query = String . format ( "SELECT * FROM [nthl:workspaceItem] As node WHERE node.[jcr:title] like '%s' AND ISDESCENDANTNODE('%s')" , groupName , vrePath . toPath ( ) ) ;
Query jcrQuery = ses . getWorkspace ( ) . getQueryManager ( ) . createQuery ( query , Constants . QUERY_LANGUAGE ) ;
NodeIterator it = jcrQuery . execute ( ) . getNodes ( ) ;
Node shareNode = ses . getNode ( Constants . SHARED_FOLDER_PATH ) ;
NodeIterator it = shareNode . getNodes ( ) ;
if ( ! it . hasNext ( ) ) throw new BackendGenericError ( "vre folder not found for context " + groupName ) ;
Node vreFolderNode = null ;
while ( it . hasNext ( ) ) {
Node nextNode = it . nextNode ( ) ;
if ( nextNode . hasProperty ( "jcr:title" ) & & nextNode . getProperty ( "jcr:title" ) . getString ( ) . equals ( groupName ) ) {
vreFolderNode = nextNode ;
break ;
}
}
if ( vreFolderNode = = null ) throw new ItemNotFoundException ( "vre folder not found for context " + groupName ) ;
Node folder = it . nextNode ( ) ;
Item vreFolder = node2Item . getItem ( folder , excludes ) ;
Item vreFolder = node2Item . getItem ( vreFolderNode , excludes ) ;
return this . putVRE ( vreFolder ) ;
}
}