Merged V2.1 to HEAD

6413: ML copy code switches off the MLPropertyInterceptor whilst copying
   6416: WCM-709 CIFS automount comment 


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6422 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley 2007-08-06 10:01:00 +00:00
parent 7ffe085354
commit cb7bfbec70
2 changed files with 17 additions and 2 deletions

View File

@ -37,6 +37,7 @@ import javax.transaction.SystemException;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.i18n.I18NUtil;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.node.MLPropertyInterceptor;
import org.alfresco.repo.policy.BehaviourFilter;
import org.alfresco.service.cmr.ml.ContentFilterLanguagesService;
import org.alfresco.service.cmr.ml.MultilingualContentService;
@ -790,6 +791,9 @@ public class MultilingualContentServiceImpl implements MultilingualContentServic
*/
public NodeRef copyTranslationContainer(NodeRef mlContainerNodeRef, NodeRef newParentRef, String prefixName) throws Exception
{
// There is no need for the properties interceptor here
boolean wasMLAware = MLPropertyInterceptor.setMLAware(true);
if(!ContentModel.TYPE_MULTILINGUAL_CONTAINER.equals(nodeService.getType(mlContainerNodeRef)))
{
throw new IllegalArgumentException(
@ -863,6 +867,10 @@ public class MultilingualContentServiceImpl implements MultilingualContentServic
copyNodeRef,
ContentModel.ASSOC_MULTILINGUAL_CHILD,
QNAME_ML_TRANSLATION);
// Add the ML aspects back
nodeService.addAspect(translationNodeRef, ContentModel.ASPECT_MULTILINGUAL_DOCUMENT, null);
nodeService.addAspect(translationNodeRef, ContentModel.ASPECT_MULTILINGUAL_EMPTY_TRANSLATION, null);
}
finally
{
@ -887,6 +895,9 @@ public class MultilingualContentServiceImpl implements MultilingualContentServic
}
}
// The rest of the transaction can have properties modified
MLPropertyInterceptor.setMLAware(wasMLAware);
if (logger.isDebugEnabled())
{
logger.debug("MLContainer copied: \n" +

View File

@ -88,10 +88,14 @@ public class MLPropertyInterceptor implements MethodInterceptor
*
* @param mlAwareVal <tt>true</tt> if the current thread is able to handle
* {@link MLText d:mltext} property types, otherwise <tt>false</tt>.
* @return
* <tt>true</tt> if the current transaction is ML aware
*/
static public void setMLAware(boolean mlAwareVal)
static public boolean setMLAware(boolean mlAwareVal)
{
mlAware.set(new Boolean(mlAwareVal));
boolean wasMLAware = isMLAware();
mlAware.set(Boolean.valueOf(mlAwareVal));
return wasMLAware;
}
/**