ALF-10686 - Original modification date is lost when files are copied into Alfresco via CIFS

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31864 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Mark Rogers
2011-11-08 17:09:09 +00:00
parent 7a03b10f26
commit f695bcdcd0
7 changed files with 207 additions and 4 deletions

View File

@@ -251,21 +251,40 @@ public class BufferedContentDiskDriver implements ExtendedDiskInterface,
FileInfo finfo = new FileInfo();
finfo.copyFrom(info);
// TODO what if file state cache is stale or wrong? We are over-writing the "real" value.
/*
* TODO what if file state cache is stale?
* We are over-writing the "real" value here.
*/
if(fstate.hasFileSize())
{
if(logger.isDebugEnabled())
{
logger.debug("replace file size " + info.getSize() + " with " + fstate.getFileSize());
}
finfo.setFileSize(fstate.getFileSize());
}
if ( fstate.hasAccessDateTime())
{
if(logger.isDebugEnabled())
{
logger.debug("replace access date " + new Date(finfo.getAccessDateTime()) + " with " + new Date(fstate.getAccessDateTime()));
}
finfo.setAccessDateTime(fstate.getAccessDateTime());
}
if ( fstate.hasChangeDateTime())
{
if(logger.isDebugEnabled())
{
logger.debug("replace change date " + new Date(finfo.getChangeDateTime()) + " with " + new Date(fstate.getChangeDateTime()));
}
finfo.setChangeDateTime(fstate.getChangeDateTime());
}
if ( fstate.hasModifyDateTime())
{
if(logger.isDebugEnabled())
{
logger.debug("replace modified date " + new Date(finfo.getModifyDateTime()) + " with " + new Date(fstate.getModifyDateTime()));
}
finfo.setModifyDateTime(fstate.getModifyDateTime());
}
if ( fstate.hasAllocationSize() && fstate.getAllocationSize() > info.getAllocationSize())
@@ -279,8 +298,10 @@ public class BufferedContentDiskDriver implements ExtendedDiskInterface,
", readOnly:" +finfo.isReadOnly() +
", fileId:" +finfo.getFileId() +
", directoryId:" + finfo.getDirectoryId() +
", createdDate: " + finfo.getCreationDateTime() +
", accessDate:" + new Date(finfo.getAccessDateTime()) +
", modifiedDate:" + new Date(finfo.getModifyDateTime()) +
", changeDate:" + new Date(finfo.getChangeDateTime()) +
", mode" + finfo.getMode());
}