mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
ALF-11828 CIFS: NPE possible after connection failure
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@32472 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -2803,57 +2803,52 @@ public class ContentDiskDriver2 extends AlfrescoDiskDriver implements ExtendedD
|
||||
/*
|
||||
* Need to work out whether content has changed. Some odd situations do not change content.
|
||||
*/
|
||||
boolean contentChanged = true;
|
||||
|
||||
ContentReader existingContent = contentService.getReader(target, ContentModel.PROP_CONTENT);
|
||||
if(existingContent != null)
|
||||
{
|
||||
existingContent.getSize();
|
||||
existingContent.getMimetype();
|
||||
InputStream is = existingContent.getContentInputStream();
|
||||
contentChanged = isContentChanged(existingContent, tempFile);
|
||||
}
|
||||
|
||||
//InputStream is = new BufferedInputStream(new FileInputStream(tempFile.getFile()));
|
||||
boolean contentChanged = isContentChanged(existingContent, tempFile);
|
||||
|
||||
|
||||
if(contentChanged)
|
||||
{
|
||||
logger.debug("content has changed");
|
||||
|
||||
|
||||
|
||||
// MER END
|
||||
|
||||
/**
|
||||
* Take over the behaviour of the auditable aspect
|
||||
*/
|
||||
getPolicyFilter().disableBehaviour(target, ContentModel.ASPECT_AUDITABLE);
|
||||
nodeService.setProperty(target, ContentModel.PROP_MODIFIER, authService.getCurrentUserName());
|
||||
nodeService.setProperty(target, ContentModel.PROP_MODIFIED, new Date(tempFile.getModifyDate()));
|
||||
/**
|
||||
* Take over the behaviour of the auditable aspect
|
||||
*/
|
||||
getPolicyFilter().disableBehaviour(target, ContentModel.ASPECT_AUDITABLE);
|
||||
nodeService.setProperty(target, ContentModel.PROP_MODIFIER, authService.getCurrentUserName());
|
||||
nodeService.setProperty(target, ContentModel.PROP_MODIFIED, new Date(tempFile.getModifyDate()));
|
||||
|
||||
// Take an initial guess at the mimetype (if it has not been set by something already)
|
||||
String mimetype = mimetypeService.guessMimetype(tempFile.getFullName(), new FileContentReader(tempFile.getFile()));
|
||||
logger.debug("guesssed mimetype:" + mimetype);
|
||||
// Take an initial guess at the mimetype (if it has not been set by something already)
|
||||
String mimetype = mimetypeService.guessMimetype(tempFile.getFullName(), new FileContentReader(tempFile.getFile()));
|
||||
logger.debug("guesssed mimetype:" + mimetype);
|
||||
|
||||
String encoding;
|
||||
// Take a guess at the locale
|
||||
InputStream is = new BufferedInputStream(new FileInputStream(tempFile.getFile()));
|
||||
try
|
||||
{
|
||||
ContentCharsetFinder charsetFinder = mimetypeService.getContentCharsetFinder();
|
||||
Charset charset = charsetFinder.getCharset(is, mimetype);
|
||||
encoding = charset.name();
|
||||
}
|
||||
finally
|
||||
{
|
||||
if(is != null)
|
||||
String encoding;
|
||||
// Take a guess at the locale
|
||||
InputStream is = new BufferedInputStream(new FileInputStream(tempFile.getFile()));
|
||||
try
|
||||
{
|
||||
is.close();
|
||||
ContentCharsetFinder charsetFinder = mimetypeService.getContentCharsetFinder();
|
||||
Charset charset = charsetFinder.getCharset(is, mimetype);
|
||||
encoding = charset.name();
|
||||
}
|
||||
}
|
||||
ContentWriter writer = contentService.getWriter(target, ContentModel.PROP_CONTENT, true);
|
||||
writer.setMimetype(mimetype);
|
||||
writer.setEncoding(encoding);
|
||||
writer.putContent(tempFile.getFile());
|
||||
}
|
||||
finally
|
||||
{
|
||||
if(is != null)
|
||||
{
|
||||
is.close();
|
||||
}
|
||||
}
|
||||
ContentWriter writer = contentService.getWriter(target, ContentModel.PROP_CONTENT, true);
|
||||
writer.setMimetype(mimetype);
|
||||
writer.setEncoding(encoding);
|
||||
writer.putContent(tempFile.getFile());
|
||||
} // if content changed
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user