From cb4a571fa1e0511f7d19ded930a8ef179729addf Mon Sep 17 00:00:00 2001 From: Dave Ward Date: Tue, 6 Sep 2011 16:14:53 +0000 Subject: [PATCH] =?UTF-8?q?Merged=20V3.4-BUG-FIX=20to=20HEAD=20=20=20=2029?= =?UTF-8?q?870:=20ALF-9952:=20Compatibility=20fix=20to=20allow=20mounting?= =?UTF-8?q?=20of=20Alfresco=20WebDAV=20as=20a=20network=20drive=20on=20Win?= =?UTF-8?q?dows=20XP=20(without=20WebDrive)=20=20=20=2029872:=20Fixed=20AL?= =?UTF-8?q?F-7698=20"Defects=20in=20tags=20picker=20in=20SHARE."=20=20=20?= =?UTF-8?q?=20-=20now=20checks=20added=20items=20to=20avoid=20duplicates?= =?UTF-8?q?=20=20=20=2029873:=20Made=20sure=20the=20onActionDetails=20docl?= =?UTF-8?q?ib=20action=20generates=20SimpleDialog=20instance=20ids=20each?= =?UTF-8?q?=20time,=20to=20avoid=20multiple=20js=20class=20instances=20wit?= =?UTF-8?q?h=20the=20same=20id=20getting=20called=20for=20every=20dialog?= =?UTF-8?q?=20created.=20=20=20=2029878:=20ALF-9378:=20Use=20caching=20plu?= =?UTF-8?q?s=20a=20read=20write=20lock,=20in=20a=20similar=20manner=20to?= =?UTF-8?q?=20ALF-7064,=20to=20avoid=20contention=20in=20SubsystemProxyFac?= =?UTF-8?q?tory=20under=20load=20=20=20=2029881:=20Added=20helper=20text?= =?UTF-8?q?=20for=20the=20translators=20to=20the=20property=20file.=20=20?= =?UTF-8?q?=20=2029910:=20ALF-7433:=20a=20file=20deleted=20using=20the=20w?= =?UTF-8?q?eb=20UI=20still=20appears=20in=20a=20NFS=20mount=20but=20with?= =?UTF-8?q?=20NULL=20stats=20=20=20=20-=20timestamp=20propagation=20now=20?= =?UTF-8?q?enabled=20by=20default=20so=20NFS=20always=20works=20=20=20=20-?= =?UTF-8?q?=20timestamp=20propagation=20less=20agressive=20-=20only=20has?= =?UTF-8?q?=20to=20propagate=20on=20adds=20/=20deletes=20and=20renames=20?= =?UTF-8?q?=20=20=2029911:=20Values=20for=20recurrence=20strings=20updated?= =?UTF-8?q?=20now=20that=20I've=20read=20RFC-2445=20=20=20=2029944:=20ALF-?= =?UTF-8?q?9988:=20Merged=20PATCHES/V3.3.4=20to=20V3.4-BUG-FIX=20=20=20=20?= =?UTF-8?q?=20=20=2028581:=20ALF-8944:=20Corrected=20sort=20parameter=20ha?= =?UTF-8?q?ndling=20for=20datetime=20fields,=20based=20on=20analyzer=20and?= =?UTF-8?q?=20tokenization=20mode=20=20=20=2029955:=20Fixed=20ALF-9965:=20?= =?UTF-8?q?Property=20names=20matching=20fails=20if=20the=20property=20con?= =?UTF-8?q?tains=20non=20Alphanumeric=20characters=20=20=20=2029956:=20Fix?= =?UTF-8?q?ed=20ALF-9424:=20Webform(XSD):=20xf:switch=20switch=20group=20d?= =?UTF-8?q?oes=20not=20work=20based=20on=20"complexContent=20with=20Base"?= =?UTF-8?q?=20element.=20=20=20=2029964:=20Fixed=20ALF-9089:=20TinyMCE=20c?= =?UTF-8?q?onvert=5Ffonts=5Fto=5Fspans=20parameter=20is=20not=20being=20pi?= =?UTF-8?q?cked=20up=20in=20Web=20Forms=20=20=20=2029977:=20L10N=20Updates?= =?UTF-8?q?=20from=20Gloria=20(based=20on=20rev29838).=20=20=20=2029980:?= =?UTF-8?q?=20Ignore=20virtual=20tomcat=20directory=20=20=20=2029981:=20Me?= =?UTF-8?q?rged=20BRANCHES/DEV/BELARUS/V3.4-BUG-FIX-2011=5F08=5F19=20to=20?= =?UTF-8?q?BRANCHES/DEV/V3.4-BUG-FIX=20=20=20=20=20=20=20=20ALF-6808=20:?= =?UTF-8?q?=20Incorrect=20Search=20Language=20Conversion=20for=20wild=20ca?= =?UTF-8?q?rd=20characters=20(%,=20=5F)=20for=20MS=20SQL=20=20=20=2029984:?= =?UTF-8?q?=20ALF-4753:=20Fix=20search=20query=20escaping=20in=20Alfresco?= =?UTF-8?q?=20Explorer=20=20=20=20-=20AWC-1743=20/=20CHK-2171=20fix=20rest?= =?UTF-8?q?ored=20=20=20=2029993:=20Merged=20DEV/TEMPORARY=20to=20V3.4-BUG?= =?UTF-8?q?-FIX=20=20=20=20=20=20=2029989:=20ALF-9976:=20WebDAV=20Class=20?= =?UTF-8?q?2=20compliance=20issue=20with=20OPTIONS=20response.=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20Class=202=20incompliance=20connected=20with?= =?UTF-8?q?=20absence=20of=20'PROPPATCH'=20method=20in=20the=20'Allow'=20r?= =?UTF-8?q?esponse=20header=20has=20been=20fixed=20=20=20=2030009:=20ALF-7?= =?UTF-8?q?239=20:=20Documents=20from=20Records=20Manager=20cannot=20be=20?= =?UTF-8?q?viewed=20in=20Outlook=20=20=20=2030012:=20Merged=20BRANCHES/DEV?= =?UTF-8?q?/BELARUS/V3.4-BUG-FIX-2011=5F08=5F19=20to=20BRANCHES/DEV/V3.4-B?= =?UTF-8?q?UG-FIX:=20=20=20=20=20=20=2029986:=20ALF-7105:=20pdfbox=20retur?= =?UTF-8?q?ns=20errors=20in=20the=20logs=20but=20one=20cannot=20understand?= =?UTF-8?q?=20what=20file=20is=20affected=20(PDFBox)=20=20=20=2030014:=20A?= =?UTF-8?q?LF-6284:=20Fix=20for=20Share=20Kerberos=20SSO=20Websphere=20com?= =?UTF-8?q?patibility=20(by=20Pavel)=20=20=20=2030016:=20Merged=20DEV=20to?= =?UTF-8?q?=20V3.4-BUG-FIX=20=20=20=20=20=20=2029424:=20ALF-8715:=20NFS:?= =?UTF-8?q?=20Admin=20sometimes=20cannot=20edit=20content=20uploaded=20via?= =?UTF-8?q?=20JSF=20=20=20=20=20=20=20=20=20=20=20=20=20=20Fix=20for=20"Ca?= =?UTF-8?q?n't=20open=20file=20for=20writing"=20during=20saving=20file=20i?= =?UTF-8?q?n=20VI-like=20editors=20connected=20with=20FileExpiry=20daemon:?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20-=20'getNodeOrNull()'?= =?UTF-8?q?=20method=20extracted=20to=20get=20and=20check=20on=20existence?= =?UTF-8?q?=20of=20the=20cached=20file=20object=20=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20and=20then=20update=20cache=20timeout?= =?UTF-8?q?=20or=20remove=20it=20from=20the=20cache;=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20-=20'getNodeForPath()'=20was=20appropriate?= =?UTF-8?q?ly=20updated=20in=20accordance=20with=20logic=20extracted=20to?= =?UTF-8?q?=20'getNodeOrNull()';=20=20=20=20=20=20=20=20=20=20=20=20=20=20?= =?UTF-8?q?-=20'fileExists()'=20method=20was=20corrected=20to=20take=20int?= =?UTF-8?q?o=20account=20existence=20of=20the=20cached=20file=20object=20?= =?UTF-8?q?=20=20=2030017:=20Reverses=20an=20accidental=20check=20in=20mad?= =?UTF-8?q?e=20with=20the=20last=20L10N=20bundle=20update=20(r29977)=20=20?= =?UTF-8?q?=20=2030045:=20ALF-8664=20-=20Custom=20'mandatory'=20RM=20metad?= =?UTF-8?q?ata=20causes=20editing=20issues=20=20=20=2030053:=20ALF-9681:?= =?UTF-8?q?=20webScriptsRegistryCache=20size=20in=20ehcache-default.xml=20?= =?UTF-8?q?=20=20=20=20=20=20webScriptsRegistryCache=20maxElementsInMemory?= =?UTF-8?q?=20size=20was=20incremented=20up=20to=201000=20=20=20=2030079:?= =?UTF-8?q?=20ALF-10027:=20Fix=20template=20alfresco-global.properties=20f?= =?UTF-8?q?or=20custom=20tomcat=20ports=20=20=20=20-=20Obselete=20web.appl?= =?UTF-8?q?ication.context.url=20removed=20=20=20=20-=20alfresco.host,=20a?= =?UTF-8?q?lfresco.port,=20share.host=20and=20share.port=20added=20=20=20?= =?UTF-8?q?=2030080:=20Fixed=20parse=20error=20mentioned=20in=20ALF-9511?= =?UTF-8?q?=20"RSS=20Feeds=20with=20HTTP=20Auth=20doesn't=20work=20with=20?= =?UTF-8?q?Feed=20dashlet"=20=20=20=20=20-=20In=20java=20regexps=20the=20.?= =?UTF-8?q?=20(dot)=20does=20NOT=20include=20the=20\r=20or=20\n=20by=20def?= =?UTF-8?q?ault,=20to=20change=20that=20a=20(=3Fs)=20instruction=20was=20a?= =?UTF-8?q?dded=20in=20the=20beginning=20of=20the=20regexp=20=20=20=203008?= =?UTF-8?q?3:=20Fixed=20ALF-10048=20"Multiple=20thumbnails=20in=20RSS=20fe?= =?UTF-8?q?eds=20causes=20problem=20for=20RSS=20Feed=20dashlet"=20=20=20?= =?UTF-8?q?=2030088:=20ALF-7433:=20Fix=20unit=20test=20fallout=20from=20ne?= =?UTF-8?q?w=20timestamp=20propagation=20behaviour=20=20=20=2030089:=20ALF?= =?UTF-8?q?-7433:=20Further=20unit=20test=20fallout=20from=20new=20timesta?= =?UTF-8?q?mp=20propagation=20behaviour=20=20=20=20-=20testPermissionsAndP?= =?UTF-8?q?olicies=20needs=20to=20get=20folder=20modification=20date=20in?= =?UTF-8?q?=20a=20distinct=20transaction=20after=20populating=20it=20=20?= =?UTF-8?q?=20=2030091:=20ALF-10050:=20CIFS:=20Coordinator=20is=20unable?= =?UTF-8?q?=20to=20delete=20content=20after=20IMAP=20has=20been=20enabled?= =?UTF-8?q?=20=20=20=20-=20Transactional=20cache=20null=20entry=20issue=20?= =?UTF-8?q?=20=20=2030096:=20ALF-9793:=20Allow=20auto-created=20NFS=20auth?= =?UTF-8?q?enticated=20users=20to=20work=20=20=20=20-=20Also=20removed=20a?= =?UTF-8?q?dmin=20from=20default=20mappings=20to=20avoid=20security=20hole?= =?UTF-8?q?=20=20=20=2030102:=20ALF-8723=20CIFS=20on=20Windows=20fails=20t?= =?UTF-8?q?o=20start=20under=20certain=20conditions=20=20=20=20=20=20=20-?= =?UTF-8?q?=20Found=20another=20place=20>=3D=20was=20required=20rather=20t?= =?UTF-8?q?han=20just=20>=20=20=20=2030104:=20ALF-9890=20SiteService=20is?= =?UTF-8?q?=20not=20producing=20audit=20data.=20=20=20=20=20=20=20-=20Inte?= =?UTF-8?q?rnal=20siteService=20rather=20than=20public=20SiteService=20was?= =?UTF-8?q?=20being=20used,=20so=20there=20was=20no=20audit=20advice.=20?= =?UTF-8?q?=20=20=2030119:=20ALF-9793:=20Fallout=20from=20previous=20fix.?= =?UTF-8?q?=20Prevent=20initialization=20error=20when=20there=20are=20no?= =?UTF-8?q?=20user=20mappings=20and=20NFS=20is=20not=20enabled.=20=20=20?= =?UTF-8?q?=2030120:=20ALF-9526:=20Work=20around=20the=20fact=20that=20Web?= =?UTF-8?q?sphere=20ignores=20the=20response=20encoding=20unless=20you=20c?= =?UTF-8?q?all=20response.setCharacterEncoding()=20=20=20=20-=20GlobalLoca?= =?UTF-8?q?lizationFilter=20inserts=20a=20response=20wrapper=20that=20pars?= =?UTF-8?q?es=20the=20charset=20parameter=20from=20the=20content=20type=20?= =?UTF-8?q?header,=20if=20it=20is=20present=20=20=20=2030121:=20ALF-9535:?= =?UTF-8?q?=20Alfresco=20ignores=20Accept-Language=20sent=20from=20Share?= =?UTF-8?q?=20=20=20=20-=20Ticket=20and=20webscript=20authentication=20(i.?= =?UTF-8?q?e.=20Share=20requests)=20will=20use=20the=20language=20set=20in?= =?UTF-8?q?=20request=20headers=20as=20the=20session=20language=20=20=20?= =?UTF-8?q?=2030130:=20ALF-10049:=20Fix=20by=20Andrey=20to=20enable=20Flas?= =?UTF-8?q?h=20upload=20on=20Weblogic!=20=20=20=2030141:=20ALF-8732=20Now?= =?UTF-8?q?=20if=20the=20adhoc=20workflow=20throws=20exceptions=20while=20?= =?UTF-8?q?sending=20a=20notification=20email=20then=20those=20exceptions?= =?UTF-8?q?=20are=20ignored.=20=20=20=2030226:=20ALF-9415:=20JSF=20-=20Cop?= =?UTF-8?q?y/Paste=20vs=20Cut/Paste=20add=20aspect=20rule.=20=20=20=203024?= =?UTF-8?q?2:=20Added=20NodeService.getNodeRef(Long=20nodeId)=20=20=20=20?= =?UTF-8?q?=20-=20First=20step=20to=20remove=20Lucene=20search=20from=20in?= =?UTF-8?q?bound=20email=20server=20=20=20=20=20-=20Done=20while=20investi?= =?UTF-8?q?gating=20ALF-9660=20=20=20=2030243:=20Fixed=20ALF-9660:=20Inbou?= =?UTF-8?q?nd=20emails=20are=20always=20stored=20with=20encoding=3DUTF-8?= =?UTF-8?q?=20regardless=20the=20encoding=20the=20email=20client=20uses.?= =?UTF-8?q?=20=20=20=20=20-=20If=20the=20encoding=20is=20provided,=20then?= =?UTF-8?q?=20it=20is=20not=20guessed=20=20=20=20=20-=20Includes=20tweak?= =?UTF-8?q?=20to=20remove=20Lucene=20search=20and=20rather=20use=20direct?= =?UTF-8?q?=20node=20ID-NodeRef=20translation=20provided=20by=20NodeServic?= =?UTF-8?q?e=20=20=20=2030263:=20Incremented=20version=20revision=20=20=20?= =?UTF-8?q?=2030264:=20ALF-10187:=20Merged=20V3.3=20to=20V3.4-BUG-FIX=20?= =?UTF-8?q?=20=20=20=20=20=2030003:=20ALF-9898:=20More=20defensive=20excep?= =?UTF-8?q?tion=20handling=20to=20avoid=20packet=20pool=20leaks=20and=20ex?= =?UTF-8?q?tra=20logging=20on=20packet=20pool=20exhaustion=20=20=20=203026?= =?UTF-8?q?5:=20Merged=20V3.4=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=203025?= =?UTF-8?q?9:=20ALF-6527=20LangPack=20FR=20-=20[Search=20results'=20page]?= =?UTF-8?q?=20Incorrect=20label=20when=20search=20matches=20results=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20-=20Added=20"(s)"=20to=20"trouv=C3=A9(s)?= =?UTF-8?q?=20dans=20l'entrep=C3=B4t."=20=20=20(for=20a=20repository=20sea?= =?UTF-8?q?rch=20-=20found=20in=20retest)=20=20=20=20=20=20=20=20=20-=20Th?= =?UTF-8?q?e=20original=20change:=20=20=20=20=20=20=20=20=20=20=20Added=20?= =?UTF-8?q?"(s)"=20to=20"trouv=C3=A9(s)=20dans=20tous=20les=20sites."=20?= =?UTF-8?q?=20=20(for=20an=20All=20Sites=20search)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit However this leaves the current site search. As a result I also: Added "(s)" to "trouvé(s) dans le site {0}." (for a current Site search) and checked with a French speaker that this would sound correct. Note: all three labels are prefixed by a separate text label: "N résultat(s) " 30261: (RECORD ONLY) Merged V3.4-BUG-FIX to V3.4 (3.4.5) 30262: ALF-10186: Merged PATCHES/V3.4.1 to V3.4 30126: ALF-10075: Concurrency during CMIS document update causes content stream to close prematurely. - Created BufferedRequest request wrapper in RepositoryContainer - If the content stream is accessed directly it is streamed to a temporary file so that requests can be retried 30137: ALF-10075: Fixed NPE git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30271 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/ehcache-default.xml | 2 +- .../alfresco/ibatis/alfresco-SqlMapConfig.xml | 1 + .../alfresco-util-SqlMap.xml | 11 + .../avm-common-SqlMap.xml | 24 +- .../patch-common-SqlMap.xml | 2 +- .../messages/patch-service.properties | 3 + .../alfresco/patch/patch-services-context.xml | 22 ++ .../public-services-security-context.xml | 1 + config/alfresco/repository.properties | 16 +- config/alfresco/rule-services-context.xml | 13 +- config/alfresco/site-services-context.xml | 2 +- .../email/InboundSMTP/inboundSMTP-context.xml | 3 - .../workflow/adhoc_processdefinition.xml | 1 + .../handler/AbstractEmailMessageHandler.java | 49 ++--- .../filesys/NfsServerNodeMonitor.java | 69 ++---- .../auth/nfs/AlfrescoRpcAuthenticator.java | 205 ++++++++---------- .../filesys/repo/ContentDiskDriver.java | 88 +++++--- .../org/alfresco/repo/avm/AVMNodeService.java | 11 +- .../repo/domain/node/AbstractNodeDAOImpl.java | 43 ++-- .../alfresco/repo/domain/node/NodeDAO.java | 3 +- .../processor/workflow/DataKeyMatcher.java | 4 +- .../alfresco/repo/imap/ImapServiceImpl.java | 4 +- .../subsystems/SubsystemProxyFactory.java | 97 +++++++-- .../filefolder/FileFolderServiceImplTest.java | 103 +++------ .../repo/node/BaseNodeServiceTest.java | 7 + .../repo/node/db/DbNodeServiceImpl.java | 9 +- .../repo/rule/RuleServiceCoverageTest.java | 38 ++++ .../ruletrigger/OnMoveNodeRuleTrigger.java | 57 +++++ .../LuceneAlfrescoLuceneQueryLanguage.java | 13 +- .../repo/tagging/TaggingServiceImplTest.java | 11 +- .../repo/version/NodeServiceImpl.java | 9 + 31 files changed, 549 insertions(+), 372 deletions(-) create mode 100644 config/alfresco/ibatis/org.hibernate.dialect.Dialect/alfresco-util-SqlMap.xml create mode 100644 source/java/org/alfresco/repo/rule/ruletrigger/OnMoveNodeRuleTrigger.java diff --git a/config/alfresco/ehcache-default.xml b/config/alfresco/ehcache-default.xml index ba175cb324..a9e9b761e9 100644 --- a/config/alfresco/ehcache-default.xml +++ b/config/alfresco/ehcache-default.xml @@ -317,7 +317,7 @@ + diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/alfresco-util-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/alfresco-util-SqlMap.xml new file mode 100644 index 0000000000..b3a54a424c --- /dev/null +++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/alfresco-util-SqlMap.xml @@ -0,0 +1,11 @@ + + + + + + + + escape '\\' + + + \ No newline at end of file diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/avm-common-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/avm-common-SqlMap.xml index 65964bb2ce..f774adc86d 100644 --- a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/avm-common-SqlMap.xml +++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/avm-common-SqlMap.xml @@ -396,8 +396,8 @@ join alf_qname qn on (qn.id = asp.qname_id) join alf_namespace ns on (ns.id = qn.ns_id) where - ns.uri like ? and - qn.local_name like ? + ns.uri like ? and + qn.local_name like ? @@ -964,7 +964,7 @@ avm_child_entries where parent_id = ? and - name like ? + name like ? @@ -1246,7 +1246,7 @@ value2_prop_id = ? and value3_prop_id = pv3.id and pv3.persisted_type = 3 and - psv3.string_value like ? and + psv3.string_value like ? and prop1_id = pl.root_prop_id and psvk.string_value = ? and psvv.string_value = ? @@ -1268,7 +1268,7 @@ value2_prop_id = ? and value3_prop_id = pv3.id and pv3.persisted_type = 3 and - psv3.string_value like ? + psv3.string_value like ? ) diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/patch-common-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/patch-common-SqlMap.xml index d95d011f05..d1276e16a3 100644 --- a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/patch-common-SqlMap.xml +++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/patch-common-SqlMap.xml @@ -210,7 +210,7 @@ where n.type_qname_id = #{typeQNameId} and np.qname_id = #{propQNameId} and - np.string_value like #{namePattern} + np.string_value like #{namePattern}