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.
|
* 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);
|
ContentReader existingContent = contentService.getReader(target, ContentModel.PROP_CONTENT);
|
||||||
if(existingContent != null)
|
if(existingContent != null)
|
||||||
{
|
{
|
||||||
existingContent.getSize();
|
existingContent.getSize();
|
||||||
existingContent.getMimetype();
|
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)
|
if(contentChanged)
|
||||||
{
|
{
|
||||||
logger.debug("content has changed");
|
logger.debug("content has changed");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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);
|
||||||
|
|
||||||
// MER END
|
String encoding;
|
||||||
|
// Take a guess at the locale
|
||||||
/**
|
InputStream is = new BufferedInputStream(new FileInputStream(tempFile.getFile()));
|
||||||
* Take over the behaviour of the auditable aspect
|
try
|
||||||
*/
|
|
||||||
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);
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
is.close();
|
ContentCharsetFinder charsetFinder = mimetypeService.getContentCharsetFinder();
|
||||||
|
Charset charset = charsetFinder.getCharset(is, mimetype);
|
||||||
|
encoding = charset.name();
|
||||||
}
|
}
|
||||||
}
|
finally
|
||||||
ContentWriter writer = contentService.getWriter(target, ContentModel.PROP_CONTENT, true);
|
{
|
||||||
writer.setMimetype(mimetype);
|
if(is != null)
|
||||||
writer.setEncoding(encoding);
|
{
|
||||||
writer.putContent(tempFile.getFile());
|
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