From 9389d310aec633e5f7699eba1df89cb841c4c915 Mon Sep 17 00:00:00 2001
From: Dave Ward
Date: Wed, 8 Feb 2012 11:06:09 +0000
Subject: [PATCH] =?UTF-8?q?Merged=20V4.0-BUG-FIX=20to=20HEAD=20=20=20=2033?=
=?UTF-8?q?116:=20Allow=20multiple=20deferred=20requests=20per=20oplock=20?=
=?UTF-8?q?break,=20next=20level=20of=20fix=20for=20ALF-11935.=20=20=20=20?=
=?UTF-8?q?33136:=20Fix=20for=20ALF-12200:=20"Content=20type=20is=20not=20?=
=?UTF-8?q?recognized=20on=20creating=20document=20from=20source"=20=20=20?=
=?UTF-8?q?=2033137:=20Activities=20feed=20generator:=20change=20info=20lo?=
=?UTF-8?q?g=20messages=20to=20debug=20log=20messages=20=20=20=2033139:=20?=
=?UTF-8?q?ALF-12262=09View=20in=20Source=20Repository=20works=20incorrect?=
=?UTF-8?q?=20if=20the=20folder=20was=20created=20on=20target=20side=20at?=
=?UTF-8?q?=20first=20=20=20=2033141:=20Fix=20for=20ALF-12178=20"Bulk=20im?=
=?UTF-8?q?port=20-=20status=20page=20shows=20broken=20link=20(Initiate=20?=
=?UTF-8?q?another=20in-place=20import)"=20=20=20=2033144:=20Fixes=20ALF-1?=
=?UTF-8?q?1119:=20The=202=20tranformations=20didn't=20work=20-=20Segmenta?=
=?UTF-8?q?tion=20fault=20in=20ffmpeg=20-=20it=20looks=20like=20a=20bug=20?=
=?UTF-8?q?with=20ffmpeg=20and=20it=20was=20decided=20that=20compile/bug?=
=?UTF-8?q?=20fixing=20ffmpeg=20is=20not=20a=20priority=20at=20the=20momen?=
=?UTF-8?q?t.=20=20The=202=20entries=20have=20been=20commented=20out.=20?=
=?UTF-8?q?=20If=20they=20are=20required,=20the=20user=20should=20consult?=
=?UTF-8?q?=20the=20ffmpeg=20documentation=20for=20the=20correct=20version?=
=?UTF-8?q?=20&=20o/s=20at=20the=20time.=20=20=20=2033146:=20ALF-11345=20P?=
=?UTF-8?q?atch=20from=20Pavel=20Yurkevich=20to=20fix=20another=20VTI/SPP?=
=?UTF-8?q?=20problem=20with=20site=20names=20that=20start=20with=20Alfres?=
=?UTF-8?q?co=20=20=20=2033147:=20FTP=20implemented=20set=20modification?=
=?UTF-8?q?=20date/time=20command=20(MFMT).=20ALF-12105.=20=20=20=2033148:?=
=?UTF-8?q?=20ALF-12063=20Pull=20some=20of=20the=20VTI=20list=20type=20def?=
=?UTF-8?q?initions=20out=20to=20a=20common=20base=20class=20=20=20=203315?=
=?UTF-8?q?0:=20Merged=20BRANCHES/DEV/mward/schemacomp=20to=20BRANCHES/DEV?=
=?UTF-8?q?/V4.0-BUG-FIX:=20=20=20=20=20=20=2033076:=20ALF-12285:=20Allow?=
=?UTF-8?q?=20dumping=20of=20schema=20to=20XML=20via=20JMX=20=20=20=203315?=
=?UTF-8?q?1:=20Fix=20problems=20with=20FTP=20and=20UTF-8.=20JLAN-81.=20?=
=?UTF-8?q?=20=20=20When=20using=20the=20Java6=20Normalizer=20use=20the=20?=
=?UTF-8?q?NFC=20form.=20=20=20=2033158:=20Fix=20NFS=20server=20swallows?=
=?UTF-8?q?=20exceptions.=20ALF-11667.=20=20=20=20Startup=20exception=20de?=
=?UTF-8?q?tails=20are=20now=20saved.=20=20=20=2033160:=20Improve=20the=20?=
=?UTF-8?q?Vti/SPP=20exception=20message=20for=20the=20case=20of=20the=20V?=
=?UTF-8?q?ti=20port=20being=20already=20in=20use=20=20=20=2033161:=20ALF-?=
=?UTF-8?q?12063=20Additional=20SPP/Vti=20list=20info=20required=20for=20M?=
=?UTF-8?q?ac=20Office=202011=20support=20=20=20=2033162:=20Fixes:=20ALF-1?=
=?UTF-8?q?0322:=20Edit=20Dialogue=20gets=20out=20of=20sync=20if=20event?=
=?UTF-8?q?=20moved=20using=20FullCalendar=20(extends=20FullCalendar=20to?=
=?UTF-8?q?=20provide=20a=20callback=20after=20an=20event=20changes,=20whi?=
=?UTF-8?q?ch=20enables=20us=20to=20keep=20our=20event=20object=20up=20to?=
=?UTF-8?q?=20date).=20=20=20=2033163:=20Fixes:=20ALF-10248:=20Grey=20Plac?=
=?UTF-8?q?eholder=20image=20for=20unauthorised=20channels=20has=20now=20b?=
=?UTF-8?q?een=20replaced=20with=20yellow=20one.=20=20=20=2033164:=20Fixes?=
=?UTF-8?q?:=20ALF-11562;=20Refactors=20My=20Calendar=20dashlet=20to=20use?=
=?UTF-8?q?=20timezone=20aware=20ISO8601=20dates=20from=20updated=20Calend?=
=?UTF-8?q?ar=20API=20&=20removes=20obsolete=20properties=20from=20usereve?=
=?UTF-8?q?nts=20calendar=20API=20=20=20=2033165:=20Fixes:=20ALF-10645;=20?=
=?UTF-8?q?i18n=20label=20doesn't=20appear=20in=20property=20bundle.=20=20?=
=?UTF-8?q?=20=2033167:=20Fix=20for=20ALF-11970=20=20=20=2033168:=20Fix=20?=
=?UTF-8?q?for=20ALF-10565=20"Category=20manager=20in=20admin=20console=20?=
=?UTF-8?q?needs=20query=20not=20search"=20=20=20=20=20=20-=20i18n'd=20the?=
=?UTF-8?q?=20strings=20=20=20=2033178:=20Publishing:=20Fixes:=20ALF-11552?=
=?UTF-8?q?;=20Inline=20edit=20icon=20alignment=20issue=20fixed=20=20=20?=
=?UTF-8?q?=2033183:=20Minor=20fix=20to=20exception=20string=20in=20extend?=
=?UTF-8?q?Buffer().=20=20=20=2033194:=20ALF-10545:=20NodeServicePolicies#?=
=?UTF-8?q?onUpdateNodePolicy=20not=20adequate=20for=20NodeService#setType?=
=?UTF-8?q?=20=20=20=20=20=20=20*=20Added=20beforeSetNodeType=20and=20onSe?=
=?UTF-8?q?tNodeType=20policies=20=20=20=20=20=20=20*=20Both=20callbacks?=
=?UTF-8?q?=20have=20old=20and=20new=20types=20as=20parameters=20=20=20=20?=
=?UTF-8?q?33204:=20Fixes:=20ALF-11230,=20publishing=20tracking=20link=20o?=
=?UTF-8?q?pens=20in=20repository,=20not=20Doc=20Lib.=20Also=20fixes=20a?=
=?UTF-8?q?=20couple=20of=20other=20minor=20bugs:=20=20=20=20=20=20=20-=20?=
=?UTF-8?q?balloon=20pop=20up=20didn't=20appear=20when=20published=20from?=
=?UTF-8?q?=20Doc=20Details=20page=20=20=20=20=20=20=20-=20tracking=20link?=
=?UTF-8?q?=20appears=20black=20(on=20black)=20when=20hovered=20over.=20?=
=?UTF-8?q?=20=20=20=20=20=20-=20adds=20defensive=20code=20to=20prevent=20?=
=?UTF-8?q?an=20error=20if=20the=20expected=20element=20for=20the=20notifi?=
=?UTF-8?q?cation=20balloon=20isn't=20there.=20=20=20=2033212:=20Merged=20?=
=?UTF-8?q?BRANCHES/DEV/mward/schemacomp=20to=20BRANCHES/DEV/V4.0-BUG-FIX:?=
=?UTF-8?q?=20=20=20=20=20=20=2033211:=20ALF-12384:=20Failed=20schema=20du?=
=?UTF-8?q?mp=20can=20cause=20failure=20of=20repository=20start=20up=20=20?=
=?UTF-8?q?=20=2033217:=20Merged=20V3.4-BUG-FIX=20to=20V4.0-BUG-FIX=20=20?=
=?UTF-8?q?=20=20=20=20=2031840:=20Fix=20for=20ALF-10282=20-=20Web=20Brows?=
=?UTF-8?q?er=20freezes=20with=20large=20xml=20files=20Web=20form=20transf?=
=?UTF-8?q?ormation=20=20=20=20=20=20=2031987:=20Proper=20fix=20for=20ALF-?=
=?UTF-8?q?11489:=20'patch.sitesSpacePermissions'=20failed=20on=20upgrade?=
=?UTF-8?q?=202.2.8=20->=203.4.6=20=20=20=20=20=20=20=20=20=20-=20Just=20h?=
=?UTF-8?q?andle=20missing=20defined=20ACLs=20=20=20=20=20=20=2032341:=20F?=
=?UTF-8?q?ix=20for=20ALF-9883=20-=20WCM=20Forms:=20Changing=20'abstract'?=
=?UTF-8?q?=20type=20carries=20previously-added=20elements=20=20=20=20=20?=
=?UTF-8?q?=20=2032911:=20Add=20a=20(currently=20disabled)=20unit=20test?=
=?UTF-8?q?=20for=20ALF-10466=20-=20The=20HTML=20to=20Text=20transformer?=
=?UTF-8?q?=20(not=20Tika=20based)=20should=20take=20account=20of=20the=20?=
=?UTF-8?q?content=20encoding=20=20=20=20=20=20=2032912:=20Merged=20BRANCH?=
=?UTF-8?q?ES/DEV/BELARUS/V3.4-BUG-FIX-2011=5F10=5F13=20to=20BRANCHES/DEV/?=
=?UTF-8?q?V3.4-BUG-FIX=20with=20changes=20+=20unit=20testing:=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=2031742:=20ALF-10466=20-=20The=20HTML=20to=20Te?=
=?UTF-8?q?xt=20converter=20needs=20to=20take=20account=20of=20the=20Encod?=
=?UTF-8?q?ing=20set=20on=20the=20Content=20Property,=20to=20be=20able=20t?=
=?UTF-8?q?o=20correctly=20index=20MBCS=20text=20in=20wiki=20pages=20(and?=
=?UTF-8?q?=20others)=20=20=20=20=20=20=2032946:=20ALF-12161:=20Merged=20P?=
=?UTF-8?q?ATCHES/V3.4.5=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?32921:=20Merged=20DEV/TEMPORARY=20to=20PATCHES/V3.4.5=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=2032913:=20ALF-11440:=20Content=20M?=
=?UTF-8?q?anager=20unable=20to=20edit=20content=20from=20another=20user?=
=?UTF-8?q?=20sandbox=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20In=20?=
=?UTF-8?q?order=20to=20allow=20a=20Content=20Manager=20to=20edit=20a=20lo?=
=?UTF-8?q?cked=20document=20in=20other=20user's=20sandbox,=20it=20is=20ne?=
=?UTF-8?q?eded=20to=20modify=20the=20AVMLockingAwareService.grabLock().?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20The=20'lockStat?=
=?UTF-8?q?e'=20variable=20could=20be=20set=20to=20'LOCK=5FOWNER',=20if=20?=
=?UTF-8?q?a=20user=20is=20ContentManager=20to=20bypass=20the=20check.=20?=
=?UTF-8?q?=20=20=20=20=20=2032964:=20Fixes=20ALF-11054:=20Sharepoint=20-?=
=?UTF-8?q?=20Wrong=20sorting=20by=20date=20=20=20=20=20=20=20=20=20-=20in?=
=?UTF-8?q?corporated=20patch=20from=20investigation=20team=20=20=20=20=20?=
=?UTF-8?q?=20=2032967:=20Merged=20BRANCHES/DEV/BELARUS/V3.4-BUG-FIX-2011?=
=?UTF-8?q?=5F10=5F13=20to=20BRANCHES/DEV/V3.4-BUG-FIX:=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=2031828:=20Fixes=20ALF-10720:=20Webform=20performance?=
=?UTF-8?q?=20improvement=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20M?=
=?UTF-8?q?inimize=20database=20usage=20by=20adding=20new=20variable=20to?=
=?UTF-8?q?=20FormWrapper=20that=20holds=20a=20form's=20name.=20=20=20=20?=
=?UTF-8?q?=20=20=2032969:=20Fixes=20ALF-10471:=20Cannot=20correctly=20rem?=
=?UTF-8?q?ove=20users=20from=20email=20notification=20rule=20list=20=20?=
=?UTF-8?q?=20=20=20=20=2032980:=20Merged=20DEV/TEMPORARY=20to=20V3.4-BUG-?=
=?UTF-8?q?FIX=20=20=20=20=20=20=20=20=20=2032961:=20ALF-12132:=20Set=20"c?=
=?UTF-8?q?ommon-placeholder-configurer"=20as=20parent=20for=20"lotusWSPla?=
=?UTF-8?q?ceholderConfigurer"=20bean.=20=20=20=20=20=20=2032996:=20ALF-12?=
=?UTF-8?q?184:=20SchemaBootstrap=20must=20use=20same=20assumptions=20as?=
=?UTF-8?q?=20PatchServiceImpl=20when=20deciding=20whether=20an=20alternat?=
=?UTF-8?q?ive=20patch=20succeeded=20=20=20=20=20=20=20-=20Fixes=20regress?=
=?UTF-8?q?ion=20introduced=20by=20r31972=20/=20ALF-11489=20=20=20=20=20?=
=?UTF-8?q?=20=2033068:=20Added=20suggested=20fix=20to=20commit=20any=20cu?=
=?UTF-8?q?rrent=20transactions=20in=20the=20NFS=20file=20expiry=20thread.?=
=?UTF-8?q?=20ALF-11827.=20=20=20=20=20=20=2033077:=20ALF-10142:=20Allow?=
=?UTF-8?q?=20TinyMCE=20to=20accept=20=20element=20when=20editing=20?=
=?UTF-8?q?HTML=20files=20inline=20in=20Share.=20=20=20=20=20=20=2033094:?=
=?UTF-8?q?=20Fix=20for=20ACT=20#15024-37148=20(no=20JIRA=20yet)=20=20=20?=
=?UTF-8?q?=20=20=20=20=20-=20issue=20where=20in=20a=20load=20balanced=20S?=
=?UTF-8?q?hare=20environment=20(multiple=20web-tiers=20behind=20a=20rever?=
=?UTF-8?q?se=20proxy)=20the=20modification=20to=20the=20template=20layout?=
=?UTF-8?q?=20selection=20for=20a=20site=20or=20user=20dashboard=20would?=
=?UTF-8?q?=20not=20be=20reflected=20in=20all=20servers.=20=20=20=20=20=20?=
=?UTF-8?q?=2033118:=20ALF-12278:=20Prevent=20the=20copying=20over=20of=20?=
=?UTF-8?q?headers=20specific=20to=20a=20POST=20request=20on=20to=20the=20?=
=?UTF-8?q?touch=20GET=20request=20=20=20=20=20=20=2033138:=20Upgraded=20S?=
=?UTF-8?q?pringSurf=20to=201.0.0=20rev=20968=20=20=20=20=20=20=2033140:?=
=?UTF-8?q?=20Added=20missing=20json-simple=20jar=20to=203rd=20party=20ecl?=
=?UTF-8?q?ipse=20classpath,=20which=20bizarrely=20is=20used=20to=20genera?=
=?UTF-8?q?te=20the=20JUnit=20cmd=20line=20unit=20test=20classpath,=20no?=
=?UTF-8?q?=20really.=20=20=20=20=20=20=2033145:=20Fix=20for=20native=20FT?=
=?UTF-8?q?P=20timestamps=20returned=20in=20GMT=20timezone=20format.=20ALF?=
=?UTF-8?q?-11986.=20=20=20=20=20=20=2033175:=20ALF-12366:=20Cope=20with?=
=?UTF-8?q?=20read=20committed=20DB=20behaviour=20in=20AbstractReindexComp?=
=?UTF-8?q?onent.reindexTransaction()=20=20=20=20=20=20=2033179:=20ALF-123?=
=?UTF-8?q?44=20CLONE=20-=20Copyright=20notice=20shows=20Alfresco=20Softwa?=
=?UTF-8?q?re,=20Inc.=20=C2=A9=202005-2011=20All=20rights=20reserved....?=
=?UTF-8?q?=20should=20now=20be=20to=202012=20as=20that=20is=20when=20we?=
=?UTF-8?q?=20will=20release=203.4.7=20=20=20=20=20=20=20=20=20=20=20-=20B?=
=?UTF-8?q?eing=20done=20in=203.4.8=20not=203.4.7=20=20=20=20=20=20=203319?=
=?UTF-8?q?0:=20Latest=20SpringSurf=20libs:=20=20=20=20=20=20=20=20-=20muc?=
=?UTF-8?q?h=20improved=20handling=20of=20multiple=20connections=20and=20c?=
=?UTF-8?q?onnection=20reuse=20in=20RemoteClient=20=20=20=20=20=20=20=20-?=
=?UTF-8?q?=20improves=20connection=20reuse=20generally,=20but=20also=20mu?=
=?UTF-8?q?ch=20more=20stable=20under=20load=20balancing=20condition=20wit?=
=?UTF-8?q?h=20multiple=20Share=20web-tiers=20behind=20a=20reverse=20proxy?=
=?UTF-8?q?=20=20=20=20=20=20=2033193:=20ALF-12344=20CLONE=20-=20Copyright?=
=?UTF-8?q?=20notice=20shows=20Alfresco=20Software,=20Inc.=20=C2=A9=202005?=
=?UTF-8?q?-2011=20All=20rights=20reserved....=20should=20now=20be=20to=20?=
=?UTF-8?q?2012=20as=20that=20is=20when=20we=20will=20release=203.4.7=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20-=20Found=20a=20few=20more=20havi?=
=?UTF-8?q?ng=20followed=20previous=20date=20changes=20and=20searches=20?=
=?UTF-8?q?=20=20=20=20=20=2033203:=20Fix=20for=20HttpClient=20issue:=20Er?=
=?UTF-8?q?ror=20status=20500=20Unbuffered=20entity=20enclosing=20request?=
=?UTF-8?q?=20can=20not=20be=20repeated.=20=20=20=20=20=20=2033206:=20Fix?=
=?UTF-8?q?=20to=20FormUIGet=20-=20no=20need=20to=20manually=20patch=20up?=
=?UTF-8?q?=20the=20JSON=20request=20since=20rev=2033138=20(SpringSurf=201?=
=?UTF-8?q?.0.0)=20=20=20=2033218:=20Fix=20for=20ALF-11868=20"CMIS:=20remo?=
=?UTF-8?q?veAcl()=20function=20doesn't=20work=20via=20atompub."=20=20=20?=
=?UTF-8?q?=2033220:=20Merged=20PATCHES/V3.4.6=20to=20V4.0-BUG-FIX=20=20?=
=?UTF-8?q?=20=20=20=20=2032405:=20Merged=20V3.4.6=20(3.4.6.1)=20to=20V3.4?=
=?UTF-8?q?.1=20(3.4.1.24)=20=20=20=20=20=20=20=20=20=2032404:=20ALF-11727?=
=?UTF-8?q?=20CLONE=20-=20Pending=20Invite=20Search=20doesn't=20return=20a?=
=?UTF-8?q?nything=20if=20there's=20more=20than=201000=20pending=20invites?=
=?UTF-8?q?=20across=20all=20sites.=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?Removed=20read=20only=20transaction=20from=20invites.get.desc.x?=
=?UTF-8?q?ml=20as=20it=20broke=20InviteServiceTest=20testRejectInvite=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=2032397:=20ALF-11727=20CLONE=20-=20Pen?=
=?UTF-8?q?ding=20Invite=20Search=20doesn't=20return=20anything=20if=20the?=
=?UTF-8?q?re's=20more=20than=201000=20pending=20invites=20across=20all=20?=
=?UTF-8?q?sites.=20=20=20=20=20=20=20=20=20=20=20=20=20Return=20first=202?=
=?UTF-8?q?00=20invitations=20(similar=20to=204.0=20paging)=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20Transaction=20used=20by=20the=20invites?=
=?UTF-8?q?.get=20is=20now=20read=20only=20so=20does=20not=20force=20a=20f?=
=?UTF-8?q?lush=20of=20caches.=20=20=20=20=20=20=2032503:=20Merged=20PATCH?=
=?UTF-8?q?ES/V3.4.6=20to=20PATCHES/V3.4.1=20=20=20=20=20=20=20=20=20=2032?=
=?UTF-8?q?501:=20ALF-11727:=20Reinstated=20read-only=20transaction=20arou?=
=?UTF-8?q?nd=20invites.get=20and=20prevented=20it=20from=20trying=20to=20?=
=?UTF-8?q?lazily=20create=20persons=20from=20rejected=20invites=20that=20?=
=?UTF-8?q?had=20previously=20been=20deleted=20by=20InviteHelper.cleanUpSt?=
=?UTF-8?q?aleInviteeResources!=20=20=20=20=20=20=2032650:=20ALF-11872:=20?=
=?UTF-8?q?When=20there=20are=20a=20lot=20of=20pending=20invites,=20deleti?=
=?UTF-8?q?on=20of=20a=20site=20causes=20high=20and=20prolonged=20CPU=20ac?=
=?UTF-8?q?tivity=20and=20can=20take=20a=20long=20time=20to=20complete=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20Put=20back=20in=20cut=20off=20at=202?=
=?UTF-8?q?00=20invites=20(removed=20in=20last=20merge)=20for=20UI,=20unle?=
=?UTF-8?q?ss=20we=20know=20that=20we=20need=20all=20of=20them=20internall?=
=?UTF-8?q?y=20=20=20=20=20=20=2032775:=20ALF-11872=20When=20there=20are?=
=?UTF-8?q?=20a=20lot=20of=20pending=20invites,=20deletion=20of=20a=20site?=
=?UTF-8?q?=20causes=20high=20and=20prolonged=20CPU=20activity=20and=20can?=
=?UTF-8?q?=20take=20a=20long=20time=20to=20complete=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20Even=20more=20changes:=20=20=20=20=20=20=20=20=20=20-?=
=?UTF-8?q?=20reduce=20number=20of=20queries=20required=20to=20list=20pend?=
=?UTF-8?q?ing=20invites=20to=20a=20site=20(uses=20moderated=20and=20nomin?=
=?UTF-8?q?ated=20caches=20and=20only=20looks=20up=20IDs=20if=20possible)?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20-=20change=20hibernate=20cache=20?=
=?UTF-8?q?and=20flush=20modes=20(to=20avoid=20cache=20and=20the=20related?=
=?UTF-8?q?=20slow=20flush),=20for=20queries=20and=20cancel=20of=20workflo?=
=?UTF-8?q?ws=20=20=20=20=20=20=20=20=20=20-=20modified=20js=20which=20was?=
=?UTF-8?q?=20making=20a=20query=20for=20each=20person=20in=20order=20to?=
=?UTF-8?q?=20work=20out=20if=20they=20were=20already=20in=20a=20pending?=
=?UTF-8?q?=20invites=20list=20=20=20=20=20=20=2032838:=20ALF-11872=20When?=
=?UTF-8?q?=20there=20are=20a=20lot=20of=20pending=20invites,=20deletion?=
=?UTF-8?q?=20of=20a=20site=20causes=20high=20and=20prolonged=20CPU=20acti?=
=?UTF-8?q?vity=20and=20can=20take=20a=20long=20time=20to=20complete=20=20?=
=?UTF-8?q?=20=20=20=20=20-=20JBPMEngine=20now=20supports=20batch=20cancel?=
=?UTF-8?q?Workflows()=20method=20for=20canceling=20multiple=20workflows?=
=?UTF-8?q?=20at=20the=20same=20time=20(e.g.=20on=20deleting=20a=20site)?=
=?UTF-8?q?=20=20=20=20=20=20=20-=20Manual=20flushes=20only=20used=20at=20?=
=?UTF-8?q?two=20points=20in=20the=20batch=20to=20minimize=20dirty=20check?=
=?UTF-8?q?ing=20overhead=20and=20yet=20avoid=20FK=20errors=20=20=20=20=20?=
=?UTF-8?q?=20=20-=20Performance=20implications=20still=20to=20be=20checke?=
=?UTF-8?q?d=20but=20at=20least=20functionally=20correct=20=20=20=20=20=20?=
=?UTF-8?q?=20-=20Corrected=20JPDL=20source=20jar=20=20=20=20=20=20=203285?=
=?UTF-8?q?7:=20ALF-11872=20When=20there=20are=20a=20lot=20of=20pending=20?=
=?UTF-8?q?invites,=20deletion=20of=20a=20site=20causes=20high=20and=20pro?=
=?UTF-8?q?longed=20CPU=20activity=20and=20can=20take=20a=20long=20time=20?=
=?UTF-8?q?to=20complete=20=20=20=20=20=20=20=20=20=20-=20Search=20for=20P?=
=?UTF-8?q?ending=20invites=20was=20slow=20on=20sites=20with=20>=200=20pen?=
=?UTF-8?q?ding=20invites=20(it=20was=20getting=20invites=20for=20all=20si?=
=?UTF-8?q?tes)=20=20=20=20=20=20=2032861:=20ALF-11872=20When=20there=20ar?=
=?UTF-8?q?e=20a=20lot=20of=20pending=20invites,=20deletion=20of=20a=20sit?=
=?UTF-8?q?e=20causes=20high=20and=20prolonged=20CPU=20activity=20and=20ca?=
=?UTF-8?q?n=20take=20a=20long=20time=20to=20complete=20=20=20=20=20=20=20?=
=?UTF-8?q?-=20JBPMEngine=20uses=20an=20abstract=20list=20to=20'lazily'=20?=
=?UTF-8?q?convert=20hibernate=20objects=20on=20demand=20and=20avoid=20bat?=
=?UTF-8?q?ch=20loading=20too=20many=20objects=20=20=20=20=20=20=2032868:?=
=?UTF-8?q?=20ALF-11872=20When=20there=20are=20a=20lot=20of=20pending=20in?=
=?UTF-8?q?vites,=20deletion=20of=20a=20site=20causes=20high=20and=20prolo?=
=?UTF-8?q?nged=20CPU=20activity=20and=20can=20take=20a=20long=20time=20to?=
=?UTF-8?q?=20complete=20=20=20=20=20=20=20-=20Rationalization=20of=20batc?=
=?UTF-8?q?h=20fetching=20at=20hibernate=20layer=20=20=20=20=20=20=2032881?=
=?UTF-8?q?:=20ALF-11872:=20The=20saga=20goes=20on!=20Corrected=20empty=20?=
=?UTF-8?q?list=20handling=20in=20InvitationServiceImpl.searchInvitation()?=
=?UTF-8?q?.=20=20=20=20=20=20=2032927:=20ALF-11872:=20Fix=20parameter=20v?=
=?UTF-8?q?alidation=20in=20InvitationServiceImpl.getInvitationTasks()=20?=
=?UTF-8?q?=20=20=20=20=20=2032936:=20ALF-11872:=20A=20site=20with=201200?=
=?UTF-8?q?=20pending=20invites=20can=20now=20be=20deleted=20without=20the?=
=?UTF-8?q?=20UI=20timing=20out=20=20=20=20=20=20=20-=20Pending=20invitati?=
=?UTF-8?q?on=20workflows=20are=20cancelled=20in=20an=20asynchronous=20act?=
=?UTF-8?q?ion=20=20=20=20=20=20=20-=20The=20asynchronous=20action=20compl?=
=?UTF-8?q?etes=20about=203=20minutes=20later,=20due=20to=20the=20massive?=
=?UTF-8?q?=20number=20of=20individual=20delete=20statements=20being=20run?=
=?UTF-8?q?=20by=20Hibernate=20=20=20=20=20=20=20-=20Creating=20the=20rows?=
=?UTF-8?q?=20in=20the=20first=20place=20took=2020=20minutes!=20=20=20=20?=
=?UTF-8?q?=20=20=2032956:=20ALF-11872:=20Corrected=20filtering=20in=20Inv?=
=?UTF-8?q?itationServiceImpl.getInvitationTasks()=20to=20only=20include?=
=?UTF-8?q?=20start=20tasks=20=20=20=20=20=20=20-=20plus=20recautionary=20?=
=?UTF-8?q?sleep()=20in=20InviteServiceTest.tearDown()=20to=20ensure=20asy?=
=?UTF-8?q?nchronous=20invite=20deletions=20complete=20=20=20=20=20=20=203?=
=?UTF-8?q?3169:=20ALF-12312=20'org.hibernate.LazyInitializationException:?=
=?UTF-8?q?=20could=20not=20initialize=20proxy=20-=20no=20Session'=20when?=
=?UTF-8?q?=20clicking=20on=20a=20Pending=20Invite=20workflow=20task=20in?=
=?UTF-8?q?=20JSF=20=20=20=20=20=20=20=20=20=20-=20Follow=20on=20from=20AL?=
=?UTF-8?q?F-11872:=20Only=20use=20lazyloaded=20WorkflowTasks=20from=20JBP?=
=?UTF-8?q?MEngine.getWorkflowTasks()=20when=20we=20are=20using=20the=20sa?=
=?UTF-8?q?me=20session=20(currently=20=20=20=20=20=20=20=20=20=20=20=20on?=
=?UTF-8?q?ly=20done=20from=20InvitationService).=20The=20fallback=20is=20?=
=?UTF-8?q?to=20assume=20it=20is=20not=20the=20same=20session=20and=20retu?=
=?UTF-8?q?rn=20a=20normal=20list=20of=20Workflows.=20=20=20=2033221:=20Me?=
=?UTF-8?q?rged=20V3.4-BUG-FIX=20to=20V4.0-BUG-FIX=20(RECORD=20ONLY)=20=20?=
=?UTF-8?q?=20=20=20=20=2030463:=20L10N=20Updates=20from=20Gloria=20(based?=
=?UTF-8?q?=20on=20r30332):=20Fixes=20ALF-8211=20and=20new=20string=20upda?=
=?UTF-8?q?tes=20=20=20=20=20=20=2030473:=20Merged=20HEAD=20to=20V3.4-BUG-?=
=?UTF-8?q?FIX=20=20=20=20=20=20=20=20=20=2030468:=20Fixed=20ALF-10280:=20?=
=?UTF-8?q?Slow=20to=20report=20=C2=AE=20Duplicate=20entry=20=C2=AF=20in?=
=?UTF-8?q?=20database.=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?-=20DuplicateChildNodeNameException=20implements=20DoNotRetryEx?=
=?UTF-8?q?ception=20=20=20=20=20=20=2030685:=20Merged=20HEAD=20to=20V3.4-?=
=?UTF-8?q?BUG-FIX=20=20=20=20=20=20=20=20=20=2030679:=20Unit=20test=20for?=
=?UTF-8?q?=20ALF-1017=20-=20Non=20site=20content=20in=20the=20Sites=20Spa?=
=?UTF-8?q?ce=20=20=20=20=20=20=20=20=20=2030683:=20ALF-1017=20Remove=20EV?=
=?UTF-8?q?ERYONE=20Contributor=20permissions=20from=20/Company=20Home/Sit?=
=?UTF-8?q?es/,=20to=20avoid=20misc=20nodes=20being=20created=20in=20there?=
=?UTF-8?q?=20by=20mistake=20by=20users,=20and=20update=20the=20SiteServic?=
=?UTF-8?q?e=20to=20runAsSystem=20when=20creating=20the=20Site=20node=20?=
=?UTF-8?q?=20=20=20=20=20=2030693:=20Merged=20HEAD=20to=20V3.4-BUG-FIX=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=2030692:=20Fix=20ALF-1017=20specific?=
=?UTF-8?q?=20test=20following=20ALF-1017=20changes=20to=20permissions=20?=
=?UTF-8?q?=20=20=20=20=20=2030808:=20Fixes:=20ALF-10485=20(minor=20text?=
=?UTF-8?q?=20update)=20=20=20=20=20=20=2030873:=20Latest=20L10N=20update?=
=?UTF-8?q?=20from=20Gloria=20(based=20on=20r30698):=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20-=20Adds=20Web=20Quick=20Start=20translations=20(back?=
=?UTF-8?q?=20port=20from=204.0)=20=20=20=20=20=20=20=20=20=20-=20Adds/upd?=
=?UTF-8?q?ates=20new=20or=20previously=20missing=20strings=20=20=20=20=20?=
=?UTF-8?q?=20=2031019:=20Merged=20HEAD=20to=20V3.4-BUG-FIX=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=2028974:=20added=20double-checks=20for=20associati?=
=?UTF-8?q?ons=20when=20a=20potential=20failure=20is=20detected=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=2031018:=20Fixed=20ALF-9591:=20Integrity=20c?=
=?UTF-8?q?heck:=20Association=20source=20multiplicity=20checking=20is=20i?=
=?UTF-8?q?ncorrect=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20-=20?=
=?UTF-8?q?Drop=20checks=20for=20source=20multiplicity=20when=20no=20assoc?=
=?UTF-8?q?iations=20are=20pointing=20to=20a=20type/aspect=20instance=20?=
=?UTF-8?q?=20=20=20=20=20=2031045:=20Merged=20HEAD=20to=20V3.4-BUG-FIX=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=2031044:=20Performance=20improvements?=
=?UTF-8?q?=20for=20PATH=20queries=20relating=20to=20Share=20dashboard=20d?=
=?UTF-8?q?ashlets=20and=20document=20library.=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20-=20tweaks=20to=20generation=20of=20PAT?=
=?UTF-8?q?H=20queries=20-=20hugely=20improves=20performance=20when=20deal?=
=?UTF-8?q?ing=20with=201000's=20site=20memberships=20=20=20=20=20=20=2031?=
=?UTF-8?q?160:=20Merged=20HEAD=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=2031156:=20Various=20Share=20search=20related=20fixes=20?=
=?UTF-8?q?as=20spotted=20by=20Andy:=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20-=20increased=20resultset=20size=20that=20is=20u?=
=?UTF-8?q?sed=20to=20retrieve=20raw=20results=20from=20query=20before=20S?=
=?UTF-8?q?hare=20specific=20results=20are=20filtered=20-=20this=20means?=
=?UTF-8?q?=20sensible=20results=20are=20now=20shown=20from=20large=20repo?=
=?UTF-8?q?sitory=20wide=20and=20sorted=20queries,=20previously=20results?=
=?UTF-8?q?=20would=20be=20"missing"=20if=20they=20dropped=20out=20of=20th?=
=?UTF-8?q?e=20resultset=20prefiltering=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20-=20fix=20to=20Share=20Search=20component=20t?=
=?UTF-8?q?o=20correctly=20display=20if=20more=20than=20N=20results=20were?=
=?UTF-8?q?=20found=20in=20the=20repository=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20-=20fix=20to=20add=20default=20TYPE=20clau?=
=?UTF-8?q?se=20to=20generated=20Share=20search=20if=20no=20other=20TYPE?=
=?UTF-8?q?=20is=20specified=20-=20this=20reduces=20masses=20of=20potentia?=
=?UTF-8?q?lly=20matches=20results=20from=20repository=20wide=20searches?=
=?UTF-8?q?=20that=20would=20otherwise=20need=20to=20be=20post-filtered=20?=
=?UTF-8?q?=20=20=20=20=20=2031345:=20Merged=20HEAD=20to=20BRANCHES/DEV/V3?=
=?UTF-8?q?.4-BUG-FIX:=20=20=20=20=20=20=20=20=20=2031330:=20Fixed=20WCM?=
=?UTF-8?q?=20bulkImport's=20importDirectory=20=20=20=20=20=20=2031442:=20?=
=?UTF-8?q?Merged=20HEAD=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?31441:=20Fixed=20ALF-11014:=20Content=20output=20stream=20close?=
=?UTF-8?q?=20errors=20are=20absorbed=20silently=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20-=20Found=20while=20testing=20XAMcon?=
=?UTF-8?q?tentStore=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20-?=
=?UTF-8?q?=20Pulled=20stream=20copy=20code=20into=20AbstractContentWriter?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20-=20OutputSt?=
=?UTF-8?q?ream=20closure=20(write-side)=20exception=20is=20rethrown=20to?=
=?UTF-8?q?=20allow=20full=20rollback,=20etc=20=20=20=20=20=20=2031444:=20?=
=?UTF-8?q?Merged=20HEAD=20to=20BRANCHES/DEV/V3.4-BUG-FIX:=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=2031383:=20MLPropertyInterceptor=20performance=20i?=
=?UTF-8?q?mprovements:=20=20=20=20=20=20=2031758:=20Merged=20V3.3=20to=20?=
=?UTF-8?q?V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2031757:=20ALF-11279:?=
=?UTF-8?q?=20Fixed=20RetryingTransactionInterceptor=20so=20that=20it=20ac?=
=?UTF-8?q?tually=20behaves=20like=20an=20interceptor=20and=20doesn't=20th?=
=?UTF-8?q?row=20away=20the=20rest=20of=20the=20interceptor=20chain!=20=20?=
=?UTF-8?q?=20=20=20=20=2031798:=20Merged=20V3.3=20to=20V3.4-BUG-FIX=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=2031773:=20ALF-11279:=20Further=20Retryin?=
=?UTF-8?q?gTransactionInterceptor=20fixes=20-=20must=20do=20mark=20for=20?=
=?UTF-8?q?rollback=20on=20propagating=20transactions=20=20=20=20=20=20=20?=
=?UTF-8?q?32051:=20ALF-7195:=20Merge=20HEAD=20(4.0)=20to=20V3.4-BUG-FIX?=
=?UTF-8?q?=20(3.4.7)=20=20=20=20=20=20=20=20=20=20Merge=20was=20simply=20?=
=?UTF-8?q?to=20take=20HEAD=20version=20to=20pick=20up=20changes=20made=20?=
=?UTF-8?q?by=20Derek=20to=20DisableAuditableBehaviourInterceptor=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=2032047:=20ALF-8882=20Edit=20Online:=20Modif?=
=?UTF-8?q?ier=20and=20Modified=20date=20are=20changed=20even=20no=20chang?=
=?UTF-8?q?es=20were=20applied=20=20=20=20=20=20=20=20=20=20=20=20=20-=20n?=
=?UTF-8?q?eeded=20to=20turn=20off=20ASPECT=5FAUDITABLE=20on=20removePrope?=
=?UTF-8?q?rty=20which=20is=20called=20on=20unlock=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20-=20added=20code=20to=20not=20enable=20this=20as?=
=?UTF-8?q?pect=20early=20if=20nested=20calls=20were=20made=20(this=20is?=
=?UTF-8?q?=20not=20done,=20but=20is=20safer=20this=20way)=20=20=20=20=20?=
=?UTF-8?q?=20=2032088:=20Merging=20HEAD=20to=203.4-BUG-FIX:=20=20=20=20?=
=?UTF-8?q?=20=20=20r32063:=20ALF-10947=20Fixed=20issue=20where=20repeatin?=
=?UTF-8?q?g=20JBPM=20timer=20was=20causing=20an=20infinite=20loop=20if=20?=
=?UTF-8?q?an=20exception=20was=20thrown=20within=20the=20timer=20event.?=
=?UTF-8?q?=20=20=20=20=20=20=2032475:=20ALF-11727=20Improved=20performanc?=
=?UTF-8?q?e=20of=20pending=20invites=20search.=20=20=20=20=20=20=2032512:?=
=?UTF-8?q?=20Incremented=20version=20revision=20for=203.4.8=20=20=20=20?=
=?UTF-8?q?=20=20=2032917:=20ALF-12133:=20Merged=20HEAD=20to=20V3.4-BUG-FI?=
=?UTF-8?q?X=20=20=20=20=20=20=20=20=20=2032906:=20ALF-12068=20-=20Zimbra?=
=?UTF-8?q?=20desktop=20-=20corrected=20InternalDateAsString.=20=20=20=20?=
=?UTF-8?q?=20=20=2032923:=20ALF-12133:=20Merged=20HEAD=20to=20V3.4-BUG-FI?=
=?UTF-8?q?X=20=20=20=20=20=20=20=20=20=2032918:=20ALF-12133=20-=20Attempt?=
=?UTF-8?q?=202=20to=20get=20Imap=20internal=20date=20correct.=20=20=20=20?=
=?UTF-8?q?=20=20=2033021:=20ALF-9878:=20Merge=20V3.4.1=20(3.4.1.25)=20to?=
=?UTF-8?q?=20V3.4-BUG-FIX=20(3.4.8)=20=20=20=20=20=20=20=20=20=2032956:?=
=?UTF-8?q?=20ALF-11872:=20Corrected=20filtering=20in=20InvitationServiceI?=
=?UTF-8?q?mpl.getInvitationTasks()=20to=20only=20include=20start=20tasks?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20-=20plus=20recautionary=20sleep()?=
=?UTF-8?q?=20in=20InviteServiceTest.tearDown()=20to=20ensure=20asynchrono?=
=?UTF-8?q?us=20invite=20deletions=20complete=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=2032936:=20ALF-11872:=20A=20site=20with=201200=20pending=20inv?=
=?UTF-8?q?ites=20can=20now=20be=20deleted=20without=20the=20UI=20timing?=
=?UTF-8?q?=20out=20=20=20=20=20=20=20=20=20=20-=20Pending=20invitation=20?=
=?UTF-8?q?workflows=20are=20cancelled=20in=20an=20asynchronous=20action?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20-=20The=20asynchronous=20action?=
=?UTF-8?q?=20completes=20about=203=20minutes=20later,=20due=20to=20the=20?=
=?UTF-8?q?massive=20number=20of=20individual=20delete=20statements=20bein?=
=?UTF-8?q?g=20run=20by=20Hibernate=20=20=20=20=20=20=20=20=20=20-=20Creat?=
=?UTF-8?q?ing=20the=20rows=20in=20the=20first=20place=20took=2020=20minut?=
=?UTF-8?q?es!=20=20=20=20=20=20=20=20=20=2032927:=20ALF-11872:=20Fix=20pa?=
=?UTF-8?q?rameter=20validation=20in=20InvitationServiceImpl.getInvitation?=
=?UTF-8?q?Tasks()=20=20=20=20=20=20=20=20=20=2032881:=20ALF-11872:=20The?=
=?UTF-8?q?=20saga=20goes=20on!=20Corrected=20empty=20list=20handling=20in?=
=?UTF-8?q?=20InvitationServiceImpl.searchInvitation().=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=2032868:=20ALF-11872=20When=20there=20are=20a=20lot?=
=?UTF-8?q?=20of=20pending=20invites,=20deletion=20of=20a=20site=20causes?=
=?UTF-8?q?=20high=20and=20prolonged=20CPU=20activity=20and=20can=20take?=
=?UTF-8?q?=20a=20long=20time=20to=20complete=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20-=20Rationalization=20of=20batch=20fetching=20at=20hibernate?=
=?UTF-8?q?=20layer=20=20=20=20=20=20=20=20=20=2032861:=20ALF-11872=20When?=
=?UTF-8?q?=20there=20are=20a=20lot=20of=20pending=20invites,=20deletion?=
=?UTF-8?q?=20of=20a=20site=20causes=20high=20and=20prolonged=20CPU=20acti?=
=?UTF-8?q?vity=20and=20can=20take=20a=20long=20time=20to=20complete=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20-=20JBPMEngine=20uses=20an=20abstract?=
=?UTF-8?q?=20list=20to=20'lazily'=20convert=20hibernate=20objects=20on=20?=
=?UTF-8?q?demand=20and=20avoid=20batch=20loading=20too=20many=20objects?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=2032857:=20ALF-11872=20When=20there?=
=?UTF-8?q?=20are=20a=20lot=20of=20pending=20invites,=20deletion=20of=20a?=
=?UTF-8?q?=20site=20causes=20high=20and=20prolonged=20CPU=20activity=20an?=
=?UTF-8?q?d=20can=20take=20a=20long=20time=20to=20complete=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20-=20Search=20for=20Pending=20invites=20?=
=?UTF-8?q?was=20slow=20on=20sites=20with=20>=200=20pending=20invites=20(i?=
=?UTF-8?q?t=20was=20getting=20invites=20for=20all=20sites)=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=2032838:=20ALF-11872=20When=20there=20are=20a=20lo?=
=?UTF-8?q?t=20of=20pending=20invites,=20deletion=20of=20a=20site=20causes?=
=?UTF-8?q?=20high=20and=20prolonged=20CPU=20activity=20and=20can=20take?=
=?UTF-8?q?=20a=20long=20time=20to=20complete=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20-=20JBPMEngine=20now=20supports=20batch=20cancelWorkflows()?=
=?UTF-8?q?=20method=20for=20canceling=20multiple=20workflows=20at=20the?=
=?UTF-8?q?=20same=20time=20(e.g.=20on=20deleting=20a=20site)=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20-=20Manual=20flushes=20only=20used=20at=20two?=
=?UTF-8?q?=20points=20in=20the=20batch=20to=20minimize=20dirty=20checking?=
=?UTF-8?q?=20overhead=20and=20yet=20avoid=20FK=20errors=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20-=20Performance=20implications=20still=20to=20be=20?=
=?UTF-8?q?checked=20but=20at=20least=20functionally=20correct=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20-=20Corrected=20JPDL=20source=20jar=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=2032775:=20ALF-11872=20When=20there=20are=20?=
=?UTF-8?q?a=20lot=20of=20pending=20invites,=20deletion=20of=20a=20site=20?=
=?UTF-8?q?causes=20high=20and=20prolonged=20CPU=20activity=20and=20can=20?=
=?UTF-8?q?take=20a=20long=20time=20to=20complete=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20Even=20more=20changes:=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20-=20reduce=20number=20of=20queries=20required=20?=
=?UTF-8?q?to=20list=20pending=20invites=20to=20a=20site=20(uses=20moderat?=
=?UTF-8?q?ed=20and=20nominated=20caches=20and=20only=20looks=20up=20IDs?=
=?UTF-8?q?=20if=20possible)=20=20=20=20=20=20=20=20=20=20=20=20=20-=20cha?=
=?UTF-8?q?nge=20hibernate=20cache=20and=20flush=20modes=20(to=20avoid=20c?=
=?UTF-8?q?ache=20and=20the=20related=20slow=20flush),=20for=20queries=20a?=
=?UTF-8?q?nd=20cancel=20of=20workflows=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20-=20modified=20js=20which=20was=20making=20a=20query=20fo?=
=?UTF-8?q?r=20each=20person=20in=20order=20to=20work=20out=20if=20they=20?=
=?UTF-8?q?were=20already=20in=20a=20pending=20invites=20list=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=2032650:=20ALF-11872:=20When=20there=20are=20a?=
=?UTF-8?q?=20lot=20of=20pending=20invites,=20deletion=20of=20a=20site=20c?=
=?UTF-8?q?auses=20high=20and=20prolonged=20CPU=20activity=20and=20can=20t?=
=?UTF-8?q?ake=20a=20long=20time=20to=20complete=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20Put=20back=20in=20cut=20off=20at=20200=20invites?=
=?UTF-8?q?=20(removed=20in=20last=20merge)=20for=20UI,=20unless=20we=20kn?=
=?UTF-8?q?ow=20that=20we=20need=20all=20of=20them=20internally=20=20=20?=
=?UTF-8?q?=20=20=20=2033143:=20Merged=20BRANCHES/V3.4-TEAM=20to=20BRANCHE?=
=?UTF-8?q?S/DEV/V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2025103:=20ALF-66?=
=?UTF-8?q?13=20-=20SpringSurf=20improvements=20to=20allow=20easier=20refa?=
=?UTF-8?q?ctoring=20of=20Document=20Details=20page=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20-=20removed=20manual=20request=20?=
=?UTF-8?q?level=20caching=20of=20remote=20calls=20responses=20in=20web-ti?=
=?UTF-8?q?er=20components=20-=20now=20completely=20automatic=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=2025138:=20Flattening=20of=20user=20preferences?=
=?UTF-8?q?=20remote=20calls=20-=20ensures=20/preferences=20hits=20the=20R?=
=?UTF-8?q?equestCachingConnector=20-=20reduces=20no.=20of=20remote=20call?=
=?UTF-8?q?s=20by=203=20for=20the=20doclib=20and=20by=204=20for=20a=20site?=
=?UTF-8?q?=20dashboard.=20=20=20=20=20=20=2033216:=20Merged=20PATCHES/V3.?=
=?UTF-8?q?4.1=20to=20V3.4-BUG-FIX=20(3.4.8)=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?32405:=20Merged=20V3.4.6=20(3.4.6.1)=20to=20V3.4.1=20(3.4.1.24)?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=2032404:=20ALF-9878=20/=20?=
=?UTF-8?q?ALF-11727=20CLONE=20-=20Pending=20Invite=20Search=20doesn't=20r?=
=?UTF-8?q?eturn=20anything=20if=20there's=20more=20than=201000=20pending?=
=?UTF-8?q?=20invites=20across=20all=20sites.=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20Removed=20read=20only=20transaction=20from?=
=?UTF-8?q?=20invites.get.desc.xml=20as=20it=20broke=20InviteServiceTest?=
=?UTF-8?q?=20testRejectInvite=20=20=20=20=20=20=20=20=20=20=20=20=2032397?=
=?UTF-8?q?:=20ALF-9878=20/=20ALF-11727=20CLONE=20-=20Pending=20Invite=20S?=
=?UTF-8?q?earch=20doesn't=20return=20anything=20if=20there's=20more=20tha?=
=?UTF-8?q?n=201000=20pending=20invites=20across=20all=20sites.=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20Return=20first=20200=20i?=
=?UTF-8?q?nvitations=20(similar=20to=204.0=20paging)=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20Transaction=20used=20by=20the=20invi?=
=?UTF-8?q?tes.get=20is=20now=20read=20only=20so=20does=20not=20force=20a?=
=?UTF-8?q?=20flush=20of=20caches.=20=20=20=20=20=20=20=20=20=2032503:=20M?=
=?UTF-8?q?erged=20PATCHES/V3.4.6=20to=20PATCHES/V3.4.1=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=2032501:=20ALF-9878=20/=20ALF-11727:=20Reins?=
=?UTF-8?q?tated=20read-only=20transaction=20around=20invites.get=20and=20?=
=?UTF-8?q?prevented=20it=20from=20trying=20to=20lazily=20create=20persons?=
=?UTF-8?q?=20from=20rejected=20invites=20that=20had=20previously=20been?=
=?UTF-8?q?=20deleted=20by=20InviteHelper.cleanUpStaleInviteeResources!=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=2032641:=20ALF-12387=20/=20ALF-11872:?=
=?UTF-8?q?=20Merged=20V3.4-BUG-FIX=20(3.4.8)=20to=20V3.4.1=20(3.4.1.25)?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=2032475:=20ALF-11?=
=?UTF-8?q?727=20Improved=20performance=20of=20pending=20invites=20search.?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=09=20=20=20=20=20(N=20Smith=20ch?=
=?UTF-8?q?anges=20to=20do=20with=20only=20using=20ONE=20search=20value=20?=
=?UTF-8?q?-=20faster=20as=20multiple=20are=20taken=20as=20ORs=20rather=20?=
=?UTF-8?q?than=20ANDs)=20=20=20=20=20=20=20=20=20=2032650:=20ALF-12387=20?=
=?UTF-8?q?/=20ALF-11872:=20When=20there=20are=20a=20lot=20of=20pending=20?=
=?UTF-8?q?invites,=20deletion=20of=20a=20site=20causes=20high=20and=20pro?=
=?UTF-8?q?longed=20CPU=20activity=20and=20can=20take=20a=20long=20time=20?=
=?UTF-8?q?to=20complete=20=20=20=20=20=20=20=20=20=20=20=20=20Put=20back?=
=?UTF-8?q?=20in=20cut=20off=20at=20200=20invites=20(removed=20in=20last?=
=?UTF-8?q?=20merge)=20for=20UI,=20unless=20we=20know=20that=20we=20need?=
=?UTF-8?q?=20all=20of=20them=20internally=20=20=20=20=20=20=20=20=20=2032?=
=?UTF-8?q?775:=20ALF-12387=20/=20ALF-11872=20When=20there=20are=20a=20lot?=
=?UTF-8?q?=20of=20pending=20invites,=20deletion=20of=20a=20site=20causes?=
=?UTF-8?q?=20high=20and=20prolonged=20CPU=20activity=20and=20can=20take?=
=?UTF-8?q?=20a=20long=20time=20to=20complete=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20Even=20more=20changes:=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20-=20reduce=20number=20of=20queries=20required=20to?=
=?UTF-8?q?=20list=20pending=20invites=20to=20a=20site=20(uses=20moderated?=
=?UTF-8?q?=20and=20nominated=20caches=20and=20only=20looks=20up=20IDs=20i?=
=?UTF-8?q?f=20possible)=20=20=20=20=20=20=20=20=20=20=20=20=20-=20change?=
=?UTF-8?q?=20hibernate=20cache=20and=20flush=20modes=20(to=20avoid=20cach?=
=?UTF-8?q?e=20and=20the=20related=20slow=20flush),=20for=20queries=20and?=
=?UTF-8?q?=20cancel=20of=20workflows=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20-=20modified=20js=20which=20was=20making=20a=20query=20for?=
=?UTF-8?q?=20each=20person=20in=20order=20to=20work=20out=20if=20they=20w?=
=?UTF-8?q?ere=20already=20in=20a=20pending=20invites=20list=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=2032838:=20ALF-12387=20/=20ALF-11872=20When=20t?=
=?UTF-8?q?here=20are=20a=20lot=20of=20pending=20invites,=20deletion=20of?=
=?UTF-8?q?=20a=20site=20causes=20high=20and=20prolonged=20CPU=20activity?=
=?UTF-8?q?=20and=20can=20take=20a=20long=20time=20to=20complete=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20-=20JBPMEngine=20now=20supports=20batch=20?=
=?UTF-8?q?cancelWorkflows()=20method=20for=20canceling=20multiple=20workf?=
=?UTF-8?q?lows=20at=20the=20same=20time=20(e.g.=20on=20deleting=20a=20sit?=
=?UTF-8?q?e)=20=20=20=20=20=20=20=20=20=20-=20Manual=20flushes=20only=20u?=
=?UTF-8?q?sed=20at=20two=20points=20in=20the=20batch=20to=20minimize=20di?=
=?UTF-8?q?rty=20checking=20overhead=20and=20yet=20avoid=20FK=20errors=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20-=20Performance=20implications=20sti?=
=?UTF-8?q?ll=20to=20be=20checked=20but=20at=20least=20functionally=20corr?=
=?UTF-8?q?ect=20=20=20=20=20=20=20=20=20=20-=20Corrected=20JPDL=20source?=
=?UTF-8?q?=20jar=20=20=20=20=20=20=20=20=20=2032857:=20ALF-12387=20/=20AL?=
=?UTF-8?q?F-11872=20When=20there=20are=20a=20lot=20of=20pending=20invites?=
=?UTF-8?q?,=20deletion=20of=20a=20site=20causes=20high=20and=20prolonged?=
=?UTF-8?q?=20CPU=20activity=20and=20can=20take=20a=20long=20time=20to=20c?=
=?UTF-8?q?omplete=20=20=20=20=20=20=20=20=20=20=20=20=20-=20Search=20for?=
=?UTF-8?q?=20Pending=20invites=20was=20slow=20on=20sites=20with=20>=200?=
=?UTF-8?q?=20pending=20invites=20(it=20was=20getting=20invites=20for=20al?=
=?UTF-8?q?l=20sites)=20=20=20=20=20=20=20=20=20=2032861:=20ALF-12387=20/?=
=?UTF-8?q?=20ALF-11872=20When=20there=20are=20a=20lot=20of=20pending=20in?=
=?UTF-8?q?vites,=20deletion=20of=20a=20site=20causes=20high=20and=20prolo?=
=?UTF-8?q?nged=20CPU=20activity=20and=20can=20take=20a=20long=20time=20to?=
=?UTF-8?q?=20complete=20=20=20=20=20=20=20=20=20=20-=20JBPMEngine=20uses?=
=?UTF-8?q?=20an=20abstract=20list=20to=20'lazily'=20convert=20hibernate?=
=?UTF-8?q?=20objects=20on=20demand=20and=20avoid=20batch=20loading=20too?=
=?UTF-8?q?=20many=20objects=20=20=20=20=20=20=20=20=20=2032868:=20ALF-123?=
=?UTF-8?q?87=20/=20ALF-11872=20When=20there=20are=20a=20lot=20of=20pendin?=
=?UTF-8?q?g=20invites,=20deletion=20of=20a=20site=20causes=20high=20and?=
=?UTF-8?q?=20prolonged=20CPU=20activity=20and=20can=20take=20a=20long=20t?=
=?UTF-8?q?ime=20to=20complete=20=20=20=20=20=20=20=20=20=20-=20Rationaliz?=
=?UTF-8?q?ation=20of=20batch=20fetching=20at=20hibernate=20layer=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=2032881:=20ALF-12387=20/=20ALF-11872:=20The?=
=?UTF-8?q?=20saga=20goes=20on!=20Corrected=20empty=20list=20handling=20in?=
=?UTF-8?q?=20InvitationServiceImpl.searchInvitation().=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=2032927:=20ALF-12387=20/=20ALF-11872:=20Fix=20paramet?=
=?UTF-8?q?er=20validation=20in=20InvitationServiceImpl.getInvitationTasks?=
=?UTF-8?q?()=20=20=20=20=20=20=20=20=20=2032936:=20ALF-12387=20/=20ALF-11?=
=?UTF-8?q?872:=20A=20site=20with=201200=20pending=20invites=20can=20now?=
=?UTF-8?q?=20be=20deleted=20without=20the=20UI=20timing=20out=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20-=20Pending=20invitation=20workflows=20are=20?=
=?UTF-8?q?cancelled=20in=20an=20asynchronous=20action=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20-=20The=20asynchronous=20action=20completes=20about?=
=?UTF-8?q?=203=20minutes=20later,=20due=20to=20the=20massive=20number=20o?=
=?UTF-8?q?f=20individual=20delete=20statements=20being=20run=20by=20Hiber?=
=?UTF-8?q?nate=20=20=20=20=20=20=20=20=20=20-=20Creating=20the=20rows=20i?=
=?UTF-8?q?n=20the=20first=20place=20took=2020=20minutes!=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=2032956:=20ALF-12387=20/=20ALF-11872:=20Corrected?=
=?UTF-8?q?=20filtering=20in=20InvitationServiceImpl.getInvitationTasks()?=
=?UTF-8?q?=20to=20only=20include=20start=20tasks=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20-=20plus=20recautionary=20sleep()=20in=20InviteServiceTes?=
=?UTF-8?q?t.tearDown()=20to=20ensure=20asynchronous=20invite=20deletions?=
=?UTF-8?q?=20complete=20=20=20=20=20=20=20=20=20=2033169:=20ALF-12382=20/?=
=?UTF-8?q?=20ALF-12312=20'org.hibernate.LazyInitializationException:=20co?=
=?UTF-8?q?uld=20not=20initialize=20proxy=20-=20no=20Session'=20when=20cli?=
=?UTF-8?q?cking=20on=20a=20Pending=20Invite=20workflow=20task=20in=20JSF?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20-=20Follow=20on=20from?=
=?UTF-8?q?=20ALF-11872:=20Only=20use=20lazyloaded=20WorkflowTasks=20from?=
=?UTF-8?q?=20JBPMEngine.getWorkflowTasks()=20when=20we=20are=20using=20th?=
=?UTF-8?q?e=20same=20session=20(currently=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20only=20done=20from=20InvitationService).=20The?=
=?UTF-8?q?=20fallback=20is=20to=20assume=20it=20is=20not=20the=20same=20s?=
=?UTF-8?q?ession=20and=20return=20a=20normal=20list=20of=20Workflows.=20?=
=?UTF-8?q?=20=20=2033224:=20Fix=20for=20ALF-12230=20"Bootstrap=20re-encry?=
=?UTF-8?q?ption=20failed"=20=20=20=2033225:=20Fix=20for=20ALF-12349=20Tra?=
=?UTF-8?q?nsformations=20need=20to=20handle=20failures=20due=20to=20serve?=
=?UTF-8?q?r=20being=20busy.=20=20=20=20=20=20Change=20to=20system=20behav?=
=?UTF-8?q?iour:=20=20=20=20=20=20=20=20We=20want=20to=20support=20transie?=
=?UTF-8?q?nt=20failures=20of=20thumbnail=20creations.=20Primary=20example?=
=?UTF-8?q?=20now=20is=20the=20Polymorph=20Transformation=20Server=20which?=
=?UTF-8?q?=20=20=20=20=20=20=20=20can=20fail=20transformations=20because?=
=?UTF-8?q?=20it=20is=20under=20load=20and=20wishes=20to=20decline=20trans?=
=?UTF-8?q?form=20requests.=20=20=20=20=20=20=20=20Prior=20to=20this=20che?=
=?UTF-8?q?ck-in,=20such=20failures=20would=20be=20interpreted=20by=20Alfr?=
=?UTF-8?q?esco=20as=20'real'=20failures=20and=20the=20content=20node=20wo?=
=?UTF-8?q?uld=20be=20marked=20=20=20=20=20=20=20=20as=20FailedToTransform?=
=?UTF-8?q?.=20The=20transformers'=20state=20data=20would=20also=20be=20af?=
=?UTF-8?q?fected=20by=20the=20failure.=20=20=20=20=20=20=20=20We=20need?=
=?UTF-8?q?=20to=20allow=20transformers=20to=20fail=20and=20NOT=20trigger?=
=?UTF-8?q?=20any=20negative=20consequences=20such=20as=20above.=20=20=20?=
=?UTF-8?q?=20=20=20Changes=20in=20code:=20=20=20=20=20=20New=20exception?=
=?UTF-8?q?=20type=20ActionServiceTransientException=20when=20thrown=20fro?=
=?UTF-8?q?m=20an=20ActionExecuter=20will=20NOT=20trigger=20any=20compensa?=
=?UTF-8?q?ting=20action=20that=20has=20been=20configured.=20=20=20=20=20?=
=?UTF-8?q?=20=20=20This=20allows=20actions=20to=20fail=20'normally'=20or?=
=?UTF-8?q?=20due=20to=20some=20transient=20condition=20with=20the=20impli?=
=?UTF-8?q?cation=20that=20if=20rerun=20later=20the=20action=20may=20succe?=
=?UTF-8?q?ed.=20=20=20=20=20=20Additional=20end-state=20for=20Actions=20i?=
=?UTF-8?q?n=20the=20ActionTrackingService:=20ActionStatus.Declined.=20The?=
=?UTF-8?q?=20ActionExecuter=20has=20declined=20to=20execute=20the=20actio?=
=?UTF-8?q?n=20at=20this=20time.=20=20=20=20=20=20New=20exception=20type?=
=?UTF-8?q?=20ContentServiceTransientException=20which=20means=20that=20a?=
=?UTF-8?q?=20content=20operation=20(currently=20only=20a=20transformation?=
=?UTF-8?q?)=20has=20failed=20due=20to=20a=20transient=20condition.=20=20?=
=?UTF-8?q?=20=20=20=20=20=20CreateThumbnailActionExecuter=20catches=20thi?=
=?UTF-8?q?s=20exception=20type=20and=20throws=20the=20ActionServiceTransi?=
=?UTF-8?q?entException.=20=20=20=20=20=20Tests=20at=20the=20ActionService?=
=?UTF-8?q?Impl,=20ActionTrackingServiceImpl=20and=20ThumbnailServiceImpl?=
=?UTF-8?q?=20APIs=20&=20various=20test=20config=20&=20other=20changes.=20?=
=?UTF-8?q?=20=20=2033231:=20ALF-10581=20-=20MySQLIntegrityConstraintViola?=
=?UTF-8?q?tionException:=20Cannot=20add=20or=20update=20a=20child=20row:?=
=?UTF-8?q?=20a=20foreign=20key=20constraint=20fails=20...=20fk=5Falf=5Fca?=
=?UTF-8?q?ss=5Fcnode=20=20=20=20-=20unexpected=20non-null=20child=20node?=
=?UTF-8?q?=20id=20when=20creating=20a=20new=20node=20(see=20also=20THOR-9?=
=?UTF-8?q?06)=20=20=20=20-=20for=20now=20genericise=20ALF-10153=20(to=20i?=
=?UTF-8?q?nclude=20at=20least=20MySQL=20in=20addition=20to=20MS=20SQL=20S?=
=?UTF-8?q?erver)=20=20=20=2033237:=20Fixing=20JUnit=20jar's=20src=20attac?=
=?UTF-8?q?hment.=20=20=20=2033238:=20Merged=20BRANCHES/DEV/mward/schemaco?=
=?UTF-8?q?mp=20to=20BRANCHES/DEV/V4.0-BUG-FIX:=20=20=20=20=20=20=2033222:?=
=?UTF-8?q?=20ALF-12351:=20Separate=20schema=20descriptor=20files=20for=20?=
=?UTF-8?q?table=20prefixes:=20alf=5F,=20avm=5F,=20JBPM=5F,=20act=5F=20=20?=
=?UTF-8?q?=20=20=20=20=2033235:=20ALF-12351:=20Separate=20schema=20descri?=
=?UTF-8?q?ptor=20files=20for=20table=20prefixes:=20alf=5F,=20avm=5F,=20JB?=
=?UTF-8?q?PM=5F,=20act=5F=20=20=20=2033239:=20partial=20fix=20for:=20ALF-?=
=?UTF-8?q?10446=20-=20Upgraded=20FullCalendar=20to=20support=20ISO8601=20?=
=?UTF-8?q?Zulu=20timezone=20&=20told=20it=20not=20to=20ignore=20the=20tim?=
=?UTF-8?q?ezone=20information.=20=20=20=2033240:=20Implementation=20of=20?=
=?UTF-8?q?improvement=20ALF-12404.=20=20=20=20=20=20This=20fix=20has=20be?=
=?UTF-8?q?en=20OK'd=20by=20Andy=20Hind.=20=20=20=2033246:=20Merged=20BRAN?=
=?UTF-8?q?CHES/DEV/mward/schemacomp=20to=20BRANCHES/DEV/V4.0-BUG-FIX:=20?=
=?UTF-8?q?=20=20=20=20=20=2033244:=20ALF-12352:=20Add=20JMX=20support=20t?=
=?UTF-8?q?o=20trigger=20a=20schema=20check=20manually=20=20=20=2033252:?=
=?UTF-8?q?=20Merged=20V3.4-BUG-FIX=20to=20V4.0-BUG-FIX=20(RECORD=20ONLY)?=
=?UTF-8?q?=20=20=20=20=20=20=2033245:=20ALF-12366:=20Delete=20a=20node=20?=
=?UTF-8?q?by=20deleting=20its=20row=20and=20inserting=20a=20new=20one=20w?=
=?UTF-8?q?ith=20the=20deleted=20flag=20set=20=20=20=20=20=20=20=20=20=20-?=
=?UTF-8?q?=20Forces=20a=20new=20ID=20to=20be=20generated=20for=20the=20de?=
=?UTF-8?q?leted=20node=20=20=20=20=20=20=20=20=20=20-=20Makes=20it=20impo?=
=?UTF-8?q?ssible=20to=20simultaneously=20delete=20a=20node=20and=20add=20?=
=?UTF-8?q?new=20children=20in=20two=20concurrent=20transactions=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20-=20Can't=20be=20merged=20to=204.0=20due?=
=?UTF-8?q?=20to=20SOLR=20-=20needs=20something=20more=20clever!=20=20=20?=
=?UTF-8?q?=20=20=20=2033250:=20ALF-12366:=20Derek=20code=20review=20=20?=
=?UTF-8?q?=20=2033254:=20Merge=20V3.4-BUG-FIX=20to=20V4.0=20BUG-FIX=20=20?=
=?UTF-8?q?=20=20=20=2033249=20-=20ALF-12342=20Excel=202003=20Patterns.=20?=
=?UTF-8?q?=20=20=2033256:=20ALF-12386=20Change=20the=20simpler=20projects?=
=?UTF-8?q?=20to=20use=20explicit=20dependencies,=20rather=20than=20blindl?=
=?UTF-8?q?y=20importing=20all=20of=203rd-party,=20to=20make=20generating?=
=?UTF-8?q?=20downstream=20Maven=20POMs=20easier=20=20=20=2033266:=20ALF-1?=
=?UTF-8?q?2163=20-=20mail.parameters.from=20does=20not=20use=20the=20from?=
=?UTF-8?q?=20address=20provided=20=20=20=2033283:=20ALF-12185=20SPP/Vti?=
=?UTF-8?q?=20Mac=20Office=20checkin=20correction=20for=20Collaborators=20?=
=?UTF-8?q?(Patch=20from=20Pavel=20Yurkevich)=20=20=20=2033295:=20Fix=20to?=
=?UTF-8?q?=20SMTP=20authentication=20implementation.=20=20=20=2033296:=20?=
=?UTF-8?q?Merged=20BRANCHES/DEV/V3.4-BUG-FIX=20to=20BRANCHES/DEV/V4.0-BUG?=
=?UTF-8?q?-FIX=20=20=20=20=20=20=2033285:=20Fix=20for=20ALF-12336=20-=20S?=
=?UTF-8?q?hare=20loses=20performance=20if=20noncachableObjectTypes=20are?=
=?UTF-8?q?=20defined=20(page=20&=20component)=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20-=20New=20and=20improved=20mechanism=20for=20dea?=
=?UTF-8?q?ling=20with=20cache=20invalidation=20in=20Share=20load=20balanc?=
=?UTF-8?q?ing=20and=20clustering=20based=20on=20the=20Hazelcast=20messagi?=
=?UTF-8?q?ng=20system=20=20=20=20=20=20=20=20=20=20=20=20=20=20-=20See=20?=
=?UTF-8?q?http://www.hazelcast.com/docs.jsp=20-=20and=20specifically=20ht?=
=?UTF-8?q?tp://www.hazelcast.com/docs/1.9.4/manual/single=5Fhtml/#SpringI?=
=?UTF-8?q?ntegration=20=20=20=20=20=20=20=20=20=20=20=20=20=20-=20Sample?=
=?UTF-8?q?=20per=20node=20cluster=20config=20provided=20in=20custom-sling?=
=?UTF-8?q?shot-application-context.xml.sample=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20-=20Tested=20with=20an=20Alfresco=20cluster=20pl?=
=?UTF-8?q?us=20a=20Share=20cluster=20both=20balanced=20via=20Apache=20ser?=
=?UTF-8?q?ver=20instances=20=20=20=20=20=20=20=20=20=20=20=20=20=20-=20Si?=
=?UTF-8?q?gnificantly=20improved=20Share=20stability=20with=20latest=20Sp?=
=?UTF-8?q?ringSurf=20libs=20and=20individual=20node=20performance=20back?=
=?UTF-8?q?=20up=20to=20non-clustered=20node=20speed=20=20=20=20Modified?=
=?UTF-8?q?=20Alfresco=20JLan=20build=20to=20use=20newer=20hazelcast=20JAR?=
=?UTF-8?q?=20and=20also=20modified=20existing=20build=20file=20references?=
=?UTF-8?q?=20to=20use=20new=20jar=20location.=20=20=20=2033297:=20Merge?=
=?UTF-8?q?=20V3.4-BUG-FIX=20(3.4.8)=20to=20V4.0-BUG-FIX=20(4.0.1)=20(RECO?=
=?UTF-8?q?RD=20ONLY)=20=20=20=20=20=20=2033292:=20ALF-12457:=20Merge=20V3?=
=?UTF-8?q?.4.4=20(3.4.4.8)=20to=20V3.4-BUG-FIX=20(3.4.8)=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=2033287:=20ALF-12400:=20Merged=20DEV/BELARUS/V3.4-?=
=?UTF-8?q?BUG-FIX-2012=5F01=5F10=20to=20V3.4.4=20(3.4.4.8)=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=2033284:=20ALF-12400=20CLONE=20-=20Securi?=
=?UTF-8?q?ty=20risk=20in=20Web=20View=20dashlet=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20The=20check=20for=20user=20role=20was=20added=20?=
=?UTF-8?q?to=20Web=20View=20and=20Site=20Links=20dashlets=20to=20disallow?=
=?UTF-8?q?=20to=20configure=20Web=20View=20for=20Consumer,=20Contributor,?=
=?UTF-8?q?=20and=20Collaborator=20roles=20and=20disallow=20to=20add=20Sit?=
=?UTF-8?q?e=20Links=20for=20Consumer=20role.=20=20=20=20=20=20=2033286:?=
=?UTF-8?q?=20ALF-9514=20I18N:=20Model=20constraint=20values=20need=20loca?=
=?UTF-8?q?lized=20display=20names=20=20=20=20=20=20=20=20=20=20-=20Applie?=
=?UTF-8?q?d=20diff=20file=20attached=20to=20JIRA=20issue=20(with=20a=20mi?=
=?UTF-8?q?nor=20compiler=20error=20correction).=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20It=20appeared=20to=20be=20a=20merge=20of:=20DEV/SWI?=
=?UTF-8?q?FT=20r27643,=20r27645,=20r27692,=20r27846=20and=20HEAD=20r28405?=
=?UTF-8?q?,=20r29364=20=20=20=2033298:=20ALF-12461=20If=20the=20OOXML=20f?=
=?UTF-8?q?ile=20contains=20a=20thumbnail=20image,=20use=20this=20for=20th?=
=?UTF-8?q?e=20document=20thumbnail,=20plus=20improve=20the=20iWorks=20ana?=
=?UTF-8?q?loguous=20transformer=20=20=20=2033305:=20Fix=20for=20ALF-12463?=
=?UTF-8?q?=20Error=20querying=20database=20was=20detected=20during=20upgr?=
=?UTF-8?q?ade=20process=20from=203.1=20to=204.0.0.=20=20=20=2033306:=20Ex?=
=?UTF-8?q?periment=20-=20adding=20an=20sdk-extras=20target=20for=20the=20?=
=?UTF-8?q?enterprise=20specific=20bits=20of=20the=20SDK.=20=20=20=2033308?=
=?UTF-8?q?:=20Merged=20V3.4-BUG-FIX=20(3.4.8)=20to=20V4.0-BUG-FIX=20(4.0.?=
=?UTF-8?q?1)=20=20=20=20=20=20=2033242:=20ALF-5830=20show=5Faudit.ftl=20t?=
=?UTF-8?q?emplate=20doesn't=20work=20anymore=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20-=20ISO9075=20encode=20the=20node=20path=20=20=20=20=20=20?=
=?UTF-8?q?=2033271:=20ALF-9659=20In=20auditing,=20nodeNameValue=20extract?=
=?UTF-8?q?or=20never=20works=20on=20a=20deletion=20event.=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20-=20As=20pre=20call=20audit=20is=20not=20discard?=
=?UTF-8?q?ed=20on=20transaction=20rollback,=20we=20need=20to=20be=20able?=
=?UTF-8?q?=20to=20have=20access=20to=20pre=20call=20values=20in=20the=20p?=
=?UTF-8?q?ost=20call=20audit=20application.=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20One=20such=20value=20is=20the=20nodeName=20for=20the=20po?=
=?UTF-8?q?st=20call=20of=20NodeService.deleteNode()=20=20=20=20=20=20=203?=
=?UTF-8?q?3274:=20Merged=20DEV=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=2033273:=20ALF-12314:=20Failed=20to=20create=20content?=
=?UTF-8?q?=20due=20to=20error:=20lockOwner=20is=20a=20mandatory=20paramet?=
=?UTF-8?q?er=20=20=20=20=20=20=20=20=20=20=20=20=20It=20is=20necessary=20?=
=?UTF-8?q?to=20pass=20the=20correct=20'lockOwner'=20of=20a=20rendition,?=
=?UTF-8?q?=20for=20example,=20to=20use=20'rr.getLockOwner()'=20instead=20?=
=?UTF-8?q?of=20'lockOwner'=20=20=20=20=20=20=2033277:=20ALF-12436:=20Merg?=
=?UTF-8?q?ed=20PATCHES/V3.4.6=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=2033275:=20ALF-12426:=20Correction=20to=20joins=20in=20sele?=
=?UTF-8?q?ct=5FContentDataByNodeIds=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20-=20inner=20join=20to=20alf=5Fnode=5Fproperties=20first=20?=
=?UTF-8?q?=20=20=20=20=20=2033279:=20ALF-12366:=20Merged=20PATCHES/V3.4.6?=
=?UTF-8?q?=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2033278:=20ALF-?=
=?UTF-8?q?12393:=20Another=20indexing=20race=20condition=20when=20MySQL?=
=?UTF-8?q?=20read=20committed=20is=20enabled,=20this=20time=20in=20the=20?=
=?UTF-8?q?debug=20diagnostics!=20=20=20=20=20=20=2033282:=20Merged=20V3.4?=
=?UTF-8?q?=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2032979:=20ALF-?=
=?UTF-8?q?12114:=20Reverse=20merged=20ALF-10282=20and=20related=20changes?=
=?UTF-8?q?=20from=20V3.4-BUG-FIX,=20which=20have=20caused=20serious=20reg?=
=?UTF-8?q?ressions=20=20=20=20=20=20=20=20=20=20=20=20=2031840:=20Fix=20f?=
=?UTF-8?q?or=20ALF-10282=20-=20Web=20Browser=20freezes=20with=20large=20x?=
=?UTF-8?q?ml=20files=20Web=20form=20transformation=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=2032341:=20Fix=20for=20ALF-9883=20-=20WCM=20For?=
=?UTF-8?q?ms:=20Changing=20'abstract'=20type=20carries=20previously-added?=
=?UTF-8?q?=20elements=20=20=20=20=20=20=20=20=20=2032998:=20(RECORD=20ONL?=
=?UTF-8?q?Y)=20Merged=20V3.4-BUG-FIX=20to=20V3.4=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=2032996:=20ALF-12184:=20SchemaBootstrap=20must=20u?=
=?UTF-8?q?se=20same=20assumptions=20as=20PatchServiceImpl=20when=20decidi?=
=?UTF-8?q?ng=20whether=20an=20alternative=20patch=20succeeded=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20-=20Fixes=20regression=20in?=
=?UTF-8?q?troduced=20by=20r31972=20/=20ALF-11489=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=2033084:=20Merged=20BRANCHES/DEV/BELARUS/V3.4-BUG-FIX-2011?=
=?UTF-8?q?=5F12=5F06=20to=20V3.4=20(3.4.7)=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=2033069:=20ALF-12266=20NPE=20creating=20content=20using?=
=?UTF-8?q?=20the=20web=20form=20=20=20=20=20=20=20=20=20=20=20=20=20Local?=
=?UTF-8?q?e=20language=20can=20be=20passed=20not=20only=20as=20lang=5Fcou?=
=?UTF-8?q?ntry=20but=20as=20only=20country=20code=20as=20well.=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=2033257:=20ALF-10340:=20patch.db-V2.2-CleanN?=
=?UTF-8?q?odeStatuses=20must=20now=20have=20patch.db-V2.2-Upgrade-From-2.?=
=?UTF-8?q?2SP1=20as=20an=20alternative=20to=20allow=20upgrade=20from=202.?=
=?UTF-8?q?2.8=20=20=20=20=20=20=20=20=20=20-=20That's=20because=20patch.d?=
=?UTF-8?q?b-V2.2-Upgrade-From-2.2SP1=20exists=20in=202.2.8=20and=20once?=
=?UTF-8?q?=20run=20it's=20too=20late=20to=20run=20patch.db-V2.2-CleanNode?=
=?UTF-8?q?Statuses=20=20=20=20=20=20=20=20=20=2033260:=20Set=20failonany?=
=?UTF-8?q?=3Dtrue=20on=20distribute-installers=20parallel=20task=20so=20t?=
=?UTF-8?q?hat=20the=20build=20actually=20fails=20if=20an=20installer=20fa?=
=?UTF-8?q?ils=20to=20build=20=20=20=20=20=20=2033301:=20ALF-12464:=20Merg?=
=?UTF-8?q?ed=20PATCHES/V3.4.5=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=2033299:=20ALF-12281:=20Memory=20leak=20in=20ReferenceCount?=
=?UTF-8?q?ingReadOnlyIndexReaderFactory=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20-=20The=20diagnostic=20code=20I=20added=20to=20track=20me?=
=?UTF-8?q?mory=20leaks=20was=20actually=20causing=20some!=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20-=20For=20some=20reason=20I=20was=20rec?=
=?UTF-8?q?ording=20a=20new=20reference=20when=20the=20index=20reader=20wa?=
=?UTF-8?q?s=20dereferenced=20rather=20than=20clearing=20it=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20-=20Would=20affect=20scenarios=20where?=
=?UTF-8?q?=20the=20main=20index=20is=20long-lived=20and=20there=20are=20n?=
=?UTF-8?q?o=20writes=20to=20it=20and=20lots=20of=20searches=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20-=20Spotted=20by=20Pavel=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20-=20Too=20much=20late=20night=20codi?=
=?UTF-8?q?ng!=20=20=20=20=20=20=2033303:=20ALF-12464:=20Merged=20PATCHES/?=
=?UTF-8?q?V3.4.5=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2033302:?=
=?UTF-8?q?=20ALF-12281:=20Correction=20to=20previous=20checkin=20-=20deal?=
=?UTF-8?q?=20with=20the=20initial=20reference=20created=20by=20the=20cons?=
=?UTF-8?q?tructor=20and=20cleared=20by=20closeIfRequired()=20=20=20=20333?=
=?UTF-8?q?15:=20ALF-11214=20-=20IMAP=20subsystem=20is=20not=20successfull?=
=?UTF-8?q?y=20restarted=20after=20incorrect=20modification=20of=20IMAP=20?=
=?UTF-8?q?properties=20via=20Admin=20Console=20=20=20=2033321:=20Remove?=
=?UTF-8?q?=20/hazelcast=20lib=20dir=20include=20which=20is=20no=20longer?=
=?UTF-8?q?=20required=20as=20libs=20are=20now=20at=20lib=20root=20folder?=
=?UTF-8?q?=20=20=20=2033322:=20ALF-2550=20-=20Enterprise=20SDK=20files=20?=
=?UTF-8?q?do=20not=20contain=20enterprise=20repository=20project.=20=20?=
=?UTF-8?q?=20=2033323:=20SDK=20-=20Added=20Enterprise=20third=20party=20l?=
=?UTF-8?q?ibs.=20=20=20=2033327:=20Merged=20BRANCHES/DEV/THOR1=5FSPRINTS?=
=?UTF-8?q?=20to=20BRANCHES/DEV/V4.0-BUG-FIX:=20=20=20=20=20=20=2033324:?=
=?UTF-8?q?=20Fix=20for=20THOR-941.=20Some=20MIME=20types=20appear=20as=20?=
=?UTF-8?q?Unknown=20in=20metadata=20form.=20=20=20=20The=20inconsistencie?=
=?UTF-8?q?s=20in=20the=20edit=20mimetype=20form=20were=20slightly=20diffe?=
=?UTF-8?q?rent=20on=20V4.0.1=20so=20I=20tidied=20them=20up.=20=20=20=2033?=
=?UTF-8?q?330:=20ALF-12487=20In=20Mimetype=20Detection,=20if=20Tika=20det?=
=?UTF-8?q?ects=20a=20generic=20type=20of=20text/plain=20or=20XML,=20defer?=
=?UTF-8?q?=20to=20the=20Alfresco=20filename=20based=20type=20(as=20we=20a?=
=?UTF-8?q?lready=20do=20for=20octet=20stream)=20=20=20=2033335:=20Quick?=
=?UTF-8?q?=20build=20fix=20-=20comment=20out=20SDK=20enterprise=20docs=20?=
=?UTF-8?q?while=20I=20work=20out=20what's=20wrong.=20=20=20=2033353:=20Ad?=
=?UTF-8?q?ded=20more=20projects=20to=20Enterprise=20Generate=20Docs.=20?=
=?UTF-8?q?=20=20=2033357:=20When=20installing=20a=20module=20the=20tool?=
=?UTF-8?q?=20reads=20the=20war's=20version.properties=20file=20and=20will?=
=?UTF-8?q?=20not=20install=20if=20the=20war=20version=20is=20outside=20th?=
=?UTF-8?q?e=20repoVersionMin=20or=20repoVersionMax=20=20=20=2033361:=20Me?=
=?UTF-8?q?rged=20DEV/GETHIN/FINDBUGS=20to=20V4.0-BUG-FIX=20=20=20=20=20?=
=?UTF-8?q?=20=2032962:=20Findbugs=20fix:=20Suspicious=20comparison=20of?=
=?UTF-8?q?=20Integer=20references=20=20=20=20=20=20=2032963:=20Findbugs?=
=?UTF-8?q?=20fix:=20Call=20to=20equals()=20compares=20different=20types?=
=?UTF-8?q?=20=20=20=20=20=20=2032968:=20hashcode=20should=20be=20hashCode?=
=?UTF-8?q?=20=20=20=20=20=20=2032970:=20Findbugs=20fix:=20Suspicious=20co?=
=?UTF-8?q?mparison=20of=20Integer=20references=20=20=20=20=20=20=2032972:?=
=?UTF-8?q?=20Findbugs=20fix:=20Suspicious=20comparison=20of=20Integer=20o?=
=?UTF-8?q?r=20Long=20references=20=20=20=20=20=20=2032976:=20Findbugs=20f?=
=?UTF-8?q?ix:=20.remove()=20incompatible=20with=20expected=20argument=20t?=
=?UTF-8?q?ype=20String=20=20=20=20=20=20=2032977:=20Findbugs=20fix:=20=20?=
=?UTF-8?q?String=20is=20incompatible=20with=20expected=20argument=20type?=
=?UTF-8?q?=20=20=20=20=20=20=2032978:=20Findbugs=20fix:=20Call=20to=20equ?=
=?UTF-8?q?als()=20compares=20different=20types=20=20=20=20=20=20=20I=20pr?=
=?UTF-8?q?efer=20this=20fix=20to=20the=20previous=20one=20I=20did=20=20?=
=?UTF-8?q?=20=20=20=20=2032982:=20Findbugs=20fix:=20Call=20to=20equals()?=
=?UTF-8?q?=20compares=20different=20types=20=20=20=20=20=20=20classDefini?=
=?UTF-8?q?tion.getName().equals=20instead=20of=20classDefinition.equals?=
=?UTF-8?q?=20=20=20=20=20=20=2032983:=20Findbugs=20fix:=20=20String=20is?=
=?UTF-8?q?=20incompatible=20with=20expected=20argument=20type=20java.util?=
=?UTF-8?q?.Locale=20=20=20=20=20=20=2032984:=20Findbugs=20fix:=20An=20app?=
=?UTF-8?q?arent=20infinite=20loop=20=20=20=20=20=20=2032985:=20Findbugs?=
=?UTF-8?q?=20fix:=20bad=20month=20value=20of=2012=20passed=20to=20new=20j?=
=?UTF-8?q?ava.util.GregorianCalendar=20=20=20=20=20=20=20This=20code=20pa?=
=?UTF-8?q?sses=20a=20constant=20month=20value=20outside=20the=20expected?=
=?UTF-8?q?=20range=20of=200..11=20to=20a=20method.=20=20=20=20=20=20=2032?=
=?UTF-8?q?986:=20Findbugs=20fix:=20authenticationComponent=20masks=20fiel?=
=?UTF-8?q?d=20from=20superclass=20=20=20=20=20=20=2032987:=20Findbugs=20f?=
=?UTF-8?q?ix:=20Invocation=20of=20toString=20on=20Array=20=20=20=20=20=20?=
=?UTF-8?q?=20Now=20uses=20Arrays.toString()=20=20=20=20=20=20=2032988:=20?=
=?UTF-8?q?Findbugs=20fix:=20Incorrect=20lazy=20initialization=20of=20stat?=
=?UTF-8?q?ic=20field=20=20=20=20=20=20=20Now=20uses=20static=20initializa?=
=?UTF-8?q?tion=20block=20=20=20=20=20=20=2032989:=20Findbugs=20fix:=20Dea?=
=?UTF-8?q?d=20code:=20A=20null=20pointer=20would=20have=20been=20thrown?=
=?UTF-8?q?=20before=20these=20lines=20=20=20=20=20=20=2032990:=20Findbugs?=
=?UTF-8?q?=20fix:=20possible=20null=20pointer=20dereference=20=20=20=20?=
=?UTF-8?q?=20=20=20Just=20made=20the=20code=20a=20little=20clearer=20=20?=
=?UTF-8?q?=20=20=20=20=2032991:=20Findbugs=20fix:=20class=20defines=20a?=
=?UTF-8?q?=20clone()=20method=20but=20the=20class=20doesn't=20implement?=
=?UTF-8?q?=20Cloneable.=20=20=20=20=20=20=2032992:=20Findbugs=20fix:=20Al?=
=?UTF-8?q?l=20equals()=20methods=20should=20return=20false=20if=20passed?=
=?UTF-8?q?=20a=20null=20value.=20=20=20=20=20=20=2032993:=20Findbugs=20fi?=
=?UTF-8?q?x:=20Invocation=20of=20toString=20on=20Array=20=20=20=20=20=20?=
=?UTF-8?q?=20Now=20uses=20Arrays.toString()=20=20=20=20=20=20=2032994:=20?=
=?UTF-8?q?Findbugs=20fix:=20If=20the=20multiplication=20is=20done=20using?=
=?UTF-8?q?=20long=20arithmetic,=20you=20can=20avoid=20the=20possibility?=
=?UTF-8?q?=20that=20the=20result=20will=20overflow.=20=20=20=20=20=20=203?=
=?UTF-8?q?3006:=20Findbugs=20fix:=20possible=20null=20=20=20=20=20=20=20J?=
=?UTF-8?q?ust=20made=20the=20code=20a=20little=20clearer=20=20=20=20=20?=
=?UTF-8?q?=20=2033007:=20Findbugs=20fix:=20Invocation=20of=20toString=20o?=
=?UTF-8?q?n=20Array=20=20=20=20=20=20=20Now=20uses=20Arrays.toString()=20?=
=?UTF-8?q?=20=20=20=20=20=2033008:=20Findbugs=20fix:=20=20Call=20to=20Str?=
=?UTF-8?q?ing.equals(Character)=20=20=20=20=20=20=20Explicitly=20using=20?=
=?UTF-8?q?String=20=20=20=20=20=20=2033009:=20Findbugs=20fix:=20=20int=20?=
=?UTF-8?q?converted=20to=20long=20and=20passed=20as=20absolute=20time=20t?=
=?UTF-8?q?o=20new=20java.util.Date(long)=20=20=20=20=20=20=20Now=20works?=
=?UTF-8?q?=20after=20the=20year=202037!=20=20=20=20=20=20=2033014:=20Find?=
=?UTF-8?q?bugs=20fix:=20Invocation=20of=20toString=20on=20Array=20=20=20?=
=?UTF-8?q?=20=20=20=20Now=20uses=20Arrays.toString()=20=20=20=20=20=20=20?=
=?UTF-8?q?33023:=20Findbugs=20fix:=20There=20is=20an=20apparent=20infinit?=
=?UTF-8?q?e=20recursive=20loop=20=20=20=20=20=20=20No=20longer=20=20=20?=
=?UTF-8?q?=20=20=20=2033025:=20Findbugs=20fix:=20possible=20null=20=20=20?=
=?UTF-8?q?=20=20=20=20Just=20made=20the=20code=20a=20little=20clearer=20?=
=?UTF-8?q?=20=20=20=20=20=2033026:=20Findbugs=20fix:=20impossible=20null?=
=?UTF-8?q?=20check=20=20=20=20=20=20=20Changed=20&&=20to=20||=20=20=20=20?=
=?UTF-8?q?=20=20=2033029:=20Findbugs=20fix:=20Minor=20change=20to=20Integ?=
=?UTF-8?q?er.valueOf=20=20=20=20=20=20=2033126:=20Findbugs=20fix:=20Compa?=
=?UTF-8?q?rison=20of=20String=20objects=20using=20=3D=3D=20=20=20=20=20?=
=?UTF-8?q?=20=20now=20used=20.equals=20=20=20=20=20=20=2033127:=20Findbug?=
=?UTF-8?q?s=20fix:=20Unwritten=20field.=20=20All=20reads=20of=20it=20will?=
=?UTF-8?q?=20return=20the=20default=20value.=20=20=20=20=20=20=20Now=20se?=
=?UTF-8?q?ts=20values=20in=20the=20constructor=20=20=20=20=20=20=2033128:?=
=?UTF-8?q?=20Findbugs=20fix:=20Removed=20try/catch=20=20=20=20=20=20=2033?=
=?UTF-8?q?129:=20Findbugs=20fix:=20Added=20an=20assertTrue=20to=20the=20u?=
=?UTF-8?q?nit=20test=20=20=20=20=20=20=2033130:=20Findbugs=20fix:=20Passe?=
=?UTF-8?q?s=20null=20for=20nonnull=20parameter=20=20=20=20=20=20=20Mocked?=
=?UTF-8?q?=20the=20serviceReg=20and=20now=20the=20tests=20work!=20=20=20?=
=?UTF-8?q?=20=20=20=2033131:=20Findbugs=20fix:=20Call=20to=20a=20collecti?=
=?UTF-8?q?on=20method=20contains=20an=20argument=20with=20an=20incompatib?=
=?UTF-8?q?le=20class=20from=20that=20of=20the=20collection's=20parameter?=
=?UTF-8?q?=20=20=20=20=20=20=2033133:=20Findbugs=20fix:=20Deadly=20embrac?=
=?UTF-8?q?e=20between=20inner=20class=20and=20thread=20local=20-=20not=20?=
=?UTF-8?q?eligible=20for=20garbage=20collection.=20=20=20=20=20=20=20Made?=
=?UTF-8?q?=20inner=20class=20static=20=20=20=20=20=20=2033182:=20Findbugs?=
=?UTF-8?q?=20fix:=20possible=20null=20=20=20=20=20=20=20Now=20intialises?=
=?UTF-8?q?=20documentPaths=20correctly=20=20=20=20=20=20=2033184:=20Findb?=
=?UTF-8?q?ugs=20fix:=20possible=20null=20pointer=20(no=20more)=20=20=20?=
=?UTF-8?q?=20=20=20=2033185:=20Findbugs=20fix:=20Comparison=20of=20itself?=
=?UTF-8?q?=20=20=20=20=20=20=20Changed=20variable=20name=20to=20fixedValu?=
=?UTF-8?q?e=20=20=20=20=20=20=2033186:=20Findbugs=20fix:=20Possible=20nul?=
=?UTF-8?q?l=20pointer=20dereference=20of=20nodePair=20=20=20=20=20=20=20N?=
=?UTF-8?q?ow=20continues=20=20=20=20=20=20=2033187:=20Findbugs=20fix:=20T?=
=?UTF-8?q?his=20code=20seems=20to=20be=20using=20non-short-circuit=20logi?=
=?UTF-8?q?c=20=20=20=20=20=20=2033188:=20Findbugs=20fix:=20Possible=20nul?=
=?UTF-8?q?l=20pointer=20dereference=20of=20entry=20=20=20=20=20=20=20Disc?=
=?UTF-8?q?ussed=20with=20Andy.=20If=20there's=20no=20entry=20then=20throw?=
=?UTF-8?q?=20the=20exception,=20we=20can't=20continue=20=20=20=20=20=20?=
=?UTF-8?q?=2033189:=20Findbugs=20fix:=20Call=20to=20a=20collection=20meth?=
=?UTF-8?q?od=20contains=20an=20argument=20with=20an=20incompatible=20clas?=
=?UTF-8?q?s=20from=20that=20of=20the=20collection's=20parameter=20=20=20?=
=?UTF-8?q?=20=20=20=20It=20must=20want=20to=20remove=20the=20user=20=20?=
=?UTF-8?q?=20=20=20=20=2033199:=20Modified=20the=20end=20of=20line=20char?=
=?UTF-8?q?acter=20=20=20=20=20=20=2033209:=20Changed=20tabs=20for=20space?=
=?UTF-8?q?s=20=20=20=20=20=20=2033210:=20I=20removed=20the=20"if"=20becau?=
=?UTF-8?q?se=20it=20was=20never=20called,=20however=20Brian=20suggested?=
=?UTF-8?q?=20moving=20it=20to=20a=20place=20where=20it=20would=20be=20cal?=
=?UTF-8?q?led!=20=20=20=2033363:=20Fix=20for=20ALF-12374=20-=20Share=20sa?=
=?UTF-8?q?mple=20'share-config-custom.xml'=20is=20missing=20an=20endpoint?=
=?UTF-8?q?=20'activiti-admin'=20=20=20=2033364:=20Merge=20V3.4-BUG-FIX=20?=
=?UTF-8?q?to=20V4.0-BUG-FIX=20=20=20=20=20=2033362=20:=20ALF-12448=20-=20?=
=?UTF-8?q?Missing=20jars=20in=20enterprise=20SDK=20=20=20=2033376:=20Merg?=
=?UTF-8?q?ed=20(RECORD=20ONLY)=20V3.4-BUG-FIX=20(3.4.8)=20to=20V4.0-BUG-F?=
=?UTF-8?q?IX=20(4.0.1)=20=20=20=20=20=20=2033375:=20ALF-12154:=20Merged?=
=?UTF-8?q?=20HEAD=20to=20V3.4-BUG-FIX=20(3.4.8)=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20Requested=20to=20RECORD=20ONLY=20this=20change=20when=20m?=
=?UTF-8?q?erging=20back=20to=20HEAD/V4.0-BUG-FIX=20etc.=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20-=20Removed=20duplicate=20'List=20constraint=20disp?=
=?UTF-8?q?lay=20labels'=20values=20from=20bpm-messages*.properties=20and?=
=?UTF-8?q?=20dictionarydaotest=5Fmodel.properties.=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20May=20have=20been=20introduced=20by=20ALF-9514?=
=?UTF-8?q?=20changes=20in=20the=20same=20area,=20which=20was=20also=20REC?=
=?UTF-8?q?ORD=20ONLY=20=20=20=20=20=20=20=20=20=20-=20Manual=20merge=20of?=
=?UTF-8?q?=20JSON=20propertyLabels=20that=20exist=20in=20HEAD=20back=20in?=
=?UTF-8?q?to=203.4.8=20=20=20=20=20=20=20=20=20=2032724:=20OPEN=20:=20ALF?=
=?UTF-8?q?-11176:=20Untranslated=20strings=20in=20Group=20Review=20and=20?=
=?UTF-8?q?Approve=20Task=20form=20=20=20=20=20=20=20=20=20=20Activiti=20h?=
=?UTF-8?q?as=20one=20default=20transition=20"Next".=20=20If=20there=20is?=
=?UTF-8?q?=20no=20transition=20then=20the=20model=20builder=20was=20not?=
=?UTF-8?q?=20finding=20a=20translation=20for=20the=20task=20outcome=20(an?=
=?UTF-8?q?d=20just=20using=20the=20english=20word,=20e.g.=20"Approve").?=
=?UTF-8?q?=20=20Now=20it=20looks=20up=20the=20translation=20workflowtask.?=
=?UTF-8?q?outcome.[wf:outcome=20property]=20=20=20=20=20=20=20=20=20=2032?=
=?UTF-8?q?943:=20FIXED=20:=20ALF-11176:=20Untranslated=20stings=20in=20Gr?=
=?UTF-8?q?oup=20Review=20and=20Approve=20Task=20form=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20I've=20changed=20the=20way=20task=20descriptions=20are?=
=?UTF-8?q?=20retrieved.=20You=20can=20now=20enter=20translations=20for=20?=
=?UTF-8?q?them.=20=20=20=2033377:=20ALF-12509:=20ibooks=20Format=20=20=20?=
=?UTF-8?q?=20Added=20quick.ibooks=20file=20=20=20=2033378:=20ALF-12207=09?=
=?UTF-8?q?IMAP:=20Empty=20file=20is=20not=20opened/downloaded=20(using=20?=
=?UTF-8?q?IMAP=20Content=20Links)=20if=20it=20was=20uploaded=20to=20Share?=
=?UTF-8?q?=20via=20fileserver=20=20=20=2033379:=20Add=20the=20TIFF=20mime?=
=?UTF-8?q?type=20=20=20=2033380:=20Improve=20the=20stream=20to=20Tika=20c?=
=?UTF-8?q?onversion=20code,=20following=20review=20for=20THOR-952=20=20?=
=?UTF-8?q?=20=2033385:=20Upgrade=20to=20the=20latest=20Tika=20and=20POI,?=
=?UTF-8?q?=20for=20recent=20bug=20fixes=20=20=20=2033387:=20ALF-12492=20-?=
=?UTF-8?q?=20Email=20with=20empty=20subject=20sent=20to=20Alfresco=20by?=
=?UTF-8?q?=20SMTP=20cause=20Null=20pointer=20Exception=20=20=20=2033396:?=
=?UTF-8?q?=20ALF-12497=20-=20Opening=20and=20closing=20(not=20save)=20MS?=
=?UTF-8?q?=20Exel=202003=20file=20via=20CIFS=20adds=20new=20version=20=20?=
=?UTF-8?q?=20=2033397:=20Merged=20BRANCHES/DEV/mward/schemacomp=20to=20BR?=
=?UTF-8?q?ANCHES/DEV/V4.0-BUG-FIX:=20=20=20=20=20=20=2033259:=20ALF-12354?=
=?UTF-8?q?:=20DB2=20reference=20files.=20=20=20=20=20=20=2033261:=20ALF-1?=
=?UTF-8?q?2354:=20MySQL=20reference=20files.=20=20=20=20=20=20=2033268:?=
=?UTF-8?q?=20ALF-12354:=20Oracle=20reference=20files=20=20=20=20=20=20=20?=
=?UTF-8?q?33310:=20ALF-12354:=20Create=20schema=20reference=20files=20for?=
=?UTF-8?q?=20MySQL,=20PostgreSQL,=20Oracle,=20DB2=20=20=20=20=20=20=20333?=
=?UTF-8?q?49:=20ALF-12354:=20Create=20schema=20reference=20files=20for=20?=
=?UTF-8?q?MySQL,=20PostgreSQL,=20Oracle,=20DB2=20=20=20=20=20=20=2033366:?=
=?UTF-8?q?=20ALF-12412:=20Schema=20reference=20files=20should=20contain?=
=?UTF-8?q?=20schema=20version=20number=20=20=20=20=20=20=2033367:=20ALF-1?=
=?UTF-8?q?2412:=20Schema=20reference=20files=20should=20contain=20schema?=
=?UTF-8?q?=20version=20number=20=20=20=20=20=20=2033373:=20ALF-12354:=20A?=
=?UTF-8?q?dded=20comment=20to=20DB2=20file=20regarding=20intermittent=20c?=
=?UTF-8?q?omparison=20failures.=20=20=20=20=20=20=2033389:=20ALF-12516:?=
=?UTF-8?q?=20Produce=20XML=20schema=20definition=20file=20(XSD)=20for=20s?=
=?UTF-8?q?chemacomp=20reference=20files.=20=20=20=20=20=20=2033390:=20ALF?=
=?UTF-8?q?-12516:=20added=20missing=20file=20(the=20actual=20XSD!)=20=20?=
=?UTF-8?q?=20=20=20=20=2033392:=20ALF-7260=20RINF=2003:=20Automate=20DB?=
=?UTF-8?q?=20schema=20validation=20=20=20=2033401:=20FindFindbugs=20fix:?=
=?UTF-8?q?=20Maybe=20Derek=20expected=20null=20after=20all=20=20=20=20334?=
=?UTF-8?q?06:=20Latest=20SpringSurf=20libs=20-=20fixed=20use=20of=20java.?=
=?UTF-8?q?util.UUID=20which=20blocks=20=20=20=2033407:=20Merged=20BRANCHE?=
=?UTF-8?q?S\DEV\V3.4-BUG-FIX=20to=20BRANCHES\DEV\V4.0-BUG-FIX=20=20=20=20?=
=?UTF-8?q?=20=20=20=2033399:=20Fix=20for=20ALF-11962=20Lucene=20queries?=
=?UTF-8?q?=20searching=20on=20metadata=20(not=20on=20cm:content)=20with?=
=?UTF-8?q?=20stopwords=20returns=20wrong=20results=20=20=20=2033414:=20AL?=
=?UTF-8?q?F-11746=20Webscript=20to=20expose=20the=20repository=20mimetype?=
=?UTF-8?q?s,=20along=20with=20their=20user=20facing=20display=20names=20a?=
=?UTF-8?q?nd=20their=20extensions=20=20=20=2033415:=20ALF-11746=20Mimetyp?=
=?UTF-8?q?e=20information=20can=20be=20available=20to=20all=20=20=20=2033?=
=?UTF-8?q?442:=20Merged=20BRANCHES/DEV/V3.4-BUG-FIX=20to=20BRANCHES/DEV/V?=
=?UTF-8?q?4.0-BUG-FIX=20=20=20=20=20=20=2033441:=20Latest=20SpringSurf=20?=
=?UTF-8?q?libs=20-=20performance=20and=20thread=20safety=20improvements.?=
=?UTF-8?q?=20=20=20=2033447:=20Fix=20to=20email=20test=20-=20query=20erro?=
=?UTF-8?q?r=20exposed=20by=20recent=20change.=20=20=20=2033451:=20Merged?=
=?UTF-8?q?=20BRANCHES/DEV/mward/schemacomp=20to=20BRANCHES/DEV/V4.0-BUG-F?=
=?UTF-8?q?IX:=20=20=20=20=20=20=2033446:=20ALF-12354:=20fixed=20DB2=20int?=
=?UTF-8?q?ermittent=20unique=20index=20creation=20problems.=20=20=20=20?=
=?UTF-8?q?=20=20=2033448:=20ALF-7260:=20removed=20redundant=20code.=20=20?=
=?UTF-8?q?=20=2033454:=20Merged=20(RECORD=20ONLY)=20V3.4-BUG-FIX=20(3.4.8?=
=?UTF-8?q?)=20to=20V4.0-BUG-FIX=20(4.0.1)=20=20=20=20=20=20=2033388:=20Re?=
=?UTF-8?q?moved=20L10N=20that=20no=20longer=20have=20a=20default.=20=20?=
=?UTF-8?q?=20=20=20=20=2033437:=20ALF-9514=20I18N:=20Model=20constraint?=
=?UTF-8?q?=20values=20need=20localized=20display=20names=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20-=20Undo=20changes=20to=20webclient=5Fja.prop?=
=?UTF-8?q?erties=20that=20were=20made=20by=20r33286=20for=20this=20issue.?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20There=20were=20no=20chan?=
=?UTF-8?q?ges=20in=20webclient.properties=20that=20did=20not=20already=20?=
=?UTF-8?q?exist=20in=20webclient=5Fja.properties=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20This=20should=20simplify=20translations.=20=20?=
=?UTF-8?q?=20=20=20=20=2033453:=20ALF-9514=20I18N:=20Model=20constraint?=
=?UTF-8?q?=20values=20need=20localized=20display=20names=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20-=20Tidy=20up=20mess=20to=20do=20with=20the=20in?=
=?UTF-8?q?itial=20r33286=20revision=20for=20this=20issue.=20Lots=20of=20L?=
=?UTF-8?q?10N=20property=20changes.=20=20=20=20=20=20=20=20=20=20=20=20I?=
=?UTF-8?q?=20think=20some=20of=20my=20trial=20merges=20from=204.0=20did?=
=?UTF-8?q?=20not=20get=20reverted=20before=20I=20applied=20the=20diff=20f?=
=?UTF-8?q?ile.=20=20=20=20=20=20=20=20=20=20=20=20Reverse=20merged=20r334?=
=?UTF-8?q?37=20and=20r33286.=20Note=20r33388=20and=20r33375=20(for=20ALF-?=
=?UTF-8?q?12154)=20already=20included=20changes=20to=20try=20and=20fix=20?=
=?UTF-8?q?the=20initial=20revision.=20=20=20=2033456:=20Merged=20BRANCHES?=
=?UTF-8?q?/DEV/V3.4-BUG-FIX=20to=20BRANCHES/DEV/V4.0-BUG-FIX:=20=20=20=20?=
=?UTF-8?q?=20=20=2033455:=20ALF-12410:=20JMX=20Dumps=20taking=20very=20lo?=
=?UTF-8?q?ng=20to=20finish=20=20=20=2033457:=20SDK=20build=20fix=20=20=20?=
=?UTF-8?q?=2033463:=20Add=20in=20Enterprise=20Docs=20to=20SDK=20(again)?=
=?UTF-8?q?=20=20=20=2033464:=20Merged=20V3.4-BUG-FIX=20to=20V4.0-BUG-FIX?=
=?UTF-8?q?=20=20=20=20=20=20=2033312:=20ALF-12448:=20Merged=20HEAD=20to?=
=?UTF-8?q?=20V3.4-BUG-FIX=20(3.4.8)=20=20=20=20=20=20=20=20=20=2033304:?=
=?UTF-8?q?=20ALF-7542=20SDK=20is=20missing=20spring-test.jar=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20-=20ant=20script=20modified=20to=20c?=
=?UTF-8?q?opy=20org.springframework.test*.jar=20files=20into=20root\build?=
=?UTF-8?q?\assemble\sdk\lib\server\dependencies=20=20=20=20=20=20=2033382?=
=?UTF-8?q?:=20ALF-10239=20Form=20validation=20bug=20when=20content=20beco?=
=?UTF-8?q?mes=20invalid=20after=20XSD=20change=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20-=20override=20isValidForSubmit=20function=20in=20alfresco.x?=
=?UTF-8?q?forms.TextField=20as=20alfresco.xforms.Widget=20version=20does?=
=?UTF-8?q?=20not=20check=20the=20max=20length=20=20=20=20=20=20=2033383:?=
=?UTF-8?q?=20Fix=20for=20ALF-11791=20-=20Multiple=20search=20on=20categor?=
=?UTF-8?q?y=20in=20Share=20Advanced=20Search=20return=20no=20result=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20Merged=20HEAD=20to=20BRANCHES/DEV/V3.4-?=
=?UTF-8?q?BUG-FIX=20=20=20=20=20=20=20=20=20=20=20=20=2029710:=20SVC15:?=
=?UTF-8?q?=20Contribution:=20Alfresco=20Share=20Adv=20Search=20Enhancemen?=
=?UTF-8?q?t:=20Allow=20advanced=20search=20on=20category=20to=20include?=
=?UTF-8?q?=20sub-categories=20in=20query=20by=20checking=20a=20checkbox?=
=?UTF-8?q?=20as=20in=20Alfresco=20Explorer=20(ALF-7157)=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20A=20new=20"showSubCat?=
=?UTF-8?q?egoriesOption"=20has=20been=20added=20to=20the=20"category.ftl"?=
=?UTF-8?q?=20form=20control,=20that=20when=20set=20to=20true=20(as=20show?=
=?UTF-8?q?n=20in=20the=20example=20config=20snippet=20below)=20will=20dis?=
=?UTF-8?q?play=20a=20checkbox=20allowing=20the=20user=20to=20request=20al?=
=?UTF-8?q?l=20sub=20categories=20be=20searched=20as=20well=20as=20the=20s?=
=?UTF-8?q?elected=20ones.=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20true=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20true=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=2030572:=20Fix=20for=20ALF-7008=20-=20Double=20category=20in?=
=?UTF-8?q?=20Share=20Advanced=20Search=20return=20no=20result=20=20=20=20?=
=?UTF-8?q?=20=20=2033384:=20Fix=20for=20ALF-12469=20-=20Change=20method?=
=?UTF-8?q?=20BaseAssociationEditor.generateFormSubmit=20to=20protected=20?=
=?UTF-8?q?=20=20=20=20=20=2033400:=20ALF-12366:=20Merged=20PATCHES/V3.4.6?=
=?UTF-8?q?=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2033354:=20ALF-?=
=?UTF-8?q?12393:=20Parent=20assocs=20must=20be=20cached=20with=20a=20txn?=
=?UTF-8?q?=20ID,=20even=20when=20a=20node=20has=20no=20parents=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20-=20Use=20left=20outer=20join=20i?=
=?UTF-8?q?n=20parent=20assocs=20query=20=20=20=20=20=20=20=20=20=2033355:?=
=?UTF-8?q?=20ALF-12393:=20Fixed=20typo=20in=20SQL=20+=20allowed=20assocIn?=
=?UTF-8?q?dex=20to=20be=20null=20=20=20=20=20=20=2033413:=20ALF-12219:=20?=
=?UTF-8?q?Fix=20CommandServlet=20to=20not=20mess=20up=20Document=20List?=
=?UTF-8?q?=20and=20My=20Spaces=20List=20dashlets=20on=20Websphere=20=20?=
=?UTF-8?q?=20=20=20=20=2033416:=20ALF-12411:=20Merged=20DEV=20to=20V3.4-B?=
=?UTF-8?q?UG-FIX=20(with=20corrections)=20=20=20=20=20=20=20=20=20=203340?=
=?UTF-8?q?4:=20Fix=20that=20introduces=20full=20Unicode=20character=20sup?=
=?UTF-8?q?port=20into=20jBPM=203.3.1:=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20-=20new=20patch=20that=20alters=20columns=20of=20the=20jBPM?=
=?UTF-8?q?=203.3.1=20tables=20to=20change=20'TEXT'=20datatype=20to=20'NVA?=
=?UTF-8?q?RCHAR(MAX)'=20(SQL=20Server=20and=20Generic=20dialects);=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20-=20'jbpm-upgrade.sql'=20patch?=
=?UTF-8?q?=20modified=20to=20alter=20as=20in=20the=20new=20patch;=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20-=20'AlfrescoSQLServerDialect'?=
=?UTF-8?q?=20fixed=20to=20allow=20create=20tables=20with=20'CLOB'=20colum?=
=?UTF-8?q?ns=20as=20'NVARCHAR(MAX)'=20columns=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20-=20devious=20chain=20of=20alternatives=20(suggeste?=
=?UTF-8?q?d=20by=20Derek)=20introduced=20to=20make=20sure=20the=20right?=
=?UTF-8?q?=20patch=20executes=20under=20the=20right=20circumstances=20=20?=
=?UTF-8?q?=20=20=20=20=2033418:=20ALF-9507:=20Fixed=20possible=20LDAP=20s?=
=?UTF-8?q?ecurity=20hole=20=20=20=20=20=20=20=20=20=20Now=20we=20force=20?=
=?UTF-8?q?RFC=202254=20escaping=20of=20the=20user=20DN=20resolution=20que?=
=?UTF-8?q?ry=20using=20argument=20substitution,=20as=20described=20here?=
=?UTF-8?q?=20=20=20=20=20=20=20http://docs.oracle.com/javase/jndi/tutoria?=
=?UTF-8?q?l/ldap/search/search.html=20=20=20=20=20=20=2033419:=20ALF-9658?=
=?UTF-8?q?:=20Corrected=20AFTER=5FINACTIVITY=20cache=20update=20behaviour?=
=?UTF-8?q?=20in=20InMemoryTicketComponentImpl=20=20=20=20=20=20=20-=20Now?=
=?UTF-8?q?=20the=20key=20is=20preserved=20on=20entry=20update=20and=20not?=
=?UTF-8?q?=20accidentally=20regenerated=20=20=20=20=20=20=2033421:=20Merg?=
=?UTF-8?q?ed=20DEV=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2032042?=
=?UTF-8?q?:=20ALF-11448:=20ArrayIndexOutOfBoundsException=20caused=20by?=
=?UTF-8?q?=20unsynchronized=20call=20in=20org.alfresco.repo.webdav.WebDAV?=
=?UTF-8?q?.formatModifiedDate=20=20=20=20=20=20=20=20=20=20=20=20=20Creat?=
=?UTF-8?q?ion=20of=20SimpleDateFormatter=20was=20moved=20to=20a=20method.?=
=?UTF-8?q?=20=20=20=20=20=20=2033422:=20ALF-12302:=20/api/tags=20API=20re?=
=?UTF-8?q?turns=20badly-formed=20JSON=20=20=20=20=20=20=20-=20Resolved=20?=
=?UTF-8?q?as=20suggested=20by=20MH=20=20=20=20=20=20=2033423:=20ALF-10312?=
=?UTF-8?q?:=20Parameter=20Based=20Redirection=20=20=20=20=20=20=20-=20Now?=
=?UTF-8?q?=20we=20validate=20that=20the=20Explorer=20login=20page=20redir?=
=?UTF-8?q?ect=20URL=20is=20within=20the=20context=20path=20of=20the=20app?=
=?UTF-8?q?lication=20(/alfresco)=20=20=20=20=20=20=2033424:=20Merged=20DE?=
=?UTF-8?q?V=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2033358:=20ALF?=
=?UTF-8?q?-11719:=20Webscript=20fails=20due=20to=20colon=20in=20password?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20Split=20basic=20authenti?=
=?UTF-8?q?cation=20header=20by=20first=20colon.=20Remaining=20part=20is?=
=?UTF-8?q?=20user's=20password.=20=20=20=20=20=20=2033425:=20Merged=20DEV?=
=?UTF-8?q?=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2033359:=20ALF-?=
=?UTF-8?q?12071:=20Windows=207=20cannot=20open=20files=20stored=20on=20Al?=
=?UTF-8?q?fresco=20mounted=20as=20a=20webdav=20network=20drive=20if=20the?=
=?UTF-8?q?=20filename=20contains=20+=20(plus)=20character=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20For=20Windows=207=20we=20SHOULD=20decod?=
=?UTF-8?q?e=20the=20file=20name=20gotten=20from=20GET=20request=20taking?=
=?UTF-8?q?=20into=20account=20that=20"+"=20is=20not=20encoded=20as=20"%2B?=
=?UTF-8?q?"=20for=20GET=20request.=20=20=20=20=20=20=2033426:=20Merged=20?=
=?UTF-8?q?DEV=20to=20V3.4-BUG-FIX=20(with=20corrections)=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=2033374:=20ALF-10713:=20Remaining=20dependencies?=
=?UTF-8?q?=20repo.remote.url=20from=20outboundSMTP-context.xml=20and=20ac?=
=?UTF-8?q?tivities-feed-context.xml=20was=20removed=20and=20SysAdminParam?=
=?UTF-8?q?s=20bean=20was=20injected=20instead.=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20-=20MailActionExecuter.URLHelper=20returns=20url=20?=
=?UTF-8?q?to=20alfresco=20using=20SysAdminParams.=20=20=20=20=20=20=20334?=
=?UTF-8?q?27:=20ALF-10713:=20repo.remote.url=20no=20longer=20used=20in=20?=
=?UTF-8?q?3.4.8=20so=20removed=20altogether=20=20=20=20=20=20=2033429:=20?=
=?UTF-8?q?Merged=20HEAD=20to=20BRANCHES\DEV\V3.4-BUG-FIX=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=2031191:=20First=20fix=20for=20ALF-10741=20TAG?=
=?UTF-8?q?=20field=20does=20not=20support=20wildcard,=20prefix,=20fuzzy?=
=?UTF-8?q?=20queries=20etc=20->=20wildcard=20searches=20entered=20by=20us?=
=?UTF-8?q?ers=20will=20fail=20(for=20ALF-12162)=20=20=20=20=20=20=2033433?=
=?UTF-8?q?:=20ALF-12411:=20Fixed=20postUpdateScriptPatches=20declaration?=
=?UTF-8?q?=20=20=20=20=20=20=2033435:=20ALF-11719:=20Fix=20Authorization?=
=?UTF-8?q?=20and=20AuthorizationTest=20=20=20=20=20=20=2033436:=20ALF-124?=
=?UTF-8?q?11:=20Fixed=20patch=20script=20paths=20=20=20=20=20=20=2033445:?=
=?UTF-8?q?=20Fixes:=20ALF-12389;=20internationalises=20the=20tool=20tip?=
=?UTF-8?q?=20strings=20for=20changing=20the=20data=20list=20sort=20order.?=
=?UTF-8?q?=20=20=20=20=20=20=2033449:=20ALF-12411:=20Fixes=20from=20Dmitr?=
=?UTF-8?q?y=20=20=20=20=20=20=20-=20Corrected=20ID=20of=20patch.db-V3.4-U?=
=?UTF-8?q?pgrade-JBPM=20=20=20=20=20=20=20-=20dependsOn=20property=20has?=
=?UTF-8?q?=20no=20effect=20on=20a=20SchemaUpgradeScriptPatch=20-=20order?=
=?UTF-8?q?=20controlled=20by=20schemaBootstrap.postUpdateScriptPatches=20?=
=?UTF-8?q?=20=20=20=20=20=2033459:=20ALF-9811:=20SSOAuthenticationFilter?=
=?UTF-8?q?=20now=20supports=20basic=20auth=20as=20well.=20=20=20=2033471:?=
=?UTF-8?q?=20ALF-12297=09Emailing=20to=20document=20via=20inbound=20SMTP?=
=?UTF-8?q?=20causes=20integrity=20violation=20=20=20=2033473:=20Reference?=
=?UTF-8?q?=20schema=20files=20moved=20on=20from=205025=20to=205026=20=20?=
=?UTF-8?q?=20=2033478:=20Fix=20for=20ALF-12515=20=20=20=2033479:=20Fix=20?=
=?UTF-8?q?for=20ALF-11116=20=20=20=2033481:=20Fix=20for=20ALF-12099=20=20?=
=?UTF-8?q?=20=2033487:=20Merged=20BRANCHES/DEV/mward/schemacomp=20to=20BR?=
=?UTF-8?q?ANCHES/DEV/V4.0-BUG-FIX:=20=20=20=20=20=20=2033485:=20ALF-12598?=
=?UTF-8?q?:=20Incorrect=20column=20order=20on=20indexes=20and=20primary?=
=?UTF-8?q?=20keys=20must=20be=20reported=20to=20user=20=20=20=2033496:=20?=
=?UTF-8?q?Merged=20BRANCHES/DEV/mward/schemacomp=20to=20BRANCHES/DEV/V4.0?=
=?UTF-8?q?-BUG-FIX:=20=20=20=20=20=20=2033494:=20ALF-12412:=20Schema=20re?=
=?UTF-8?q?ference=20files=20should=20contain=20schema=20version=20number?=
=?UTF-8?q?=20=20=20=2033508:=20Merged=20BRANCHES/DEV/mward/schemacomp=20t?=
=?UTF-8?q?o=20BRANCHES/DEV/V4.0-BUG-FIX:=20=20=20=20=20=20=2033507:=20ALF?=
=?UTF-8?q?-12412:=20Added=20missing=20files=20=20=20=2033515:=20Merge=20(?=
=?UTF-8?q?Record=20Only)=20V3.4-BUG-FIX=20to=20V4.0-BUG-FIX=20=20=20=20?=
=?UTF-8?q?=20=2033495=20:=20SDK=20Build=20fix=20-=20do=20not=20merge=20to?=
=?UTF-8?q?=20V4.0=20=20=20=2033517:=20V4.0=20version=20of=20the=20fix=20f?=
=?UTF-8?q?or=20ALF-12393=20=20=20=20=20-=20The=20node=20caching=20structu?=
=?UTF-8?q?re=20in=204.0=20is=20version-based=20and=20there=20was=20alread?=
=?UTF-8?q?y=20a=20check=20to=20=20=20=20=20=20=20ensure=20that=20in-memor?=
=?UTF-8?q?y=20vs=20database=20versions=20matched=20for=20all=20calls=20to?=
=?UTF-8?q?=20get=20parent=20associations.=20=20=20=20=20-=20Added=20an=20?=
=?UTF-8?q?additional=20version=20check=20for=20cases=20where=20the=20node?=
=?UTF-8?q?=20returns=20no=20parent=20associations=20=20=20=20=20-=20Remov?=
=?UTF-8?q?ed=20right=20outer=20joins=20associated=20with=20the=203.4=20fi?=
=?UTF-8?q?xes=20(minor=20complexity=20that=20is=20no=20longer=20required)?=
=?UTF-8?q?=20=20=20=2033555:=20Merged=20(RECORD=20ONLY)=20V3.4-BUG-FIX=20?=
=?UTF-8?q?(3.4.8)=20to=20V4.0-BUG-FIX=20(4.0.1)=20=20=20=20=20=20=2033554?=
=?UTF-8?q?:=20Merged=20V3.4=20(3.4.8)=20to=20V3.4-BUG-FIX=20(3.4.9)=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=2033512:=20GERMAN:=20L10N=20Updates,=20fi?=
=?UTF-8?q?xes:=20ALF-12154,=20ALF-9514,=20ALF-12389=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=2033513:=20SPANISH:=20L10N=20Updates,=20fixes:=20ALF-121?=
=?UTF-8?q?54,=20ALF-9514,=20ALF-12389=20=20=20=20=20=20=20=20=20=2033514:?=
=?UTF-8?q?=20FRENCH:=20L10N=20Updates,=20fixes:=20ALF-12154,=20ALF-9514,?=
=?UTF-8?q?=20ALF-12389=20=20=20=20=20=20=20=20=20=2033516:=20ITALIAN:=20L?=
=?UTF-8?q?10N=20Updates,=20fixes:=20ALF-12154,=20ALF-9514,=20ALF-12389=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=2033526:=20JAPANESE:=20L10N=20Updates,?=
=?UTF-8?q?=20fixes:=20ALF-12154,=20ALF-9514,=20ALF-12389=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=2033544:=20SPANISH:=20Fixes=20additional=20Spanish?=
=?UTF-8?q?=20translation=20bugs=20=20=20=20=20=20=20=20=20=2033552:=20JAP?=
=?UTF-8?q?ANESE:=20Adds=20previously=20missing=20workflow=20related=20tra?=
=?UTF-8?q?nslations=20=20=20=2033560:=20Fix=20the=20line=20endings=20to?=
=?UTF-8?q?=20be=20consistent=20=20=20=2033561:=20DOC-335=20Provide=20a=20?=
=?UTF-8?q?commented=20out=20example=20of=20SPP/Vti=20SSL=20Configuration?=
=?UTF-8?q?=20in=20the=20Module=20=20=20=2033563:=20Merge=20(Record=20Only?=
=?UTF-8?q?)=20V3.4-Bug-FIX=20to=20V4.0-BUG-FIX=20=20=20=20=20=2033328=20:?=
=?UTF-8?q?=20ALF-12098=20Issue=20ALF-4010=20not=20fully=20resolved.=20ftp?=
=?UTF-8?q?=20transfer=20of=20a=20previously=20moved=20file=20copies=20it?=
=?UTF-8?q?=20to=20the=20destination=20folder=20of=20the=20previous=20move?=
=?UTF-8?q?=20=20=20=2033566:=20fixed=20a=20comment.=20=20=20=2033567:=20S?=
=?UTF-8?q?mall=20change=20to=20debug=20logging=20=20=20=2033568:=20Remove?=
=?UTF-8?q?d=20deleteConfirm=20flag.=20=20=20Not=20neccessary=20as=20event?=
=?UTF-8?q?s=20are=20fired=20postCommit.=20=20=20=2033570:=20Merged=20V3.4?=
=?UTF-8?q?-BUG-FIX=20to=20V4.0-BUG-FIX=20=20=20=20=20=20=2033550:=20Fixed?=
=?UTF-8?q?=20ALF-10895=20"Links,=20documents=20and=20folders:=20Unable=20?=
=?UTF-8?q?to=20delete=20comments"=20=20=20=20=20=20=20=20=20=20-=20Made?=
=?UTF-8?q?=20sure=20no=20"content"=20is=20sent=20when=20using=20HTTP=20DE?=
=?UTF-8?q?LETE=20to=20avoid=20proxy=20issues=20=20=20=2033574:=20Merged?=
=?UTF-8?q?=20(RECORD=20ONLY)=20V3.4-BUG-FIX=20(3.4.8)=20to=20V4.0-BUG-FIX?=
=?UTF-8?q?=20(4.0.1)=20=20=20=20=20=20=2033573:=20Merged=20V3.4=20(3.4.8)?=
=?UTF-8?q?=20to=20V3.4-BUG-FIX=20(3.4.9)=20=20=20=20=20=20=20=20=20=20335?=
=?UTF-8?q?57:=20JAPANESE:=20Removes=20redundant=20string=20=20=20=2033576?=
=?UTF-8?q?:=20ALF-12634=20When=20building=20the=20edit=20online=20link=20?=
=?UTF-8?q?to=20SPP/Vti,=20don't=20assume=20that=20the=20protocol=20(http/?=
=?UTF-8?q?https)=20is=20the=20same=20as=20Share,=20but=20instead=20make?=
=?UTF-8?q?=20that=20a=20module=20property=20(similar=20to=20how=20the=20p?=
=?UTF-8?q?ort=20and=20hostname=20are=20set)=20=20=20=2033577:=20Remove=20?=
=?UTF-8?q?un-used=20imports=20=20=20=2033584:=20ALF-12363:=20Protect=20ag?=
=?UTF-8?q?ainst=20attempt=20to=20reference=20undefined=20rawPerms=20varia?=
=?UTF-8?q?ble=20in=20folder-permissions=20WebScript=20controller=20=20=20?=
=?UTF-8?q?=2033586:=20ALF-12405:=20Always=20show=20delete=20site=20icon?=
=?UTF-8?q?=20on=20My=20Sites=20dashlet=20when=20viewed=20on=20IE7=20=20?=
=?UTF-8?q?=20=2033605:=20Fixes:=20ALF-12408:=20Script=20Error=20when=20ho?=
=?UTF-8?q?vering=20on=20a=20row.=20=20=20=2033616:=20Merged=20BRANCHES\DE?=
=?UTF-8?q?V\V3.4-BUG-FIX=20to=20BRANCHES\DEV\V4.0-BUG-FIX=20=20=20=20=20?=
=?UTF-8?q?=20=20=2033500:=20Fix=20for=20ALF-12162=20Searching=20for=20wor?=
=?UTF-8?q?ds=20with=20german=20umlaut=20does=20not=20show=20expected=20re?=
=?UTF-8?q?sults=20=20=20=2033624:=20ALF-12488=20-=20CIFS=20error=20occurs?=
=?UTF-8?q?=20if=20Hazelcast=20Config=20is=20enabled.=20=20=20=2033637:=20?=
=?UTF-8?q?ALF-11594:=20Disable=20comment=20field=20on=20upload=20dialog?=
=?UTF-8?q?=20after=20version=20update=20=20=20=2033643:=20ALF-12243:=20Fi?=
=?UTF-8?q?xed=20create=20HTML=20content=20via=20HTML=20editor=20=20=20=20?=
=?UTF-8?q?33649:=20Minor:=20tabs=20=20=20=2033650:=20ALF-12657:=20We=20ne?=
=?UTF-8?q?ed=20to=20set=20maxSavePostSize=20for=20tomcat=20connectors=20t?=
=?UTF-8?q?o=20support=20SSL=20(e.g.=20ModelsGet=20from=20SOLR=20will=20tr?=
=?UTF-8?q?uncate=20JSON=20to=204096=20characters)=20=20=20=2033662:=20Fix?=
=?UTF-8?q?=20for=20ALF-12460=20=20=20=2033663:=20Fix=20for=20ALF-12460=20?=
=?UTF-8?q?(part=202)=20=20=20=2033664:=20Fix=20for=20ALF-12460=20(part=20?=
=?UTF-8?q?2)=20=20=20=2033665:=20Fix=20for=20ALF-12443=20=20=20=2033672:?=
=?UTF-8?q?=20Merged=20V3.4-BUG-FIX=20to=20V4.0-BUG-FIX=20=20=20=20=20=20?=
=?UTF-8?q?=2033468:=20Merged=20BRANCHES/V3.4=20to=20BRANCHES/DEV/V3.4-BUG?=
=?UTF-8?q?-FIX=20=20=20=20=20=20=20=20=20=2033467:=20Enterprise=20overlay?=
=?UTF-8?q?=20update=20for=20MessagesWebScript=20=20=20=20=20=20=2033470:?=
=?UTF-8?q?=20Merged=20BRANCHES/V3.4=20to=20BRANCHES/DEV/V3.4-BUG-FIX=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=2033469:=20Revert=20rev=2033467=20-=20?=
=?UTF-8?q?not=20required=20=20=20=20=20=20=2033482:=20Fixed=20ALF-12373?=
=?UTF-8?q?=20"IE7=20Specific:=20incorrect=20displaying=20of=20"Link=20to?=
=?UTF-8?q?=20Rule=20Set"=20window=20in=20Alfresco=20Share"=20=20=20=20=20?=
=?UTF-8?q?=20=20-=20also=20fixed=20for=20ie6=20removed=20javascript=20err?=
=?UTF-8?q?or=20thrown=20on=20click=20=20=20=20=20=20=2033580:=20Minor=20f?=
=?UTF-8?q?ormatting=20for=20easier=20debug=20stepping=20=20=20=20=20=20?=
=?UTF-8?q?=2033581:=20Fixed=20ALF-12638:=20No=20username=20in=20an=20audi?=
=?UTF-8?q?t=20context=20after=20an=20error=20=20=20=20=20=20=2033589:=20A?=
=?UTF-8?q?LF-12650:=20Merged=20V3.4.1=20to=20V3.4-BUG-FIX=20(3.4.9)=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=2033588:=20ALF-12620=20Regression.=20Sinc?=
=?UTF-8?q?e=203.4.1.25=20/=203.4.6.7=20a=20user=20can=20be=20invited=20to?=
=?UTF-8?q?=20a=20site=20multiple=20times=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20-=20correction=20to=20js=20contains=20function.=20Bug=20i?=
=?UTF-8?q?ntroduced=20in=20r32775=20=20=20=20=20=20=2033597:=20Merge=20DE?=
=?UTF-8?q?V=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=2033465=20:=20ALF?=
=?UTF-8?q?-11193=20-=20Consumer=20role=20cannot=20Unscribe/subscribe=20th?=
=?UTF-8?q?e=20IMAP=20folders.=20=20=20=20=20=20=2033602:=20Merged=20BRANC?=
=?UTF-8?q?HES/DEV/BELARUS/V3.4-BUG-FIX-2011=5F12=5F06=20to=20BRANCHES/DEV?=
=?UTF-8?q?/V3.4-BUG-FIX:=20=20=20=20=20=20=20=20=20=2032551:=20ALF-10133:?=
=?UTF-8?q?=20"Doc=20folder"=20for=20calendar=20events=20does=20not=20clea?=
=?UTF-8?q?r/reset=20itself=20=20=20=20=20=20=2033630:=20Merge=20Dev=20to?=
=?UTF-8?q?=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2033626=20:=20ALF-48?=
=?UTF-8?q?96=20-=20Lock=20icon=20displayed=20for=20documents=20with=20exp?=
=?UTF-8?q?ired=20lock=20=20=20=20=20=20=2033633:=20Merge=20V3.4.7=20(3.4.?=
=?UTF-8?q?7.1)=20to=20V3.4-BUG-FIX=20(3.4.9)=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=2033609:=20ALF-12589=20CLONE=20-=20Content=20Manager=20unable?=
=?UTF-8?q?=20to=20edit=20content=20from=20another=20user=20sandbox=20-=20?=
=?UTF-8?q?Hot=20Fix=20for=203.4.7=20needed=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20Changed=20the=20permissions=20on=20the=20user's=20'pre?=
=?UTF-8?q?view'=20store=20so=20that=20the=20group=20of=20ContentManagers?=
=?UTF-8?q?=20was=20granted=20the=20ContentManager=20permission.=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20It=20had=20been=20granting=20the?=
=?UTF-8?q?=20permission=20to=20all=20current=20users=20in=20the=20group?=
=?UTF-8?q?=20individually.=20As=20a=20result=20new=20ContentManagers=20co?=
=?UTF-8?q?uld=20not=20FLATTEN=20or=20WRITE=20to=20the=20preview=20store.?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20This=20had=20already=20b?=
=?UTF-8?q?een=20done=20for=20the=20main=20user=20store=20a=20few=20years?=
=?UTF-8?q?=20back.=20=20=20=20=20=20=20=20=20=20=20=20=20As=20the=20manag?=
=?UTF-8?q?ers=20parameter=20was=20no=20longer=20needed=20the=20was=20remo?=
=?UTF-8?q?ved.=20=20=20=20=20=20=2033647:=20Merged=20DEV=20to=20V3.4-BUG-?=
=?UTF-8?q?FIX=20=20=20=20=20=20=20=20=20=2033629:=20ALF-12585:=20Manage?=
=?UTF-8?q?=20System=20Users=20shows=20"Change=20Password"=20icon=20for=20?=
=?UTF-8?q?LDAP=20users=20in=20search=20results=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20Sets=20"isMutable"=20property=20using=20addProperty?=
=?UTF-8?q?Resolver=20in=20UsersDialog.=20=20=20=20=20=20=2033648:=20Merge?=
=?UTF-8?q?d=20DEV=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2033623:?=
=?UTF-8?q?=20ALF-10586:=20CMIS:=20Trying=20to=20delete=20a=20multilingual?=
=?UTF-8?q?=20document=20w/o=20translations=20via=20webscript=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20There=20is=20no=20need=20to=20delete?=
=?UTF-8?q?=20associations=20in=20CMISServicesImpl.deleteObject().=20=20?=
=?UTF-8?q?=20=20=20=20=2033659:=20Merged=20V3.4=20to=20V3.4-BUG-FIX=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=2033594:=20Merged=20BRANCHES/DEV/BELARUS/?=
=?UTF-8?q?V3.4-BUG-FIX-2011=5F12=5F06=20to=20BRANCHES/V3.4:=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=2032551:=20ALF-10133:=20"Doc=20folder"?=
=?UTF-8?q?=20for=20calendar=20events=20does=20not=20clear/reset=20itself?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=2033595:=20Reverse=20merge=20of=20t?=
=?UTF-8?q?he=20following.=20Should=20have=20been=20committed=20to=20V3.4-?=
=?UTF-8?q?BUG-FIX=20=20=20=20=20=20=20=20=20=20=20=20=2033594:=20Merged?=
=?UTF-8?q?=20BRANCHES/DEV/BELARUS/V3.4-BUG-FIX-2011=5F12=5F06=20to=20BRAN?=
=?UTF-8?q?CHES/V3.4:=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=2032551?=
=?UTF-8?q?:=20ALF-10133:=20"Doc=20folder"=20for=20calendar=20events=20doe?=
=?UTF-8?q?s=20not=20clear/reset=20itself=20=20=20=20=20=20=20=20=20=20336?=
=?UTF-8?q?04:=20ALF-12597:=20WCMQS=20doesn't=20work=20out=20of=20the=20bo?=
=?UTF-8?q?x=20=20=20=20=20=20=20=20=20=2033654:=20Merged=20DEV=20to=20V3.?=
=?UTF-8?q?4=20=20=20=20=20=20=20=20=20=20=20=20=2033622:=20ALF-12655:=20C?=
=?UTF-8?q?onfigure=20link=20isn't=20presented=20in=20Web=20View=20dashlet?=
=?UTF-8?q?(My=20Dashboard=20page)=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20User=20userIsSiteManager=20is=20true=20by=20default=20?=
=?UTF-8?q?in=20webview.get.js.=20This=20allows=20to=20configure=20Web=20V?=
=?UTF-8?q?iew=20dashlet=20on=20user's=20dashbord.=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=2033651:=20ALF-12655:=20Configure=20link=20isn't?=
=?UTF-8?q?=20presented=20in=20Web=20View=20dashlet(My=20Dashboard=20page)?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20Sets=20userIsSi?=
=?UTF-8?q?teManager=3Dfalse=20before=20remote=20call,=20so=20if=20remote?=
=?UTF-8?q?=20call=20fails=20it=20won't=20give=20site=20manager=20role=20t?=
=?UTF-8?q?o=20the=20user.=20=20=20=20=20=20=20=20=20=2033655:=20ALF-12366?=
=?UTF-8?q?:=20Merged=20PATCHES/V3.4.6=20to=20V3.4=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=2033548:=20ALF-12393:=20More=20changes=20to=20cope?=
=?UTF-8?q?=20with=20read=20committed=20DB=20behaviour=20in=20AbstractRein?=
=?UTF-8?q?dexComponent=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20-?=
=?UTF-8?q?=20Reverted=20r33278,=2033354,=2033355=20and=20introduced=20mor?=
=?UTF-8?q?e=20generic=20solution=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20-=20NodeRefs=20resolving=20to=20deleted=20nodes=20in?=
=?UTF-8?q?=20the=20cache=20cause=20cache=20cleaning=20and=20transaction?=
=?UTF-8?q?=20retry=20if=20they=20resolve=20OK=20in=20the=20database=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20-=20Cached=20parent?=
=?UTF-8?q?=20assocs=20are=20thrown=20away=20for=20non-deleted=20nodes=20i?=
=?UTF-8?q?f=20they=20are=20empty=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20-=20Removes=20the=20need=20for=20the=20outer=20join=20?=
=?UTF-8?q?and=20special=20case=20exception=20handling=20all=20over=20the?=
=?UTF-8?q?=20place=20=20=20=20=20=20=20=20=20=20=20=20=2033562:=20ALF-123?=
=?UTF-8?q?93:=20Further=20improvments=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20-=20Lookup=20of=20NodeRef=20to=20a=20deleted=20node?=
=?UTF-8?q?=20must=20always=20result=20in=20cache=20clearing=20and=20trans?=
=?UTF-8?q?action=20retrying=20(due=20to=20possible=20read=20committed=20b?=
=?UTF-8?q?ehaviour=20half=20way=20through=20transaction)=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20-=20Detection=20and=20correcti?=
=?UTF-8?q?on=20of=20stale=20cached=20negative=20results=20(VALUE=5FNOT=5F?=
=?UTF-8?q?FOUND)=20in=20node=20cache=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=2033583:=20ALF-12393:=20Rework=20to=20getNodePair(NodeRef)=20t?=
=?UTF-8?q?o=20have=20less=20impact=20on=20existing=20code=20but=20still?=
=?UTF-8?q?=20cope=20with=20read=20committed=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20-=20Look=20ups=20of=20deleted=20nodes=20still?=
=?UTF-8?q?=20cause=20InvalidNodeRefExceptions=20but=20these=20have=20a=20?=
=?UTF-8?q?retryable=20cause=20so=20that=20both=20handlers=20can=20handle?=
=?UTF-8?q?=20and=20retrying=20transactions=20can=20recover=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20-=20Corrections=20to=20cached?=
=?UTF-8?q?=20negative=20results=20(because=20the=20nodesCache=20remembers?=
=?UTF-8?q?=20negative=20results)=20are=20written=20straight=20through=20a?=
=?UTF-8?q?nd=20the=20transaction=20does=20not=20need=20to=20be=20retried?=
=?UTF-8?q?=20=20=20=20=20=20=2033660:=20Merged=20V3.4=20to=20V3.4-BUG-FIX?=
=?UTF-8?q?=20(RECORD=20ONLY)=20=20=20=20=20=20=20=20=20=2033634:=20ALF-12?=
=?UTF-8?q?161:=20Merge=20V3.4-BUG-FIX=20(3.4.9)=20to=20V3.4=20(3.4.8)=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=2033633:=20Merge=20V3.4.7=20(?=
=?UTF-8?q?3.4.7.1)=20to=20V3.4-BUG-FIX=20(3.4.9)=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=2033609:=20ALF-12589=20CLONE=20-=20Conten?=
=?UTF-8?q?t=20Manager=20unable=20to=20edit=20content=20from=20another=20u?=
=?UTF-8?q?ser=20sandbox=20-=20Hot=20Fix=20for=203.4.7=20needed=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20Changed=20the?=
=?UTF-8?q?=20permissions=20on=20the=20user's=20'preview'=20store=20so=20t?=
=?UTF-8?q?hat=20the=20group=20of=20ContentManagers=20was=20granted=20the?=
=?UTF-8?q?=20ContentManager=20permission.=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20It=20had=20been=20granting=20the=20p?=
=?UTF-8?q?ermission=20to=20all=20current=20users=20in=20the=20group=20ind?=
=?UTF-8?q?ividually.=20As=20a=20result=20new=20ContentManagers=20could=20?=
=?UTF-8?q?not=20FLATTEN=20or=20WRITE=20to=20the=20preview=20store.=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20This=20had?=
=?UTF-8?q?=20already=20been=20done=20for=20the=20main=20user=20store=20a?=
=?UTF-8?q?=20few=20years=20back.=20=20=20=20=20=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20As=20the=20managers=20parameter=20was=20no=20?=
=?UTF-8?q?longer=20needed=20the=20was=20removed.=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=2033657:=20ALF-12650:=20Merged=20PATCHES/V3.4.6=20to=20V3.4?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=2033590:=20ALF-12620:=20Me?=
=?UTF-8?q?rged=20V3.4-BUG-FIX=20(3.4.9)=20to=20V3.4.6=20(3.4.6.10)=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=2033589:=20ALF-12650:?=
=?UTF-8?q?=20Merged=20V3.4.1=20to=20V3.4-BUG-FIX=20(3.4.9)=20=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=2033588:=20ALF-12620=20?=
=?UTF-8?q?Regression.=20Since=203.4.1.25=20/=203.4.6.7=20a=20user=20can?=
=?UTF-8?q?=20be=20invited=20to=20a=20site=20multiple=20times=20=20=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20-=20corre?=
=?UTF-8?q?ction=20to=20js=20contains=20function.=20Bug=20introduced=20in?=
=?UTF-8?q?=20r32775=20=20=20=2033673:=20Fixed=20compilation=20error=20=20?=
=?UTF-8?q?=20=2033678:=20Merged=20V3.4-BUG-FIX=20to=20V4.0-BUG-FIX=20=20?=
=?UTF-8?q?=20=20=20=20=2033677:=20Merged=20V3.4=20to=20V3.4-BUG-FIX=20=20?=
=?UTF-8?q?=20=20=20=20=20=20=20=2033676:=20ALF-12436:=20Increase=20conten?=
=?UTF-8?q?t=20data=20cache=20sizes=20to=20match=20node=20properties=20cac?=
=?UTF-8?q?he=20sizes=20to=20allow=20bulk=20loading=20without=20overflowin?=
=?UTF-8?q?g=20=20=20=2033679:=20Merged=20V3.4-BUG-FIX=20to=20V4.0-BUG-FIX?=
=?UTF-8?q?=20(RECORD=20ONLY)=20=20=20=20=20=20=2033486:=20Merge=20V4.0-BU?=
=?UTF-8?q?G-FIX=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=2033306=20-?=
=?UTF-8?q?=20experiment=20to=20add=20sdk-extras=20=20=20=20=20=20=2033489?=
=?UTF-8?q?:=20Merged=20V4.0-BUG-FIX=20to=20V3.4-BUG-FIX=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=2033322=20:=20Enterprise=20SDK=20=20=20=20=20=20=20=20?=
=?UTF-8?q?=2033323=20=20=20=20=20=20=20=20=2033335=20=20=20=20=20=20=20?=
=?UTF-8?q?=20=2033353=20=20=20=20=20=20=20=20=2033457=20=20=20=20=20=20?=
=?UTF-8?q?=20=20=2033463=20=20=20=20=20=20=2033495:=20SDK=20Build=20fix?=
=?UTF-8?q?=20-=20do=20not=20merge=20to=20V4.0.=20=20=20=2033680:=20Merged?=
=?UTF-8?q?=20DEV=20to=20V4.0-BUG-FIX=20=20=20=20=20=20=2033675:=20ALF-123?=
=?UTF-8?q?79:=20WebLogic:=20alfresco=20fails=20to=20start:=20java.lang.No?=
=?UTF-8?q?SuchMethodError:=20org.apache.commons.lang.mutable.MutableInt.i?=
=?UTF-8?q?ncrement()V=20=20=20=20=20=20=20=20=20=20org.apache.commons.*?=
=?UTF-8?q?=20package=20should=20be=20used=20as=20application's=20preferra?=
=?UTF-8?q?ble=20for=20WebLogic.=20=20=20=2033683:=20Merged=20V3.4-BUG-FIX?=
=?UTF-8?q?=20to=20V4.0-BUG-FIX=20=20=20=20=20=20=2033682:=20Merged=20V3.4?=
=?UTF-8?q?=20to=20V3.4-BUG-FIX=20=20=20=20=20=20=20=20=20=2033681:=20ALF-?=
=?UTF-8?q?12132:=20Fix=20Bitrock's=20copy=20of=20the=20custom=20lotus=20c?=
=?UTF-8?q?ontext.=20Yuck!=20=20=20=2033689:=20Fix=20for=20ALF-12437=20Swi?=
=?UTF-8?q?tching=20from=20Lucene=20to=20Solr=20caused=20subsystems=20to?=
=?UTF-8?q?=20be=20in=20inconsistent=20state=20and=20repository=20to=20han?=
=?UTF-8?q?g=20=20=20=20-=20filter=20out=20changes=20to=20read=20only=20pr?=
=?UTF-8?q?operties=20when=20set=20in=20bulk=20-=20ie=20they=20are=20ignor?=
=?UTF-8?q?ed=20=20=20=2033691:=20Fix=20for=20ALF-12667=20=20=20=2033693:?=
=?UTF-8?q?=20Fix=20for=20ALF-12695=20SOLR=20should=20not=20appear=20to=20?=
=?UTF-8?q?work=20with=20AVM=20-=20it=20should=20not=20silently=20fail.=20?=
=?UTF-8?q?=20=20=20-=20AVM=20search=20and=20indexing=20will=20raise=20exc?=
=?UTF-8?q?eptions=20when=20used=20with=20SOLR=20=20=20=20-=20removed=20th?=
=?UTF-8?q?e=20AVM=20site=20bootstrap=20associated=20with=20Share=20in=20o?=
=?UTF-8?q?lder=20versions=20of=20the=20product.=20=20=20=2033701:=20Merge?=
=?UTF-8?q?d=20DEV=20to=20V4.0-BUG-FIX=20=20=20=20=20=20=2033697:=20ALF-12?=
=?UTF-8?q?691:=20Alfresco=20Explorer=20doesn't=20work:=20java.lang.NoClas?=
=?UTF-8?q?sDefFoundError:=20org/apache/commons/lang/builder/HashCodeBuild?=
=?UTF-8?q?er=20=20=20=20=20=20=20=20=20=20Shared=20library=20for=20WAS=20?=
=?UTF-8?q?was=20fixed.=20commons-lang-2.6.jar=20is=20used.=20=20=20=20337?=
=?UTF-8?q?04:=20ALF-12299=20-=20NFS=20subsystem=20enable/disable=20needs?=
=?UTF-8?q?=20a=20different=20attribute=20name=20=20=20=2033714:=20ALF-102?=
=?UTF-8?q?29:=20DOS=20Voodoo=20to=20set=20ALF=5FHOME=20to=20the=20parent?=
=?UTF-8?q?=20parent=20directory=20of=20the=20apply=5Famps=20script=20=20?=
=?UTF-8?q?=20=20-=20for=20/D=20%%D=20IN=20(%~dp0..\)=20do=20set=20ALF=5FH?=
=?UTF-8?q?OME=3D%%~dpD=20=20=20=20-=20Yuck!=20=20=20=2033721:=20Merged=20?=
=?UTF-8?q?BRANCHES/DEV/mward/schemacomp=20to=20BRANCHES/DEV/V4.0-BUG-FIX:?=
=?UTF-8?q?=20=20=20=20=20=20=2033720:=20Merged=20BRANCHES/DEV/BELARUS/V4.?=
=?UTF-8?q?0-BUG-FIX-2012=5F01=5F20=20to=20BRANCHES/DEV/mward/schemacomp:?=
=?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=2033631:=20LF-12355=20:=20Cre?=
=?UTF-8?q?ate=20schema=20reference=20files=20for=20SQL=20Server=20=20=20?=
=?UTF-8?q?=2033727:=20Test=20fix=20-=20fallout=20from=20removing=20the=20?=
=?UTF-8?q?bootstrap=20for=20the=20"sitestore"=20AVM=20store=20=20=20=2033?=
=?UTF-8?q?729:=20Fixes:=20ALF-12575=20-=20missing=20i18n=20strings.=20(tr?=
=?UTF-8?q?anslations=20pending)=20=20=20=2033738:=20SPANISH:=20Translatio?=
=?UTF-8?q?n=20updates=20based=20on=20EN=20r33523=20=20=20=2033739:=20Merg?=
=?UTF-8?q?ed=20DEV=20to=20V4.0-BUG-FIX=20=20=20=20=20=20=2033723:=20ALF-1?=
=?UTF-8?q?0229:=20apply=5Famps.bat=20doesn't=20work=20properly=20from=20a?=
=?UTF-8?q?lfresco-enterprise-4.0.0a.zip=20=20=20=20=20=20=20=20=20=20Fix?=
=?UTF-8?q?=20for=20apply=5Famps.sh=20to=20set=20ALF=5FHOME=20to=20the=20p?=
=?UTF-8?q?arent=20parent=20directory=20of=20the=20apply=5Famps=20script?=
=?UTF-8?q?=20=20=20=2033746:=20ALF-10656=20SOLR:=20Patches=20execute=20se?=
=?UTF-8?q?arch=20during=20bootstrap=20causing=20deadlock=20=20=20=20-=20P?=
=?UTF-8?q?art=201:=20=20=20=20=20=20-=20SOLR=20query=20use=20during=20boo?=
=?UTF-8?q?tstrap=20will=20throw=20an=20exception=20=20=20=20=20=20-=20tid?=
=?UTF-8?q?y=20up=20some=20patch=20beans=20=20=20=20=20=20-=20ignore=20unu?=
=?UTF-8?q?sed=20AVM=20"sitestore"=20in=20WCMPostPermissionSnapshotPatch?=
=?UTF-8?q?=20=20=20=2033753:=20Remove=20upgrade=20installers=20from=20bui?=
=?UTF-8?q?ld=20targets?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@33758 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
---
.../org/alfresco/cmis/acl.get.desc.xml | 2 +-
.../org/alfresco/cmis/acl.put.desc.xml | 2 +-
.../cmis/allowableactions.get.desc.xml | 2 +-
.../org/alfresco/cmis/changes.get.desc.xml | 2 +-
.../org/alfresco/cmis/checkedout.get.desc.xml | 2 +-
.../alfresco/cmis/checkedout.post.desc.xml | 2 +-
.../org/alfresco/cmis/children.get.desc.xml | 2 +-
.../org/alfresco/cmis/children.post.desc.xml | 2 +-
.../alfresco/cmis/client/content.get.desc.xml | 1 +
.../org/alfresco/cmis/cmis.get.desc.xml | 2 +-
.../org/alfresco/cmis/content.delete.desc.xml | 2 +-
.../org/alfresco/cmis/content.get.desc.xml | 2 +-
.../org/alfresco/cmis/content.put.desc.xml | 2 +-
.../alfresco/cmis/descendants.delete.desc.xml | 2 +-
.../alfresco/cmis/descendants.get.desc.xml | 2 +-
.../org/alfresco/cmis/index.get.desc.xml | 2 +-
.../org/alfresco/cmis/item.delete.desc.xml | 2 +-
.../org/alfresco/cmis/item.get.desc.xml | 2 +-
.../org/alfresco/cmis/item.patch.desc.xml | 2 +-
.../org/alfresco/cmis/item.put.desc.xml | 2 +-
.../org/alfresco/cmis/parent.get.desc.xml | 2 +-
.../org/alfresco/cmis/parents.get.desc.xml | 2 +-
.../org/alfresco/cmis/policies.get.desc.xml | 2 +-
.../org/alfresco/cmis/policies.post.desc.xml | 2 +-
.../org/alfresco/cmis/pwc.delete.desc.xml | 2 +-
.../org/alfresco/cmis/pwc.get.desc.xml | 2 +-
.../org/alfresco/cmis/pwc.patch.desc.xml | 2 +-
.../org/alfresco/cmis/pwc.put.desc.xml | 2 +-
.../org/alfresco/cmis/queries.post.desc.xml | 2 +-
.../org/alfresco/cmis/query.get.desc.xml | 2 +-
.../cmis/relallowableactions.get.desc.xml | 2 +-
.../cmis/relationship.delete.desc.xml | 2 +-
.../alfresco/cmis/relationship.get.desc.xml | 2 +-
.../alfresco/cmis/relationships.get.desc.xml | 2 +-
.../alfresco/cmis/relationships.post.desc.xml | 2 +-
.../org/alfresco/cmis/test.post.desc.xml | 2 +-
.../org/alfresco/cmis/tree.delete.desc.xml | 2 +-
.../org/alfresco/cmis/tree.get.desc.xml | 2 +-
.../org/alfresco/cmis/type.get.desc.xml | 2 +-
.../alfresco/cmis/typechildren.get.desc.xml | 2 +-
.../cmis/typedescendants.get.desc.xml | 2 +-
.../org/alfresco/cmis/unfiled.get.desc.xml | 2 +-
.../org/alfresco/cmis/versions.get.desc.xml | 2 +-
.../bulkfilesystemimport/status.get.html.ftl | 4 +-
.../repository/category/category.delete.js | 6 +-
.../category/category.delete.json.ftl | 4 +-
.../category/category.post.json.ftl | 4 +-
.../repository/category/category.post.json.js | 6 +-
.../repository/category/category.put.json.ftl | 4 +-
.../repository/category/category.put.json.js | 6 +-
.../mimetype-descriptions.get.desc.xml | 14 ++
.../mimetype-descriptions.get.json.ftl | 21 ++
.../repository/invite/invites.get.desc.xml | 1 +
.../site/membership/potentialmembers.get.js | 22 +-
.../web-scripts-application-context.xml | 6 +
.../alfresco/repo/web/scripts/RepoStore.java | 27 +--
.../repo/web/scripts/bean/LoginTicket.java | 192 ++++++++--------
.../web/scripts/bean/LoginTicketDelete.java | 216 +++++++++---------
.../blogs/posts/AbstractGetBlogWebScript.java | 4 +-
.../BulkFilesystemImportStatusWebScript.java | 16 +-
.../content/MimetypeDescriptionsGet.java | 92 ++++++++
.../web/scripts/invite/InviteServiceTest.java | 3 +
.../repo/web/scripts/invite/Invites.java | 62 +++--
.../org/alfresco/repo/webdav/GetMethod.java | 4 +-
.../alfresco/repo/webdav/WebDAVHelper.java | 36 +--
.../alfresco/repo/webdav/WebDAVServlet.java | 3 +-
.../org/alfresco/repo/webservice/Utils.java | 3 +-
67 files changed, 519 insertions(+), 322 deletions(-)
create mode 100644 config/alfresco/templates/webscripts/org/alfresco/repository/content/mimetype-descriptions.get.desc.xml
create mode 100644 config/alfresco/templates/webscripts/org/alfresco/repository/content/mimetype-descriptions.get.json.ftl
create mode 100644 source/java/org/alfresco/repo/web/scripts/content/MimetypeDescriptionsGet.java
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/acl.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/acl.get.desc.xml
index 5dddc4fcc3..4b975a707d 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/acl.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/acl.get.desc.xml
@@ -41,5 +41,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/acl.put.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/acl.put.desc.xml
index 134eed66cb..56fe336a76 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/acl.put.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/acl.put.desc.xml
@@ -44,5 +44,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/allowableactions.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/allowableactions.get.desc.xml
index a88f54a0f2..1aec1359c2 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/allowableactions.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/allowableactions.get.desc.xml
@@ -42,5 +42,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/changes.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/changes.get.desc.xml
index 626de41e49..303a948ac6 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/changes.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/changes.get.desc.xml
@@ -35,5 +35,5 @@
admin
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/checkedout.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/checkedout.get.desc.xml
index 80addf1a99..7ca78696af 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/checkedout.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/checkedout.get.desc.xml
@@ -46,5 +46,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/checkedout.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/checkedout.post.desc.xml
index c91292838a..d001c6b359 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/checkedout.post.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/checkedout.post.desc.xml
@@ -18,5 +18,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/children.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/children.get.desc.xml
index fb66288bef..e5d93ddc10 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/children.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/children.get.desc.xml
@@ -75,5 +75,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/children.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/children.post.desc.xml
index 897afb001c..7a12560d10 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/children.post.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/children.post.desc.xml
@@ -53,5 +53,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/client/content.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/client/content.get.desc.xml
index 269566ac2c..2a443f3aed 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/client/content.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/client/content.get.desc.xml
@@ -2,4 +2,5 @@
CMIS Content Stream
/cmis/content
user
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/cmis.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/cmis.get.desc.xml
index a621e4d7b6..9a1e174632 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/cmis.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/cmis.get.desc.xml
@@ -17,5 +17,5 @@
user
CMIS
- public_api
+ deprecated
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/content.delete.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/content.delete.desc.xml
index ec29c1f44a..b4d7a15fac 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/content.delete.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/content.delete.desc.xml
@@ -47,5 +47,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/content.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/content.get.desc.xml
index 4af15ecd1a..bccd2bb6e8 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/content.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/content.get.desc.xml
@@ -58,5 +58,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/content.put.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/content.put.desc.xml
index 5dd2a15c81..ea998992a5 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/content.put.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/content.put.desc.xml
@@ -52,5 +52,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/descendants.delete.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/descendants.delete.desc.xml
index 176f14f7ea..32e866bfea 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/descendants.delete.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/descendants.delete.desc.xml
@@ -49,5 +49,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/descendants.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/descendants.get.desc.xml
index c5e03ad911..94e8ac45bb 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/descendants.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/descendants.get.desc.xml
@@ -72,5 +72,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/index.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/index.get.desc.xml
index dffff0e88e..339ffd5cb3 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/index.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/index.get.desc.xml
@@ -10,5 +10,5 @@
none
required
CMIS
- public_api
+ deprecated
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/item.delete.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/item.delete.desc.xml
index 0b96da3965..329f2307aa 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/item.delete.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/item.delete.desc.xml
@@ -38,5 +38,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/item.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/item.get.desc.xml
index 913b6de350..49ab22512d 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/item.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/item.get.desc.xml
@@ -77,5 +77,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/item.patch.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/item.patch.desc.xml
index 966d9851ad..7e4ba03d26 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/item.patch.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/item.patch.desc.xml
@@ -44,5 +44,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/item.put.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/item.put.desc.xml
index 93a60333e1..fcae8ab99b 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/item.put.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/item.put.desc.xml
@@ -44,5 +44,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/parent.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/parent.get.desc.xml
index 510e28379d..f8c7e4b9b8 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/parent.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/parent.get.desc.xml
@@ -54,5 +54,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/parents.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/parents.get.desc.xml
index f3c5d5b278..0087bd6c59 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/parents.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/parents.get.desc.xml
@@ -63,5 +63,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/policies.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/policies.get.desc.xml
index 58966b0bf5..c3928211ee 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/policies.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/policies.get.desc.xml
@@ -50,5 +50,5 @@
guest
argument
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/policies.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/policies.post.desc.xml
index 0a4b353219..113ebc7485 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/policies.post.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/policies.post.desc.xml
@@ -44,5 +44,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.delete.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.delete.desc.xml
index a518942a16..ebdd101f9c 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.delete.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.delete.desc.xml
@@ -25,5 +25,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.get.desc.xml
index 63bf426092..1131857f9c 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.get.desc.xml
@@ -48,5 +48,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.patch.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.patch.desc.xml
index 212c644ebf..7cd55733e4 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.patch.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.patch.desc.xml
@@ -43,5 +43,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.put.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.put.desc.xml
index 212c644ebf..7cd55733e4 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.put.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/pwc.put.desc.xml
@@ -43,5 +43,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/queries.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/queries.post.desc.xml
index 77d126d235..1089ead385 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/queries.post.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/queries.post.desc.xml
@@ -19,5 +19,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/query.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/query.get.desc.xml
index 787550864f..8b4f503589 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/query.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/query.get.desc.xml
@@ -47,5 +47,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/relallowableactions.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/relallowableactions.get.desc.xml
index c5005de05e..289dc1591d 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/relallowableactions.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/relallowableactions.get.desc.xml
@@ -22,5 +22,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/relationship.delete.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/relationship.delete.desc.xml
index c85ed94f91..b8a37fcedd 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/relationship.delete.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/relationship.delete.desc.xml
@@ -17,5 +17,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/relationship.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/relationship.get.desc.xml
index 3794a157c6..2c4c4dde5c 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/relationship.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/relationship.get.desc.xml
@@ -30,5 +30,5 @@
guest
CMIS
- public_api
+ deprecated
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/relationships.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/relationships.get.desc.xml
index 3e24a4c365..c67d4b4a66 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/relationships.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/relationships.get.desc.xml
@@ -73,5 +73,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/relationships.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/relationships.post.desc.xml
index e47b860895..d94d61804e 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/relationships.post.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/relationships.post.desc.xml
@@ -44,5 +44,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/test.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/test.post.desc.xml
index 279fae8eb1..f5dfa913bd 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/test.post.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/test.post.desc.xml
@@ -37,5 +37,5 @@
none
CMIS
- public_api
+ deprecated
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/tree.delete.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/tree.delete.desc.xml
index 0dec0872e9..f6ba335013 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/tree.delete.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/tree.delete.desc.xml
@@ -48,5 +48,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/tree.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/tree.get.desc.xml
index 29ade057c8..a176ec1d92 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/tree.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/tree.get.desc.xml
@@ -68,5 +68,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/type.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/type.get.desc.xml
index 803abc0db2..d0c0c8519e 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/type.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/type.get.desc.xml
@@ -27,5 +27,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/typechildren.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/typechildren.get.desc.xml
index 5bc45f8b22..201857f58e 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/typechildren.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/typechildren.get.desc.xml
@@ -36,5 +36,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/typedescendants.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/typedescendants.get.desc.xml
index 4db98f5447..f604b33812 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/typedescendants.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/typedescendants.get.desc.xml
@@ -33,5 +33,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/unfiled.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/unfiled.get.desc.xml
index 98fabf115e..70f9a2dc48 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/unfiled.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/unfiled.get.desc.xml
@@ -11,5 +11,5 @@
guest
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/versions.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/versions.get.desc.xml
index 399285aa1d..5c19b277c4 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/versions.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/versions.get.desc.xml
@@ -51,5 +51,5 @@
user
CMIS
- public_api
+ deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/bulkfilesystemimport/status.get.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/bulkfilesystemimport/status.get.html.ftl
index c026f8653a..c14dbbfe54 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/bulkfilesystemimport/status.get.html.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/bulkfilesystemimport/status.get.html.ftl
@@ -291,7 +291,9 @@
This page will automatically refresh in ${refreshIntervalInSeconds} seconds.
[#else]
Initiate another import
- Initiate another in-place import
+ [#if isEnterprise]
+ Initiate another in-place import
+ [/#if]
[/#if]
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.delete.js b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.delete.js
index 0eb9b3a5b2..61b483a92d 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.delete.js
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.delete.js
@@ -40,14 +40,14 @@ function main()
}
// The message depends on the search service in use
- var message = "Category successfully removed.";
+ var messageKey = "message.removeCategory.success";
if (search.searchSubsystem == "solr")
{
- message = "Category deletion successfully queued with SOLR for removal. Please not that it may take a few moments until it is deleted; you will need to refresh to see the change once it has been actioned";
+ messageKey = "message.removeCategory.solr.success";
}
// Set model properties
- model.message = message;
+ model.messageKey = messageKey;
}
main();
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.delete.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.delete.json.ftl
index 61837f887f..989ad8343d 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.delete.json.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.delete.json.ftl
@@ -1,6 +1,6 @@
{
<#if redirect??>"redirect": "${redirect}",#if>
- <#if persistedObject??>"persistedObject": "${persistedObject?string}",#if>
+ <#if persistedObject??>"persistedObject": "${persistedObject?replace("\t", "")?string}",#if>
<#if name??>"name": "${name}",#if>
- "message": "${message}"
+ "message": "${msg(messageKey)}"
}
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.post.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.post.json.ftl
index dc1bd8dd41..1bd7b22c2e 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.post.json.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.post.json.ftl
@@ -1,6 +1,6 @@
{
<#if redirect??>"redirect": "${redirect}",#if>
- <#if persistedObject??>"persistedObject": "${persistedObject?string}",#if>
- "message": "${message}",
+ <#if persistedObject??>"persistedObject": "${persistedObject?replace("\t", "")?string}",#if>
+ "message": "${msg(messageKey)}",
"name": "${name}"
}
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.post.json.js b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.post.json.js
index 93bcd90d0e..3ea179e865 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.post.json.js
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.post.json.js
@@ -81,14 +81,14 @@ function main()
}
// The message depends on the search service in use
- var message = "Successfully added category";
+ var messageKey = "message.addCategory.success";
if (search.searchSubsystem == "solr")
{
- message = "New category successfully queued with SOLR for addition. Please not that it may take a few moments until it is added; you will need to refresh to see the change once it has been actioned";
+ messageKey = "message.addCategory.solr.success";
}
// Build the rest of the model
- model.message = message;
+ model.messageKey = messageKey;
model.name = name;
}
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.put.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.put.json.ftl
index dc1bd8dd41..c1649ece35 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.put.json.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.put.json.ftl
@@ -1,6 +1,6 @@
{
<#if redirect??>"redirect": "${redirect}",#if>
- <#if persistedObject??>"persistedObject": "${persistedObject?string}",#if>
- "message": "${message}",
+ <#if persistedObject??>"persistedObject": "${persistedObject?replace("\t", "")?string)}",#if>
+ "message": "${msg(messageKey)}",
"name": "${name}"
}
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.put.json.js b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.put.json.js
index cc9a3373c1..f8e976ac54 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.put.json.js
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/category/category.put.json.js
@@ -48,15 +48,15 @@ function main()
}
// The message depends on the search service in use
- var message = "Successfully changed name of category";
+ var messageKey = "message.changeCategoryName.success";
if (search.searchSubsystem == "solr")
{
- message = "Category update successfully queued with SOLR for changes. Please not that it may take a few moments until it is updated; you will need to refresh to see the change once it has been actioned";
+ messageKey = "message.changeCategoryName.solr.success";
}
// Build the rest of the model
model.persistedObject = category.toString();
- model.message = message;
+ model.messageKey = messageKey;
model.name = name;
}
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/content/mimetype-descriptions.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/content/mimetype-descriptions.get.desc.xml
new file mode 100644
index 0000000000..037d743aea
--- /dev/null
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/content/mimetype-descriptions.get.desc.xml
@@ -0,0 +1,14 @@
+
+ For all known Mime Types, return their descriptions
+
+ Returns a list of all mime types, along with their descriptions, such as
+ "MS Project" for "application/vnd.ms-project", and their normal file
+ extensions.
+ This information is retrieved from the Mimetype Service, based on the
+ mimetype map(s) defined for the repository.
+
+ /api/mimetypes/descriptions
+
+ none
+ required
+
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/content/mimetype-descriptions.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/content/mimetype-descriptions.get.json.ftl
new file mode 100644
index 0000000000..947da8b24f
--- /dev/null
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/content/mimetype-descriptions.get.json.ftl
@@ -0,0 +1,21 @@
+{
+ "data": {
+<#escape x as jsonUtils.encodeJSONString(x)>
+ <#list mimetypes?keys as mimetype>
+ "${mimetype}": {
+ "description": "${mimetypes[mimetype]}",
+ "extensions": {
+ "default": "${defaultExtensions[mimetype]}",
+ "additional": [
+ <#if (otherExtensions[mimetype])?has_content>
+ <#list otherExtensions[mimetype] as ext>
+ "${ext}"<#if ext_has_next>,#if>
+ #list>
+ #if>
+ ]
+ }
+ }<#if mimetype_has_next>,#if>
+ #list>
+#escape>
+ }
+}
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/invite/invites.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/invite/invites.get.desc.xml
index db1ef5d1ec..9beba49139 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/invite/invites.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/invite/invites.get.desc.xml
@@ -5,5 +5,6 @@
/api/invites?inviteId={inviteId}
argument
user
+ required
deprecated
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/site/membership/potentialmembers.get.js b/config/alfresco/templates/webscripts/org/alfresco/repository/site/membership/potentialmembers.get.js
index ef85f91298..a703600264 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/site/membership/potentialmembers.get.js
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/site/membership/potentialmembers.get.js
@@ -20,13 +20,19 @@ function main()
var peopleFound = [],
groupsFound = [],
notAllowed = [],
- i, ii, name, paging;
+ i, ii, name, paging,
+ siteInvitations = [];
if (authorityType == null || authorityType == "USER")
{
// Get the collection of people
peopleFound = people.getPeople(filter, maxResults);
+ var criteria = {
+ resourceName: siteShortName
+ };
+ siteInvitations = invitations.listInvitations(criteria);
+
// Filter this collection for site membership
for (i = 0, ii = peopleFound.length; i < ii; i++)
{
@@ -38,11 +44,7 @@ function main()
}
else
{
- var criteria = {
- resourceName: siteShortName,
- inviteeUserName: name
- };
- if (invitations.listInvitations(criteria).length != 0)
+ if (contains(siteInvitations, name))
{
// User has already got an invitation
notAllowed.push(name);
@@ -76,4 +78,12 @@ function main()
model.notAllowed = notAllowed;
}
+function contains(arr, value) {
+ var i = arr.length;
+ while (i--) {
+ if (arr[i].inviteeUserName == value) return true;
+ }
+ return false;
+}
+
main();
\ No newline at end of file
diff --git a/config/alfresco/web-scripts-application-context.xml b/config/alfresco/web-scripts-application-context.xml
index 6ed7711953..04c3ab0cae 100644
--- a/config/alfresco/web-scripts-application-context.xml
+++ b/config/alfresco/web-scripts-application-context.xml
@@ -529,6 +529,11 @@
+
+
+
+
+
@@ -1794,6 +1799,7 @@
class="org.alfresco.repo.web.scripts.bulkimport.BulkFilesystemImportStatusWebScript"
parent="webscript">
+
diff --git a/source/java/org/alfresco/repo/web/scripts/RepoStore.java b/source/java/org/alfresco/repo/web/scripts/RepoStore.java
index 4bc2eb61b7..8cac105ffa 100644
--- a/source/java/org/alfresco/repo/web/scripts/RepoStore.java
+++ b/source/java/org/alfresco/repo/web/scripts/RepoStore.java
@@ -350,19 +350,20 @@ public class RepoStore extends AbstractStore implements TenantDeployer
namespaceService,
false,
SearchService.LANGUAGE_XPATH);
- for (NodeRef nodeRef : nodeRefs)
- {
- if (isContentPresent(nodeRef))
- {
- String name = (String)nodeService.getProperty(nodeRef, ContentModel.PROP_NAME);
- if (name.startsWith(id))
- {
- String nodeDir = getPath(nodeRef);
- String documentPath = nodeDir.substring(baseDirLength);
- documentPaths.add(documentPath);
- }
- }
- }
+ documentPaths = new ArrayList(nodeRefs.size());
+ for (NodeRef nodeRef : nodeRefs)
+ {
+ if (isContentPresent(nodeRef))
+ {
+ String name = (String)nodeService.getProperty(nodeRef, ContentModel.PROP_NAME);
+ if (name.startsWith(id))
+ {
+ String nodeDir = getPath(nodeRef);
+ String documentPath = nodeDir.substring(baseDirLength);
+ documentPaths.add(documentPath);
+ }
+ }
+ }
// String query = "+PATH:\"" + repoScriptPath.toPrefixString(namespaceService) +
diff --git a/source/java/org/alfresco/repo/web/scripts/bean/LoginTicket.java b/source/java/org/alfresco/repo/web/scripts/bean/LoginTicket.java
index 53f43d7938..42994f130d 100644
--- a/source/java/org/alfresco/repo/web/scripts/bean/LoginTicket.java
+++ b/source/java/org/alfresco/repo/web/scripts/bean/LoginTicket.java
@@ -1,96 +1,96 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.bean;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletResponse;
-
-import org.alfresco.repo.security.authentication.AuthenticationException;
-import org.alfresco.repo.security.authentication.AuthenticationUtil;
-import org.alfresco.repo.security.authentication.TicketComponent;
-import org.springframework.extensions.webscripts.DeclarativeWebScript;
-import org.springframework.extensions.webscripts.Status;
-import org.springframework.extensions.webscripts.WebScriptException;
-import org.springframework.extensions.webscripts.WebScriptRequest;
-
-
-/**
- * Login Ticket
- *
- * @author davidc
- */
-public class LoginTicket extends DeclarativeWebScript
-{
- // dependencies
- private TicketComponent ticketComponent;
-
- /**
- * @param ticketComponent
- */
- public void setTicketComponent(TicketComponent ticketComponent)
- {
- this.ticketComponent = ticketComponent;
- }
-
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.DeclarativeWebScript#executeImpl(org.alfresco.web.scripts.WebScriptRequest, org.alfresco.web.scripts.WebScriptResponse)
- */
- @Override
- protected Map executeImpl(WebScriptRequest req, Status status)
- {
- // retrieve ticket from request and current ticket
- String ticket = req.getExtensionPath();
- if (ticket == null && ticket.length() == 0)
- {
- throw new WebScriptException(HttpServletResponse.SC_BAD_REQUEST, "Ticket not specified");
- }
-
- // construct model for ticket
- Map model = new HashMap(1, 1.0f);
- model.put("ticket", ticket);
-
- try
- {
- String ticketUser = ticketComponent.validateTicket(ticket);
-
- String currentUser = AuthenticationUtil.getFullyAuthenticatedUser();
-
- // do not go any further if tickets are different
- // or the user is not fully authenticated
- if (currentUser == null || !currentUser.equals(ticketUser))
- {
- status.setRedirect(true);
- status.setCode(HttpServletResponse.SC_NOT_FOUND);
- status.setMessage("Ticket not found");
- }
- }
- catch (AuthenticationException e)
- {
- status.setRedirect(true);
- status.setCode(HttpServletResponse.SC_NOT_FOUND);
- status.setMessage("Ticket not found");
- }
-
- return model;
- }
-
-}
+/*
+ * Copyright (C) 2005-2010 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+package org.alfresco.repo.web.scripts.bean;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.alfresco.repo.security.authentication.AuthenticationException;
+import org.alfresco.repo.security.authentication.AuthenticationUtil;
+import org.alfresco.repo.security.authentication.TicketComponent;
+import org.springframework.extensions.webscripts.DeclarativeWebScript;
+import org.springframework.extensions.webscripts.Status;
+import org.springframework.extensions.webscripts.WebScriptException;
+import org.springframework.extensions.webscripts.WebScriptRequest;
+
+
+/**
+ * Login Ticket
+ *
+ * @author davidc
+ */
+public class LoginTicket extends DeclarativeWebScript
+{
+ // dependencies
+ private TicketComponent ticketComponent;
+
+ /**
+ * @param ticketComponent
+ */
+ public void setTicketComponent(TicketComponent ticketComponent)
+ {
+ this.ticketComponent = ticketComponent;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.alfresco.web.scripts.DeclarativeWebScript#executeImpl(org.alfresco.web.scripts.WebScriptRequest, org.alfresco.web.scripts.WebScriptResponse)
+ */
+ @Override
+ protected Map executeImpl(WebScriptRequest req, Status status)
+ {
+ // retrieve ticket from request and current ticket
+ String ticket = req.getExtensionPath();
+ if (ticket == null || ticket.length() == 0)
+ {
+ throw new WebScriptException(HttpServletResponse.SC_BAD_REQUEST, "Ticket not specified");
+ }
+
+ // construct model for ticket
+ Map model = new HashMap(1, 1.0f);
+ model.put("ticket", ticket);
+
+ try
+ {
+ String ticketUser = ticketComponent.validateTicket(ticket);
+
+ String currentUser = AuthenticationUtil.getFullyAuthenticatedUser();
+
+ // do not go any further if tickets are different
+ // or the user is not fully authenticated
+ if (currentUser == null || !currentUser.equals(ticketUser))
+ {
+ status.setRedirect(true);
+ status.setCode(HttpServletResponse.SC_NOT_FOUND);
+ status.setMessage("Ticket not found");
+ }
+ }
+ catch (AuthenticationException e)
+ {
+ status.setRedirect(true);
+ status.setCode(HttpServletResponse.SC_NOT_FOUND);
+ status.setMessage("Ticket not found");
+ }
+
+ return model;
+ }
+
+}
diff --git a/source/java/org/alfresco/repo/web/scripts/bean/LoginTicketDelete.java b/source/java/org/alfresco/repo/web/scripts/bean/LoginTicketDelete.java
index 19b4e3a5f6..f2efc85951 100644
--- a/source/java/org/alfresco/repo/web/scripts/bean/LoginTicketDelete.java
+++ b/source/java/org/alfresco/repo/web/scripts/bean/LoginTicketDelete.java
@@ -1,108 +1,108 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.bean;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletResponse;
-
-import org.alfresco.repo.security.authentication.AuthenticationException;
-import org.alfresco.repo.security.authentication.AuthenticationUtil;
-import org.alfresco.repo.security.authentication.TicketComponent;
-import org.alfresco.service.cmr.security.AuthenticationService;
-import org.springframework.extensions.webscripts.DeclarativeWebScript;
-import org.springframework.extensions.webscripts.Status;
-import org.springframework.extensions.webscripts.WebScriptException;
-import org.springframework.extensions.webscripts.WebScriptRequest;
-
-
-/**
- * Delete Login Ticket
- *
- * @author davidc
- */
-public class LoginTicketDelete extends DeclarativeWebScript
-{
- // dependencies
- private AuthenticationService authenticationService;
- private TicketComponent ticketComponent;
-
- /**
- * @param ticketComponent
- */
- public void setTicketComponent(TicketComponent ticketComponent)
- {
- this.ticketComponent = ticketComponent;
- }
-
- /**
- * @param authenticationService
- */
- public void setAuthenticationService(AuthenticationService authenticationService)
- {
- this.authenticationService = authenticationService;
- }
-
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.DeclarativeWebScript#executeImpl(org.alfresco.web.scripts.WebScriptRequest, org.alfresco.web.scripts.WebScriptResponse)
- */
- @Override
- protected Map executeImpl(WebScriptRequest req, Status status)
- {
- // retrieve ticket from request and current ticket
- String ticket = req.getExtensionPath();
- if (ticket == null && ticket.length() == 0)
- {
- throw new WebScriptException(HttpServletResponse.SC_BAD_REQUEST, "Ticket not specified");
- }
-
- // construct model for ticket
- Map model = new HashMap(1, 1.0f);
- model.put("ticket", ticket);
-
- try
- {
- String ticketUser = ticketComponent.validateTicket(ticket);
-
- // do not go any further if tickets are different
- if (!AuthenticationUtil.getFullyAuthenticatedUser().equals(ticketUser))
- {
- status.setCode(HttpServletResponse.SC_NOT_FOUND);
- status.setMessage("Ticket not found");
- }
- else
- {
- // delete the ticket
- authenticationService.invalidateTicket(ticket);
- status.setMessage("Deleted Ticket " + ticket);
- }
- }
- catch(AuthenticationException e)
- {
- status.setCode(HttpServletResponse.SC_NOT_FOUND);
- status.setMessage("Ticket not found");
- }
-
- status.setRedirect(true);
- return model;
- }
-
-}
+/*
+ * Copyright (C) 2005-2010 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+package org.alfresco.repo.web.scripts.bean;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.alfresco.repo.security.authentication.AuthenticationException;
+import org.alfresco.repo.security.authentication.AuthenticationUtil;
+import org.alfresco.repo.security.authentication.TicketComponent;
+import org.alfresco.service.cmr.security.AuthenticationService;
+import org.springframework.extensions.webscripts.DeclarativeWebScript;
+import org.springframework.extensions.webscripts.Status;
+import org.springframework.extensions.webscripts.WebScriptException;
+import org.springframework.extensions.webscripts.WebScriptRequest;
+
+
+/**
+ * Delete Login Ticket
+ *
+ * @author davidc
+ */
+public class LoginTicketDelete extends DeclarativeWebScript
+{
+ // dependencies
+ private AuthenticationService authenticationService;
+ private TicketComponent ticketComponent;
+
+ /**
+ * @param ticketComponent
+ */
+ public void setTicketComponent(TicketComponent ticketComponent)
+ {
+ this.ticketComponent = ticketComponent;
+ }
+
+ /**
+ * @param authenticationService
+ */
+ public void setAuthenticationService(AuthenticationService authenticationService)
+ {
+ this.authenticationService = authenticationService;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.alfresco.web.scripts.DeclarativeWebScript#executeImpl(org.alfresco.web.scripts.WebScriptRequest, org.alfresco.web.scripts.WebScriptResponse)
+ */
+ @Override
+ protected Map executeImpl(WebScriptRequest req, Status status)
+ {
+ // retrieve ticket from request and current ticket
+ String ticket = req.getExtensionPath();
+ if (ticket == null || ticket.length() == 0)
+ {
+ throw new WebScriptException(HttpServletResponse.SC_BAD_REQUEST, "Ticket not specified");
+ }
+
+ // construct model for ticket
+ Map model = new HashMap(1, 1.0f);
+ model.put("ticket", ticket);
+
+ try
+ {
+ String ticketUser = ticketComponent.validateTicket(ticket);
+
+ // do not go any further if tickets are different
+ if (!AuthenticationUtil.getFullyAuthenticatedUser().equals(ticketUser))
+ {
+ status.setCode(HttpServletResponse.SC_NOT_FOUND);
+ status.setMessage("Ticket not found");
+ }
+ else
+ {
+ // delete the ticket
+ authenticationService.invalidateTicket(ticket);
+ status.setMessage("Deleted Ticket " + ticket);
+ }
+ }
+ catch(AuthenticationException e)
+ {
+ status.setCode(HttpServletResponse.SC_NOT_FOUND);
+ status.setMessage("Ticket not found");
+ }
+
+ status.setRedirect(true);
+ return model;
+ }
+
+}
diff --git a/source/java/org/alfresco/repo/web/scripts/blogs/posts/AbstractGetBlogWebScript.java b/source/java/org/alfresco/repo/web/scripts/blogs/posts/AbstractGetBlogWebScript.java
index 5dfc4b8f07..9bee75b6a8 100644
--- a/source/java/org/alfresco/repo/web/scripts/blogs/posts/AbstractGetBlogWebScript.java
+++ b/source/java/org/alfresco/repo/web/scripts/blogs/posts/AbstractGetBlogWebScript.java
@@ -82,7 +82,7 @@ public abstract class AbstractGetBlogWebScript extends AbstractBlogWebScript
if (this.getClass().equals(BlogPostsNewGet.class))
{
// Default is for 'now' minus seven days.
- final int oneDayInMilliseconds = 24 * 60 * 60 * 1000;
+ final long oneDayInMilliseconds = 24 * 60 * 60 * 1000;
final long sevenDaysInMilliseconds = 7 * oneDayInMilliseconds;
fromDate = new Date(System.currentTimeMillis() - sevenDaysInMilliseconds);
@@ -171,7 +171,7 @@ public abstract class AbstractGetBlogWebScript extends AbstractBlogWebScript
Date result = null;
if (dateStr != null)
{
- result = new Date(Integer.parseInt(dateStr));
+ result = new Date(Long.parseLong(dateStr));
}
return result;
}
diff --git a/source/java/org/alfresco/repo/web/scripts/bulkimport/BulkFilesystemImportStatusWebScript.java b/source/java/org/alfresco/repo/web/scripts/bulkimport/BulkFilesystemImportStatusWebScript.java
index 65c50228bb..5984e0e271 100644
--- a/source/java/org/alfresco/repo/web/scripts/bulkimport/BulkFilesystemImportStatusWebScript.java
+++ b/source/java/org/alfresco/repo/web/scripts/bulkimport/BulkFilesystemImportStatusWebScript.java
@@ -29,6 +29,9 @@ import java.util.HashMap;
import java.util.Map;
import org.alfresco.repo.bulkimport.BulkFilesystemImporter;
+import org.alfresco.service.cmr.admin.RepoUsage.LicenseMode;
+import org.alfresco.service.descriptor.DescriptorService;
+import org.alfresco.service.license.LicenseDescriptor;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.extensions.webscripts.Cache;
@@ -47,16 +50,23 @@ public class BulkFilesystemImportStatusWebScript extends DeclarativeWebScript
// Output parameters (for Freemarker)
private final static String RESULT_IMPORT_STATUS = "importStatus";
+ private final static String IS_ENTERPRISE = "isEnterprise";
// Attributes
private BulkFilesystemImporter bulkImporter;
+ private DescriptorService descriptorService;
public void setBulkImporter(BulkFilesystemImporter bulkImporter)
{
this.bulkImporter = bulkImporter;
}
+
+ public void setDescriptorService(DescriptorService descriptorService)
+ {
+ this.descriptorService = descriptorService;
+ }
- /**
+ /**
* @see org.alfresco.web.scripts.DeclarativeWebScript#executeImpl(org.alfresco.web.scripts.WebScriptRequest, org.alfresco.web.scripts.Status, org.alfresco.web.scripts.Cache)
*/
@Override
@@ -66,6 +76,10 @@ public class BulkFilesystemImportStatusWebScript extends DeclarativeWebScript
cache.setNeverCache(true);
+ LicenseDescriptor licenseDescriptor = descriptorService.getLicenseDescriptor();
+ boolean isEnterprise = (licenseDescriptor == null ? false : (licenseDescriptor.getLicenseMode() == LicenseMode.ENTERPRISE));
+
+ result.put(IS_ENTERPRISE, Boolean.valueOf(isEnterprise));
result.put(RESULT_IMPORT_STATUS, bulkImporter.getStatus());
return(result);
diff --git a/source/java/org/alfresco/repo/web/scripts/content/MimetypeDescriptionsGet.java b/source/java/org/alfresco/repo/web/scripts/content/MimetypeDescriptionsGet.java
new file mode 100644
index 0000000000..a0f395e9f4
--- /dev/null
+++ b/source/java/org/alfresco/repo/web/scripts/content/MimetypeDescriptionsGet.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2005-2010 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+package org.alfresco.repo.web.scripts.content;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.alfresco.service.cmr.repository.MimetypeService;
+import org.springframework.extensions.webscripts.Cache;
+import org.springframework.extensions.webscripts.DeclarativeWebScript;
+import org.springframework.extensions.webscripts.Status;
+import org.springframework.extensions.webscripts.WebScriptRequest;
+
+
+/**
+ * Returns the descriptions of all the mimetypes known to the system.
+ * This is normally used so that things outside of the repo tier (eg Share)
+ * can display user-facing descriptions of the mimetypes in the system.
+ *
+ * @author Nick Burch
+ * @since 4.0.1
+ */
+public class MimetypeDescriptionsGet extends DeclarativeWebScript
+{
+ public static final String MODEL_MIMETYPES = "mimetypes";
+ public static final String MODEL_DEFAULT_EXTENSIONS = "defaultExtensions";
+ public static final String MODEL_OTHER_EXTENSIONS = "otherExtensions";
+
+ private MimetypeService mimetypeService;
+
+ /**
+ * Sets the Mimetype Service to be used to get the
+ * list of mime types
+ */
+ public void setMimetypeService(MimetypeService mimetypeService) {
+ this.mimetypeService = mimetypeService;
+ }
+
+ @Override
+ protected Map executeImpl(WebScriptRequest req, Status status, Cache cache)
+ {
+ // Get the mimetypes and their descriptions
+ Map mimetypes = mimetypeService.getDisplaysByMimetype();
+
+ // Fetch all the extensions known to the system
+ Map extensions = mimetypeService.getMimetypesByExtension();
+ // And the default extensions
+ Map defaultExtensions = mimetypeService.getExtensionsByMimetype();
+
+ // For each mimetype, work out the non-default extensions
+ Map> otherExtensions = new HashMap>();
+ for (String extension : extensions.keySet())
+ {
+ String mimetype = extensions.get(extension);
+
+ // If this isn't the default, record it
+ if (! extension.equals(defaultExtensions.get(mimetype)))
+ {
+ if (! otherExtensions.containsKey(mimetype))
+ {
+ otherExtensions.put(mimetype, new ArrayList());
+ }
+ otherExtensions.get(mimetype).add(extension);
+ }
+ }
+
+ // Return the model
+ Map model = new HashMap();
+ model.put(MODEL_MIMETYPES, mimetypes);
+ model.put(MODEL_DEFAULT_EXTENSIONS, defaultExtensions);
+ model.put(MODEL_OTHER_EXTENSIONS, otherExtensions);
+ return model;
+ }
+}
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java b/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java
index 5f857273ca..378e188780 100644
--- a/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java
+++ b/source/java/org/alfresco/repo/web/scripts/invite/InviteServiceTest.java
@@ -317,6 +317,9 @@ public class InviteServiceTest extends BaseWebScriptTest
siteService.deleteSite(SITE_SHORT_NAME_INVITE_1);
siteService.deleteSite(SITE_SHORT_NAME_INVITE_2);
siteService.deleteSite(SITE_SHORT_NAME_INVITE_3);
+ // Sleep to ensure asynchronous invite deletion completes
+ Thread.sleep(5000);
+
return null;
}
};
diff --git a/source/java/org/alfresco/repo/web/scripts/invite/Invites.java b/source/java/org/alfresco/repo/web/scripts/invite/Invites.java
index 5064430eb8..78a8cd7493 100644
--- a/source/java/org/alfresco/repo/web/scripts/invite/Invites.java
+++ b/source/java/org/alfresco/repo/web/scripts/invite/Invites.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
+ * Copyright (C) 2005-2011 Alfresco Software Limited.
*
* This file is part of Alfresco
*
@@ -25,6 +25,8 @@ import java.util.Map;
import org.alfresco.repo.invitation.InvitationSearchCriteriaImpl;
import org.alfresco.repo.invitation.site.InviteInfo;
+import org.alfresco.repo.security.authentication.AuthenticationUtil;
+import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.repo.template.TemplateNode;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.invitation.Invitation;
@@ -32,6 +34,8 @@ import org.alfresco.service.cmr.invitation.InvitationSearchCriteria;
import org.alfresco.service.cmr.invitation.InvitationService;
import org.alfresco.service.cmr.invitation.NominatedInvitation;
import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.service.cmr.security.AccessStatus;
+import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.cmr.site.SiteInfo;
import org.alfresco.service.cmr.site.SiteService;
@@ -179,7 +183,8 @@ public class Invites extends DeclarativeWebScript
if (inviteIdProvided)
{
NominatedInvitation invitation = (NominatedInvitation)invitationService.getInvitation(inviteId);
- inviteInfoList.add(toInviteInfo(invitation));
+ Map siteInfoCache = new HashMap(2);
+ inviteInfoList.add(toInviteInfo(siteInfoCache, invitation));
}
else
// 'inviteId' has not been provided, so create the query properties from
@@ -215,9 +220,11 @@ public class Invites extends DeclarativeWebScript
// wf:inviterUserName, wf:inviteeUserName, wf:siteShortName,
// and invite id property (from workflow instance id))
// onto model for each invite workflow task returned by the query
+ Map siteInfoCache = new HashMap(
+ invitations.size() * 2);
for (Invitation invitation : invitations)
{
- inviteInfoList.add(toInviteInfo((NominatedInvitation)invitation));
+ inviteInfoList.add(toInviteInfo(siteInfoCache, (NominatedInvitation) invitation));
}
}
@@ -230,28 +237,22 @@ public class Invites extends DeclarativeWebScript
- private InviteInfo toInviteInfo(NominatedInvitation invitation)
+ private InviteInfo toInviteInfo(Map siteInfoCache, final NominatedInvitation invitation)
{
- final PersonService personService = serviceRegistry.getPersonService();
-
// get the site info
- SiteInfo siteInfo = siteService.getSite(invitation.getResourceName());
+ String resourceName = invitation.getResourceName();
+ SiteInfo siteInfo = siteInfoCache.get(resourceName);
+ if (siteInfo == null)
+ {
+ siteInfo = siteService.getSite(resourceName);
+ siteInfoCache.put(resourceName, siteInfo);
+ }
String invitationStatus = InviteInfo.INVITATION_STATUS_PENDING;
- NodeRef inviterRef = personService.getPerson(invitation.getInviterUserName());
- TemplateNode inviterPerson = null;
- if (inviterRef != null)
- {
- inviterPerson = new TemplateNode(inviterRef, serviceRegistry, null);
- }
+ TemplateNode inviterPerson = getPersonIfAllowed(invitation.getInviterUserName());
// fetch the person node for the invitee
- NodeRef inviteeRef = personService.getPerson(invitation.getInviteeUserName());
- TemplateNode inviteePerson = null;
- if (inviteeRef != null)
- {
- inviteePerson = new TemplateNode(inviteeRef, serviceRegistry, null);
- }
+ TemplateNode inviteePerson = getPersonIfAllowed(invitation.getInviteeUserName());
InviteInfo ret = new InviteInfo(invitationStatus,
invitation.getInviterUserName(),
@@ -266,4 +267,27 @@ public class Invites extends DeclarativeWebScript
return ret;
}
+
+ private TemplateNode getPersonIfAllowed(final String userName)
+ {
+ final PersonService personService = serviceRegistry.getPersonService();
+ NodeRef inviterRef = AuthenticationUtil.runAs(new RunAsWork()
+ {
+ public NodeRef doWork() throws Exception
+ {
+ if (!personService.personExists(userName))
+ {
+ return null;
+ }
+ return personService.getPerson(userName, false);
+ }
+ }, AuthenticationUtil.getSystemUserName());
+ if (inviterRef != null
+ && serviceRegistry.getPermissionService().hasPermission(inviterRef, PermissionService.READ_PROPERTIES)
+ .equals(AccessStatus.ALLOWED))
+ {
+ return new TemplateNode(inviterRef, serviceRegistry, null);
+ }
+ return null;
+ }
}
diff --git a/source/java/org/alfresco/repo/webdav/GetMethod.java b/source/java/org/alfresco/repo/webdav/GetMethod.java
index e155b75e92..89a94efb6b 100644
--- a/source/java/org/alfresco/repo/webdav/GetMethod.java
+++ b/source/java/org/alfresco/repo/webdav/GetMethod.java
@@ -545,7 +545,7 @@ public class GetMethod extends WebDAVMethod
String strRight = strSize.substring(length - 3, length - 2);
StringBuilder buffer = new StringBuilder(strLeft);
- if (!strRight.equals('0'))
+ if (!strRight.equals("0"))
{
buffer.append('.');
buffer.append(strRight);
@@ -560,7 +560,7 @@ public class GetMethod extends WebDAVMethod
String strRight = strSize.substring(length - 6, length - 5);
StringBuilder buffer = new StringBuilder(strLeft);
- if (!strRight.equals('0'))
+ if (!strRight.equals("0"))
{
buffer.append('.');
buffer.append(strRight);
diff --git a/source/java/org/alfresco/repo/webdav/WebDAVHelper.java b/source/java/org/alfresco/repo/webdav/WebDAVHelper.java
index 0bff713585..1f1dea12e7 100644
--- a/source/java/org/alfresco/repo/webdav/WebDAVHelper.java
+++ b/source/java/org/alfresco/repo/webdav/WebDAVHelper.java
@@ -19,7 +19,6 @@
package org.alfresco.repo.webdav;
import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -45,6 +44,8 @@ import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.util.EqualsHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.springframework.extensions.surf.util.URLDecoder;
+import org.springframework.extensions.surf.util.URLEncoder;
import org.xml.sax.helpers.AttributesImpl;
/**
@@ -438,7 +439,7 @@ public class WebDAVHelper
}
else
{
- return replace(URLEncoder.encode(s, "UTF-8"), "+", "%20");
+ return URLEncoder.encode(s);
}
}
catch (UnsupportedEncodingException err)
@@ -447,6 +448,11 @@ public class WebDAVHelper
}
}
+ public final static String decodeURL(String s)
+ {
+ return URLDecoder.decode(s);
+ }
+
/**
* Replace one string instance with another within the specified string
*
@@ -570,21 +576,21 @@ public class WebDAVHelper
switch (c)
{
// reserved
- case ';': enc = URLEncoder.encode("" + c, "UTF-8"); break;
- case '/': enc = URLEncoder.encode("" + c, "UTF-8"); break;
- case '?': enc = URLEncoder.encode("" + c, "UTF-8"); break;
- case ':': enc = URLEncoder.encode("" + c, "UTF-8"); break;
- case '@': enc = URLEncoder.encode("" + c, "UTF-8"); break;
- case '&': enc = URLEncoder.encode("" + c, "UTF-8"); break;
- case '=': enc = URLEncoder.encode("" + c, "UTF-8"); break;
- case '+': enc = URLEncoder.encode("" + c, "UTF-8"); break;
+ case ';': enc = URLEncoder.encode(String.valueOf(c)); break;
+ case '/': enc = URLEncoder.encode(String.valueOf(c)); break;
+ case '?': enc = URLEncoder.encode(String.valueOf(c)); break;
+ case ':': enc = URLEncoder.encode(String.valueOf(c)); break;
+ case '@': enc = URLEncoder.encode(String.valueOf(c)); break;
+ case '&': enc = URLEncoder.encode(String.valueOf(c)); break;
+ case '=': enc = URLEncoder.encode(String.valueOf(c)); break;
+ case '+': enc = URLEncoder.encode(String.valueOf(c)); break;
// unsafe
- case '\"': enc = URLEncoder.encode("" + c, "UTF-8"); break;
- case '#': enc = URLEncoder.encode("" + c, "UTF-8"); break;
- case '%': enc = URLEncoder.encode("" + c, "UTF-8"); break;
- case '>': enc = URLEncoder.encode("" + c, "UTF-8"); break;
- case '<': enc = URLEncoder.encode("" + c, "UTF-8"); break;
+ case '\"': enc = URLEncoder.encode(String.valueOf(c)); break;
+ case '#': enc = URLEncoder.encode(String.valueOf(c)); break;
+ case '%': enc = URLEncoder.encode(String.valueOf(c)); break;
+ case '>': enc = URLEncoder.encode(String.valueOf(c)); break;
+ case '<': enc = URLEncoder.encode(String.valueOf(c)); break;
default: break;
}
diff --git a/source/java/org/alfresco/repo/webdav/WebDAVServlet.java b/source/java/org/alfresco/repo/webdav/WebDAVServlet.java
index 79ad6e06d8..9a98af6ec2 100644
--- a/source/java/org/alfresco/repo/webdav/WebDAVServlet.java
+++ b/source/java/org/alfresco/repo/webdav/WebDAVServlet.java
@@ -342,7 +342,8 @@ public class WebDAVServlet extends HttpServlet
// Commit the transaction
- tx.commit();
+ if (tx != null)
+ tx.commit();
}
catch (Exception ex)
{
diff --git a/source/java/org/alfresco/repo/webservice/Utils.java b/source/java/org/alfresco/repo/webservice/Utils.java
index 367fdab74c..b1c9a28cf3 100644
--- a/source/java/org/alfresco/repo/webservice/Utils.java
+++ b/source/java/org/alfresco/repo/webservice/Utils.java
@@ -20,6 +20,7 @@ package org.alfresco.repo.webservice;
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
@@ -146,7 +147,7 @@ public class Utils
if (logger.isDebugEnabled() == true)
{
- logger.debug("Converting multi-valued property '" + propertyName.toString() + "' with values " + values.toString());
+ logger.debug("Converting multi-valued property '" + propertyName.toString() + "' with values " + Arrays.toString(values));
}
if (values != null)