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 persistedObject??>"persistedObject": "${persistedObject?string}", + <#if persistedObject??>"persistedObject": "${persistedObject?replace("\t", "")?string}", <#if name??>"name": "${name}", - "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 persistedObject??>"persistedObject": "${persistedObject?string}", - "message": "${message}", + <#if persistedObject??>"persistedObject": "${persistedObject?replace("\t", "")?string}", + "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 persistedObject??>"persistedObject": "${persistedObject?string}", - "message": "${message}", + <#if persistedObject??>"persistedObject": "${persistedObject?replace("\t", "")?string)}", + "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 mimetype_has_next>, + + + } +} 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)