Merged V4.1-BUG-FIX to HEAD

43196: Merged DEV to V4.1-BUG-FIX
      39849: ALF-13301: The value of bpm_reassignable is not converted by JBPM to boolean when we use timer.
      Flush session before closing JbpmContext.
   43199: Temp fix for:     ALF-16558 SOLR tracking does not do incremental updates but one single chunk
   43201: Fixed ALF-11457 "Send email to user rule can't be created if the User name starts with number"
   43210: Fixed ALF-16317 "Labels not displaying full text when creating a rule on a folder with IE8"
   43219: Merged DEV to V4.1-BUG-FIX
      43213: ALF-13277: CLONE - IMAP: User home space is opened when browsing through Content Folder URL
      org.alfresco.repo.model.filefolder.FileFolderServiceImpl.getNamePath(NodeRef, NodeRef) method was updated with fix that return an empty list if the root node path is requested.
   43226: ALF-15755: Merged DEV to V4.1-BUG-FIX (modified)
      43088:  If the WebDAV path of a document exceeds 255 characters, documents opened in MSOffice cannot be saved back
         1. parseRequestHeaders() method was overrode in AbstractMoveOrCopyMethod class.
         2. unlockNodeIfLocked() method was added In MoveMethod.
   43232: Fix for ALF-16254 - 'Leave Site' behaviour for group based site membership
   43236: Fix for ALF-15236 - JSF - Edit online of html files does not keep the formatting
   43239: Removed tabs
   43251: ALF-16419: Content uploaded through webdav in win7 adds a write lock, resulting in rules not triggering
   - Use LockUtils.isLockedAndReadOnly in ActionExecuterAbstractBase
   43310: Fix for ALF-16469 ***  Solr Indexing - Index for 5M docs, 2M txns, 2TB content, 50k users, 10k groups grows up to 300GB with FTS disabled. Is it expected?
   - first pass at reducing stored fields in the SOLR index - PATH and secondary parent info
   43314: ALF-16575 - Email server does not accept email where Subject ends with a period
   43357: ALF-16573: LDAP synchronization fails when a child group has more than one parent
   - Because AbstractNodeDAOImpl was wrongly recognizing a deadlock as a DuplicateChildNodeNameException
   - Now it correctly recognizes the PostgreSQL "40P01" SQLSTATE
   43359: Merged DEV to V4.1-BUG-FIX
      43338: ALF-16515: Error 403 when authenticating against an Active Directory
      Transaction type for login Web script has been modified to 'readwrite' to introduce a possibility creating missing people in the context of the regular '/api/login' 'LoginBean'. This is necessary for some authentication mechanisms. For example, for Kerberos authentication without SSO


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@43362 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Dave Ward
2012-11-03 12:58:27 +00:00
parent fddbe192c7
commit 973a12155c
9 changed files with 256 additions and 152 deletions

View File

@@ -458,23 +458,52 @@ public abstract class AbstractEmailMessageHandler implements EmailMessageHandler
}
}
// Lookup Table for dubious characters.
final static String[][] dubiousChars = new String[][] { { "\\", "%5c" },
{ "/", "%2f" },
{ "*", "%2a" },
{ "|", "%7c" },
{ ":", "%3a" },
{ "\"", "%22" },
{ "<", "%3c" },
{ ">", "%3e" },
{ "?", "%3f" }};
/**
* Replaces characters \/*|:"<>?. on their hex values. Subject field is used as name of the content, so we need to replace characters that are forbidden in content names.
*
* @param subject String representing subject
* @return Encoded string
* Subject field is used as name of the content, so we need to replace characters that are forbidden in file names.
*
* Trims whitespace
*
* Replaces characters \/*|:"<>? with their hex values.
*
* @param subject the string of the email subject
*
** @return filename
*/
// MER Removed . * , { ".", "%2e" }
public static String encodeSubject(String subject)
{
String result = subject.trim();
String[][] s = new String[][] { { "\\", "%5c" }, { "/", "%2f" }, { "*", "%2a" }, { "|", "%7c" }, { ":", "%3a" }, { "\"", "%22" }, { "<", "%3c" }, { ">", "%3e" },
{ "?", "%3f" }};
for (int i = 0; i < s.length; i++)
public static String encodeSubject(String subject)
{
// MER Removed . * , { ".", "%2e" }
// Filename regex from model is (.*[\"\*\\\>\<\?\/\:\|]+.*)|(.*[\.]?.*[\.]+$)|(.*[ ]+$)
//Strip whitespace
String result = subject.trim();
// replace dubious chars
for (int i = 0; i < dubiousChars.length; i++)
{
result = result.replace(s[i][0], s[i][1]);
result = result.replace(dubiousChars[i][0], dubiousChars[i][1]);
}
// Replace trailing "." with %2e
if(result.endsWith("."))
{
result = result.substring(0, result.length() -1) + "%2e";
}
return result;
}