Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud)

84382: Merged DEV (5.0.0.BF) to HEAD-BUG-FIX (5.0/Cloud)
      83951: ACE-968 : CIFS: folder is not deleted if it has subfolder and document inside
      The folder is now not deleted if it has pseudo files inside.
      The info about deleted pseudo files is not returned to the client.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@84658 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2014-09-18 17:34:18 +00:00
parent 7ad9ba8506
commit 1743d7997e
2 changed files with 45 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2007-2010 Alfresco Software Limited. * Copyright (C) 2007-2014 Alfresco Software Limited.
* *
* This file is part of Alfresco * This file is part of Alfresco
* *
@@ -261,7 +261,10 @@ public class PseudoFileOverlayImpl implements PseudoFileOverlay
{ {
return null; return null;
} }
if (isDeleted(parentDir, fname))
{
return null;
}
if(context.isAlfrescoURLEnabled()) if(context.isAlfrescoURLEnabled())
{ {
if(context.getURLFileName().equals(fname)) if(context.getURLFileName().equals(fname))

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2005-2013 Alfresco Software Limited. * Copyright (C) 2005-2014 Alfresco Software Limited.
* *
* This file is part of Alfresco * This file is part of Alfresco
* *
@@ -667,12 +667,25 @@ public class ContentDiskDriver2 extends AlfrescoDiskDriver implements ExtendedD
if(ctx.getPseudoFileOverlay().isPseudoFile(dirNodeRef, paths[1])) if(ctx.getPseudoFileOverlay().isPseudoFile(dirNodeRef, paths[1]))
{ {
PseudoFile pfile = ctx.getPseudoFileOverlay().getPseudoFile(dirNodeRef, paths[1]); PseudoFile pfile = ctx.getPseudoFileOverlay().getPseudoFile(dirNodeRef, paths[1]);
FileInfo pseudoFileInfo = pfile.getFileInfo();
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
{ {
logger.debug("returning psuedo file details:" + pseudoFileInfo); if (pfile != null)
{
logger.debug("returning psuedo file details:" + pfile);
}
else
{
logger.debug("Try to return deleted pseudo file :" + paths[1]);
}
}
if (pfile != null)
{
return pfile.getFileInfo();
}
else
{
throw new FileNotFoundException("The pseudo file was deleted");
} }
return pseudoFileInfo;
} }
} }
@@ -1111,8 +1124,13 @@ public class ContentDiskDriver2 extends AlfrescoDiskDriver implements ExtendedD
if (fileFolderService.exists(nodeRef)) if (fileFolderService.exists(nodeRef))
{ {
// Check if the folder is empty // Check if the folder is empty
// Get pseudo files
if ( getCifsHelper().isFolderEmpty( nodeRef)) PseudoFileList pseudoFileList = new PseudoFileList();
if (session.isPseudoFilesEnabled())
{
pseudoFileList = ctx.getPseudoFileOverlay().searchPseudoFiles(nodeRef, "*");
}
if (getCifsHelper().isFolderEmpty(nodeRef) && pseudoFileList.isEmpty())
{ {
// Delete the folder node // Delete the folder node
fileFolderService.delete(nodeRef); fileFolderService.delete(nodeRef);
@@ -2557,9 +2575,23 @@ public class ContentDiskDriver2 extends AlfrescoDiskDriver implements ExtendedD
PseudoFile pfile = ctx.getPseudoFileOverlay().getPseudoFile(dirNodeRef, paths[1]); PseudoFile pfile = ctx.getPseudoFileOverlay().getPseudoFile(dirNodeRef, paths[1]);
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
{ {
logger.debug("Opened pseudo file :" + pfile); if (pfile != null)
{
logger.debug("Opened pseudo file :" + pfile);
}
else
{
logger.debug("Try to open deleted pseudo file :" + paths[1]);
}
}
if (pfile != null)
{
return pfile.getFile( path);
}
else
{
throw new FileNotFoundException("The pseudo file was deleted");
} }
return pfile.getFile( path);
} }
} }