From c0435798cf82a6dfe80a7c6e710ba6ff973281c7 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 5 Oct 2011 22:50:03 +0200 Subject: [PATCH] clear caches in jps server on roots change and project close --- .../src/org/jetbrains/jpsservice/Client.java | 25 +++++---- .../impl/JpsServerMessageHandler.java | 9 ++- .../intellij/compiler/JpsServerManager.java | 53 +++++++++++++++++- lib/rt/jps-incremental/jps-facade.jar | Bin 14333 -> 14394 bytes lib/rt/jps-incremental/jps.jar | Bin 1415506 -> 1415593 bytes lib/rt/jps-incremental/src/jps-sources.zip | Bin 155184 -> 155206 bytes 6 files changed, 72 insertions(+), 15 deletions(-) diff --git a/java/compiler/compile-server/src/org/jetbrains/jpsservice/Client.java b/java/compiler/compile-server/src/org/jetbrains/jpsservice/Client.java index fd4b02ff0384..eb888f3f7a43 100644 --- a/java/compiler/compile-server/src/org/jetbrains/jpsservice/Client.java +++ b/java/compiler/compile-server/src/org/jetbrains/jpsservice/Client.java @@ -14,10 +14,7 @@ import org.jetbrains.jpsservice.impl.JpsClientMessageHandler; import org.jetbrains.jpsservice.impl.ProtoUtil; import java.net.InetSocketAddress; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicReference; @@ -92,9 +89,7 @@ public class Client { @NotNull public RequestFuture sendCompileRequest(String projectId, List modules, boolean rebuild, JpsServerResponseHandler handler) throws Exception{ - if (myState.get() != State.CONNECTED) { - throw new Exception("Client not connected"); - } + checkConnected(); return sendRequest( rebuild? ProtoUtil.createRebuildRequest(projectId, modules) : ProtoUtil.createMakeRequest(projectId, modules), handler @@ -103,18 +98,26 @@ public class Client { @NotNull public RequestFuture sendShutdownRequest() throws Exception { - if (myState.get() != State.CONNECTED) { - throw new Exception("Client not connected"); - } + checkConnected(); return sendRequest(ProtoUtil.createShutdownRequest(true), null); } @NotNull public RequestFuture sendSetupRequest(final Map pathVariables, final List sdkAndLibs) throws Exception { + checkConnected(); + return sendRequest(ProtoUtil.createSetupRequest(pathVariables, sdkAndLibs), null); + } + + @NotNull + public RequestFuture sendProjectReloadRequest(Collection projectPaths) throws Exception { + checkConnected(); + return sendRequest(ProtoUtil.createReloadProjectRequest(projectPaths), null); + } + + private void checkConnected() throws Exception { if (myState.get() != State.CONNECTED) { throw new Exception("Client not connected"); } - return sendRequest(ProtoUtil.createSetupRequest(pathVariables, sdkAndLibs), null); } private RequestFuture sendRequest(JpsRemoteProto.Message.Request request, @Nullable JpsServerResponseHandler handler) { diff --git a/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/JpsServerMessageHandler.java b/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/JpsServerMessageHandler.java index 6e91e9d02a05..da7376fbf234 100644 --- a/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/JpsServerMessageHandler.java +++ b/java/compiler/compile-server/src/org/jetbrains/jpsservice/impl/JpsServerMessageHandler.java @@ -42,11 +42,15 @@ public class JpsServerMessageHandler extends SimpleChannelHandler { else { final JpsRemoteProto.Message.Request request = message.getRequest(); final JpsRemoteProto.Message.Request.Type requestType = request.getRequestType(); + final Facade facade = Facade.getInstance(); switch (requestType) { case COMPILE_REQUEST : reply = startBuild(sessionId, ctx, request.getCompileRequest()); break; - + case RELOAD_PROJECT_COMMAND: + final JpsRemoteProto.Message.Request.ReloadProjectCommand reloadProjectCommand = request.getReloadProjectCommand(); + facade.clearProjectCache(reloadProjectCommand.getProjectIdList()); + break; case SETUP_COMMAND: final Map pathVars = new HashMap(); final JpsRemoteProto.Message.Request.SetupCommand setupCommand = request.getSetupCommand(); @@ -61,7 +65,7 @@ public class JpsServerMessageHandler extends SimpleChannelHandler { new GlobalLibrary(library.getName(), library.getPathList()) ); } - Facade.getInstance().setGlobals(libs, pathVars); + facade.setGlobals(libs, pathVars); reply = ProtoUtil.toMessage(sessionId, ProtoUtil.createCommandCompletedEvent(null)); break; @@ -93,6 +97,7 @@ public class JpsServerMessageHandler extends SimpleChannelHandler { final JpsRemoteProto.Message.Request.CompilationRequest.Type compileType = compileRequest.getCommandType(); switch (compileType) { + // todo case CLEAN: case MAKE: case REBUILD: { diff --git a/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java b/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java index bc9abf77c222..ea6b4d65a1f0 100644 --- a/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java +++ b/java/compiler/impl/src/com/intellij/compiler/JpsServerManager.java @@ -15,6 +15,7 @@ */ package com.intellij.compiler; +import com.intellij.ProjectTopics; import com.intellij.execution.ExecutionException; import com.intellij.execution.configurations.GeneralCommandLine; import com.intellij.execution.process.OSProcessHandler; @@ -23,10 +24,15 @@ import com.intellij.openapi.application.PathMacros; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.components.ApplicationComponent; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.project.ProjectManager; +import com.intellij.openapi.project.ProjectManagerAdapter; import com.intellij.openapi.projectRoots.JavaSdkType; import com.intellij.openapi.projectRoots.ProjectJdkTable; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.impl.JavaAwareProjectJdkTableImpl; +import com.intellij.openapi.roots.ModuleRootEvent; +import com.intellij.openapi.roots.ModuleRootListener; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar; @@ -35,6 +41,7 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.JarFileSystem; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.util.messages.MessageBusConnection; import com.intellij.util.net.NetUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -58,7 +65,8 @@ public class JpsServerManager implements ApplicationComponent{ private volatile Client myServerClient; private volatile OSProcessHandler myProcessHandler; - public JpsServerManager() { + public JpsServerManager(ProjectManager projectManager) { + projectManager.addProjectManagerListener(new ProjectWatcher()); ShutDownTracker.getInstance().registerShutdownTask(new Runnable() { @Override public void run() { @@ -177,7 +185,7 @@ public class JpsServerManager implements ApplicationComponent{ final Sdk projectJdk = JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk(); final GeneralCommandLine cmdLine = new GeneralCommandLine(); cmdLine.setExePath(((JavaSdkType)projectJdk.getSdkType()).getVMExecutablePath(projectJdk)); - //cmdLine.addParameter("-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5007"); + cmdLine.addParameter("-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5007"); cmdLine.addParameter("-Xmx256m"); cmdLine.addParameter("-classpath"); @@ -223,4 +231,45 @@ public class JpsServerManager implements ApplicationComponent{ } return builder.toString(); } + + private class ProjectWatcher extends ProjectManagerAdapter { + private final Map myConnections = new HashMap(); + + public void projectOpened(final Project project) { + final MessageBusConnection conn = project.getMessageBus().connect(); + myConnections.put(project, conn); + conn.subscribe(ProjectTopics.PROJECT_ROOTS, new ModuleRootListener() { + public void beforeRootsChange(final ModuleRootEvent event) { + sendReloadRequest(project); + } + + public void rootsChanged(final ModuleRootEvent event) { + } + }); + + } + + public void projectClosing(Project project) { + sendReloadRequest(project); + } + + public void projectClosed(Project project) { + final MessageBusConnection conn = myConnections.remove(project); + if (conn != null) { + conn.disconnect(); + } + } + + private void sendReloadRequest(Project project) { + final Client client = myServerClient; + if (client != null) { + try { + client.sendProjectReloadRequest(Collections.singletonList(project.getLocation())); + } + catch (Exception e) { + LOG.info(e); + } + } + } + } } diff --git a/lib/rt/jps-incremental/jps-facade.jar b/lib/rt/jps-incremental/jps-facade.jar index 37b9055959cfcaaa77dcee979ab1dd14fe438dc6..7cc4e3de7235aa0c647a2974d6c0768e9412bd30 100644 GIT binary patch delta 3555 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 delta 3478 zcmYjUc|6o>`yOM-HugOX*@uJ~giv;kC0WDJ5Fy6Wlr>+8?CaNFl;v0>48{^i7)v9v zMhSyZp(qUpoge3Sdf)f?+|TpZb+-o``LkX@)6y|RPL_6N2CF3WII18{ zqKo25Of>|}r1(I9n~gBQs|*D#XgLUdoY^$sEfx-tQQ$1Vy(Sn5IE@dD3)bhm#bUd; zDI6*{^rBN}tbHFcO}>%VK=U75oUW3|UresUm&^N^I#u|!XSSPrqsOlg1R}kSCd&QB zv$i^o+l@6de;irtq;s}>`pzSIL{0O5{`UbTfq$zLezCTixjV@PMx?tEHGjsp|3Ee3 zVi!D%Vh01@%-v5k_5(QJFO5C+95{$W8)|cky#pTW6WjNR+yqL}RneR2=Nwn+u>KG@=|Ir&CO6{z@F~66${Y%?5I7 zQz*?w?=_%VnIwcFfz`E$P*8*S2*bVmBE2^X(K_a8zeAv^GWt0J-$Px&B zr(A|o;ltL9%lUFJUE93rER#P{3?}D%2HeX_m1?}Lm;2@KZp}B;Heg429~Ims`ugH* zWPuNnZ_fM1EE|X7x-Y)t%54Fjk6YiGewwaU@sWMU&e+plxq2rdS4r5 zE*jR_8TXh3Ytem34{!g4-+Av>ArbM$jHvZ6+a#7<+M1%U-42sfBh zSha_+8jrVsjP%g`4f-2&WqQq_9{Z-F1ja0wRXPswUiV?r$m?7JZb?m)vM(LAA!d~J z3$pGvd{ig)-Hr_r7W4}6|eih%-7v+hPU8XGCv zaj__6GqA(YVK!)y@l$*dDbHu2q{o5o9hlaJH5%{V@vr}diypkoGC%sfrGyB@8zid z)j^!4&-x3Ef)R6+nV*!R`iVjlCycaT!B&&|wZ-Q2lJtVk9DO8a#}6J{Ww!z@!lojtnAypFL_SS?~$gvO-GO zDiJyzy}rz((JB;|Vq2$7?lk`TJafO0=hk6obt!K+-dQ>hY22WunK~w+QS1(Psiv%H zM&75@j7)I#-fK=>SR`sj#@)PgC_0LW84*Bex+I;(AJPDm-(*Appx+gL$O}wt2OsM9 z-q!q;0C?{aQ~zEJ6*;$P7#n)?m0scNQ7ep`?b8}P+wOxvE_C+Pxag}=4jnRAiQMzl zN7y{>6vE)=H|{#vW<-*{}^u!XaM7>UU-;J z+|yo8nvR;j6>9|uyml667X|gK2Td`rIju)*zvFqYephY2XwNcr26NVK&C7?WhB{-C zTlsl%>gt8jEo^gk*}a@kK5a|%s~A6$8IxACp1r&&_t$;_CLY=47)^$>7*!$Dui?1DeuG^iMQ*-HP3or z+}mrtxRXwWqS&eYQoV-WW)Hq z9F;SP<2`N-Q33vTukifWe?3V!DS7rTS!jyCc)tI3xD#_c;d&F@cqtmkJq{CFFxW} z)dL61H}3w7%M5BqB|Z}Akbe+*6mv~yOhTXeu4vm%Y*T#ZAG5v&A|2Z%nM|8HxzQWa zasHMHB+n3_&&cC(LXmAWneYRYyV=ITW5J)~pcTyZY|t1qq7&kR(l z0r76ZmNlY%P0-258~S2PRT_dj7XoBVy>2w;+?Za1Qk~WloAVC3xl+-}v}DK;2P99I;lQ;EJ*NPq(}pFqnfl#;fw5b;++Gg6vv>QG@!p0y%{#5 z^6k0gVNJ-Yc!m8=IvL39psUa$# zggli(q%!BO&&VLv1*Q!m#254{Hw_I3sbW47j^-v`2HI4f@jfXsW_Bl{tqiNn`z1lNP&sXppSG@5hkUc&OI=r8##6Hg!s28I|$! zH^n8NJ_`Dr(}U^{Jr}j7DqD1d*WM}9w~3MeWK>_)zBU}Y#Z5l(i|Inf{qlKRU!W0DtHCS z1JWXupaCNPBN;)f;s2ooq&9R&{67?i;$dcn{Qe6tQB@e)CULwg1`etspu7K{;v{)M zSv6KM?c)diZvO;j{+B>@C6CX^f%nu9P)(_S(ic*^;My_WlRl<8$0-MhRTqMm$p5p; ec8(QPQeXi))e+ES#eXF(Q1UznL$}h&&Ho2r%vuZp diff --git a/lib/rt/jps-incremental/jps.jar b/lib/rt/jps-incremental/jps.jar index 6ec7d0104dfa0a5714c419a5f5c1160f3b935ea0..3c143522ed578f951cffb003fa42b1ea7b22182e 100644 GIT binary patch delta 25962 zcmZUa1wa(r`}bjirF%gd>6R9d?(Qz>MifwKRz$j#8cG@gkrY`%krY8dK)O4WMpELP zmHYF0|F6QHc|OngJSXSOnPF$B#;EkI5uT1Z8afWj?|*eK@HikSbuUDY!OtW<)SJje z50w*{1f%kSNoW;nL=`G3q6!t_{s^=IIv>a_WLiyv$qYP5gJ2^9d?4{?Ad0{ZfPlYf z0B!(!5ojZ70?<>efRjrsazKU_0|Ow)MTY_O6);*vHW~&8FJz_$s4B)`2AfELdS#Koz@>M;Y6b2lXxYrD9L!>J$r&4*@_0(lak+V^7IMK9sT8Aj+t$;m1kIM zMhGK`#+)_!G5Ff>M|t@>x)J|6vz6o7-oUxLR&oQES9Ax>_gDKeMRqbo4*FK3c7lEA zQ4IVX`Pt(;%{j*+65WNPy%dFLm~M=?o~(0SX#=n!}1?My~QxmY15Oez#xSjgY*4M***@$8aedn%?@ zg?tv+Na5-yv#GWhI)R4l*;rlq5dxp5C}L|Ph>Q$1DoSjvmD)ZB)9_Cfs6yXlgdjBW zKU@21!ng5+MO0j$d@`TRc6Zahh08j|zdKgwXbQwe6!1if>M)I3-wUW>F(93!h~``W z7H(;Tv9vHhslwixoAZ4t8&8=NK%c5w>gdhbXz1{Eb9{wg&pb|%&^I?s9-F^Rk=&%A z%;}zvdnb`Un#yiap~jg8jq6_ScV~gNene>h%lehf*swZOC}@KBfbUOYd$r=gL= zFioqCE`JKaExoM~DmADBMks^u#!+>Lhs>K6R zvT&VcG{RV=Omk|&&`{_s%M_5@|>+=da=kz1-RCAq%tH|_}7Flywh zYB=&mpOKTP9&_uhD?YoMtkf;1#^LBrrEfzuC=+J%NaUjNlW#qbn3K1F0>#_Rr}tE& z#RVx&s6wNbqba(dw%P-yt9W;A-{^YQZkkScwG z$Iv8k$|Z3Qu{yNL34dtUeQrsWeSpUBnvy4tyn8EaApeQQ6myd_@6|rl32oc9fjI{v_|^c)B{O!0c>VY^SEP;c~%nc#Hub-Rn4(HTpR^ zg^I49u|GywYg_m1lRa&RLSrT-O}I&Ll$yLfHb)4kyBoA~@A?@mFP(F$>_M|StaafD z;X8SFW(&$fU-g|Sctg>=@MM)x9e7x?Dql89mtt{`7Q*mX)7ycfG-g)>cbJn-rdra$H45R(Hd~idR}el(Czy zzhynBRdwAm8(CO`#toM7)8VknvlBxVJCz@~u*OeooRC>48wE<@k0(T5vcgIX?^Ayu z$ZgXOQ|y%4(#Dlng~^$-XHUDg-A}2U31?`=ggn%Lg6&h{H{G54P#U%t)-=!tpDe^! zQ7*hAa3CXjA3C^WXC>X63++B6L@ThUqpT%gd-Hhi>qNl%<;T#O!qk9)(+pc-%Gp$6 zrI*;N1G%PnuWYf%(nP0_UM`0c4|qbCd@X%iO2a_WeI0+!r%v;xB(3yOmwcSz`kp9c zOeLbvqhA=nY}a=@O3h0O4Q3|E_u8xm)YhN{gC;dql(f~)YxY%`-(-tFob@8e4F(hcu*pZnR$wM(8s{34?qAr_R`wnxNcp9x<>C(UDp zIW9FmK)1Oso^OQcR&;@pVd{GFktrI)-nJpaW8JxYewQ%MHZ~xdoivlloaxKcJ#@cy zwjTK_Ma$??3Ux(nvLb`z1rqCDa&Jl{pW3iTQ{NH-;DRR2R*jq0k3X_*13Q(o39_#)OzW7u11fA1;iEGLdZx<)1JAyrwpkZxVy$tXndOMHqdC5 z^lTg~$|DOe2!m29nCN@P3{q(cy`GgXb)_PsfJ8X{92I?C_A_$Bpf?w8%SskuLq{E* zFP$st>R8C%mv4KU%)2B_y;A}fSTMW8W#B?{P--I6DaT1roSzY`XgZc{gcKRlYnV0dxA_#r(33mz-mhvaAnyw?F4t~bg(jn^_hsc;X{ z5gPhU^wOdFg|DdID|hgCtfyIh%nYXfy-*Mfj$sRC>H-_t8W-01q}K)w=0caGYXI zJekL8-X7nM7lZNkcI6lOJ_d_5s=+Mkrtw=UXgH@Pq;9PDMwl{w;Ng+KI$|ny&b1XL zQ(h3rN_jnkkvaIzR>0COjfqM?@Ok;>mScF9!KM-6n~ds(3hzQdcXN_ zag*X977dYcmo36D_GM>3D_M?weU|_Q2_cK^*4`(bN45Mzv#>TrY0BuNx$K0vC>?>I z@S~s0kfxpX6uR=(QoLsu&n#tL{rVflN~7*R#t2Q9?s%2FXR%^uTvJXV(UzY0DP!Q(8>)uJ&ipi>0;_J`o?4J8a%#2Z z5lO`N-Ud$(=!a&N`%IjAg!MbU`!@Gm1n{?k&$3`sYg?D=-DwAzG z%5_;Ysi{@9m;W49P=rVJ&uqPjcn+!6A{V}wMte`sY4h25Eb4?-BAnPksUQEg;K8rSj>L0@s;uFoHP$%pIk_n|{3iAy*9>~GX3~(Ks6Dmz^C^*3t zus3zvTmJvFg~cd z_CA^Xw?d7Lg}?w^=EQmn%Ew`?ml}pObatN?FT9x%#O~4=%MS3pYGdbCy0ma}yUKDr zHH)#%P0og1;(#rwrwv(syTbO;p+=(txs{XyuZX> zPj*w&?8q~*&~3(rzz(qSUi(|yKc)}D>5wv@2~=QSPJE{8H+mV>X49V93gi6+Bm}AH z_Usgjy7V67JMx9N=^MYeon($DAL`t)SstHt6=jgsF~55Ox08xUm5eIAd-N_LNIrVA z?5zN;*w1XkdpB0b+4T3AIJImZj9>ESc8fNgiSn*V-EyA3yi=(``jWiiKsm0syP*7PkY7*xYl^yW1Y_{o^ys{E8i=!X>>sTBG`| zZ)pOsEAa5qbY)!^=|Wr{R-->1?G3i9ucI8LFY@l#Jagog_RrGn6id@9_4j*i?7SNl z$#amlY7$V}J-;8hYN0WGw6{gvmD+%n^JhxgsO8Ud2vi>ls<|p)8IY;Yn$*mNMJs(P_o+eAV>nMAl z!9wEM49Z3_xOg=>s7F-aX4I-pLBA_V{Ai5y8GPUA_Ifl{I`s(e;9%X$}T8bhco_Kp-kIQC6vgs|2Yb10?*4_r#<&buUhy2N)U19AbdtkT)d za;$r8hhGYDQR7SmoxC3<1z0>V_gW2`loP#hUUHnEjGGnr*+_I45kA1brSCqysW~xr zeDGXr_H87K2A%%x@$mHEV}+W=42cT=e7pEbwz0dj@qxTnrcL?&*!w)vukNbQ)31(| z^VRoS-D-o=_)qK?mAzi;%W-;;u4|#u$%5xw-_1`kbjR?^%=aP#3#G7gFCPptEz=h%r(E?y!WZOIcnT+#Lm)H^V0hg*Q?!1fa1++BXhFF4L38Y5vxR3 zN}+~8|EYwx&npPe1jHKRt+cbwsaA+$5d*SvYWPvl-{%Uya=K#@mdF0%jgzb>%thd| zZ(k$)iWMH}8^b77)mela$`m}lX<2+`9!y>B*@WG`fHHltFFq*wnKSBr_YULzqur)M z#m?+$se}EOljV9oV~)#SQgv%%6B@JKKBvBzS1%bir*8o0RRAw(LLHbLMhz$&uIC4(uX)+%s zd4D;RPtWi|akCT7C&z_dGL_2|JwyI>I7r8e5&yJh`?hysm+X)?L@_<5Q?s6Mo2|UL zFINX{_t1~ZrN(Z&`q?=G*3c_2k#rGlsZ6oMpzN}2(Lbv3xR~(>)q}=MS1|s*#?kw> z3%1aOhWdW~=0dk2HAOc3#lF50 z)q&f@YuF7Fq}LQ)F!t0FH*lYf{)$6_DJ0>u+xf7JCM>bn>EJ7svL z(Bqe=J5;uKtbHo!5^Y3>&>t^_o4+?uIgvzn*?G#-#E}-OmTPt}ZgoF*l_n2jFL8r) zbqzN7QZ>1)u!?85bg_ocxK!EU9ldXD7Cga#2J~6)P;YWIzHwx$3Xdc~w0?T@T6&vK z;-_Pz=pKn?;{1SdMD`Q@B7TbdW);$KB{8eK4yD+(xQaQYPS!~_)>T9u%Zr{U_I#5} zSJ8B;2gcPdE^isM@&fE%JZ64Gb!UM)sMo5w*+t&Zpyvmkf{M^RnP+czIbu)482TAp z1)fqbN(>9VlI$?Q6S7)S-%@|kJi_}pI{xlwdA9iJ z8327xe7bl(vgsu+HrX>B8zu@!Qgfi$PjR#0Mecm9n_lz`UI@M=_joN#XTG1Uhq89O2W9#5Oxe!hyR$@AWv$J+fJhD0`=dTnbCI~~%(?R?SOAM5p{PheGL#0dz1{Qi zuS2rIC0(Hd@UG3qKV1?p0oX2w=X_nrzU#`JbCwb@WwI@apAhxyjE;T_?sxXu^Q^Ss z!yC_J-4Z|4pl|RrZL!=j{qXOf8I7pbIb${B7}C}KB*|PqHZv!ySS#82 ze_9CttiMs((>RfuP2&6Mm&8goc3Smtn0bCHGn7Z;)^KpU6=^%m^kvYi_g~aM4t6}z znVN094I2}FBze_oO$h&}T8uV!^*ks4=YuTzvtJNsOu#O~Kv;UZ<+S@7coO!zvtU~z zHvir8E{4?I*p`$C~6SnRXkJvvqso1D>5`nW1Ia{!x3TGm zc0KWPhIX~7noAbSsG5rwn&4EyxeIJm!FdZ~RNIEnZEK%>5ZWxuD_YROS9bO#k~Ikt zl!{zlPS==YkjY&}Nlks&!thc@uZgyYN^SI^oHeFK3GW29KGhu?f41HUv;(!#%_kU# zMJBpDT;%$liDv?DOjx;6^*f`_#1UIF>TQP_tu;CXRYXQ@oPh;wdbsc;?Lw^W^ytHf z1#?fL`0!adI(=Ws@|Hv}>FRc@vXz)kLgt=vk0zf{LtZ|3SbCKvQ+hQn6LnQ@Il!Ge zJV&w{;UoJjG;j`sA631_gpIjQPQO%|l07NzWt9sTjoJ6P*bmywat@bCKCPv6D(?um z4s%wmb2!!>AJI<9%)^V|m)=>a1rA^Q@YTN~wmxJO*}Uq5^Y!D+Lq+L>W2r3_Q3V4K{ zo!F>#@(z~CO|%3}By6KbTbWvTm25JiGiA+LH>1G}FHoHwlI-?sDv+5rf3actKwQ3+k>0tf-E(-ewn(D(ee2IM_j3fE zQoGFqEcX!Gb2#^6D%_1r+@PmH-`rH?JDN3~m|O!KNcJjinV4tRnLJ+gX?4vL>Sv4? zLH=~->iIMa{o=Ggm#VkI?+z|C_;N0~oG5Tb=Q6Hm@Xp~96SBgQNpp7S~CInfix|9Yd>5LTTp0BJ>4$BoF?zj?D* zcepp64FPx)${nl(#h^YRj|#W0S07m_-waNZ(*F-wCf=_*(8es9I}tDugPC(Oa(*mC6T1JJH$ zcI#jRtJN#E#h}<3DMg1xIEnfxj?4C28EovNWfS=7mBhtL%uj$wn-IahTW>)k417 z&X!=Hian5{Y7(|}$UYBsx5Up}U>C)V4_9BHs3(gLQ?|i>ABSW6Mno`Wy|a9s{e$O# zQ_(t{XS9pBrt=J1wSI$r21w%>wQ~Jp8yuw*BW%>uRROJZqW0}DqDa6;YvMDE!SAm% ztO@R*&sV*{p0j5?!Z(HK6-l_0c!FiTh^b~6Tj)pbn2wFl&|Wh-$==u1TDN2NhP~ad ztje*r&v5i zRX6uVA>KueM0+;Uvt*eNW7iwr$-QFQBY1SLDTJzA{c~GX_6RX-9P^mz>IGzzIzVn^v8c<%lX-6$3Jl>LmK{xD7?wBo@TUFlPFx< zMv@wp_%?yr1WjbkZPDzP*q)EYn8)R-h~ZtLA%su*MBAbQNwPYCwsg@?rV`jr2RUup zp2@hUkL$5SgHnfO4~Q+|@SjB_uJv>#m(TQN7*%dq^Sm?N8M-&R!0A|hC@`<`Yer@= zL1$1+F}XLLwsP|c%OJtJgUD3mA`kEG!>YcTRJ^&U)W};!IIxBe48pb0*7v_TW&I$&m z5Y^bXZrv(;U*?)?rJ)stM;Y*af}!a55AF)4p^wQ>vz7rZak~QUp$YS> zsh9}sN^{+!kG5kQ3Q?b4NMjDPo}8g*twUYLrY7pNj;MRkxF4&x*nZ?0NmnwXiqk|C z`KwTpoNa~ZiFfzP@NV6D>)~ybefu$HxrCQ(sOJz}ZNkEX8(OZI+-;kD&kV$Z;0vRV zPoWj;_5jx*bDjFTX`T@|u66w-)sLde%n^RfED>s(Q>|L4bX6e`M2^j-bl%}U1t%kFvO+L^#Aotzc{9;S^ zg^%*Z&pQ)#Vt$L(9e!D&7m>R)E^uK{?Rw`Lw(q$6pCeuFlK(=R;5!Od6P#8ocCz4p z++bJzg*N6TN4b6ryHRI$3b}YFzAZeNyb0r|N?O+>G-96dh=%j_jO~tW%!eDtbH_GX zKGLfm0oJ4vkwJ8AaQaUuM_6So%um0OVce@;`!O6`VRVG6H^Iy40C15}X;8!0)C*I9 zN0W7#9~j$@${PAhhAvIxG5TwYp$@LDi7U-snCIxDQc>Jjs1yEiA1WqXhks3~^^H;s z?PsQSm&oka(VWtXd9ei;f2usT$ja@t$&0-RHBp(m|31=X_*Xnlh1|X8G^yX76qz1e zqG)dA6uJr!G-Qc+QkhG$&Pol!O-DVBI25M{j!Zq8D>`b17hE`gSwt6+;7r`u{DN2g z9*Q>q$lVXE;k;+TE0p|;ugI+{&A{`ng(Yf^f~(bW5o4HHr∨_*@9S@Sc+Ii(SuaUEpJh8G+kkviW` z80=V7%1t`H#Uo!_BqAu|mZ8?{Cq4aSf7Tuv_~gsoh91gyYB@FYq{rW&22!S4iLk}1-ikGTWeW|Q6hTyJYsj=Iu7_};XJ>n--T2gW~LPMQ6LmfMK z(zo1BZ0cR+A4)3csLmuXZotF%EHbEmKGBkz^!vi4UB1wPA1)n3pC8Y;tQVJA?E*E7 z$JQ}*Uwhi*7iD3FD}muh`(DC0KrOzH;9H-Uh&;i!Uaoo1kshv7QTsqvm|b|dX{w#B z-2`7+cleLDVH={QoK8O|I%ja9awmGGamxJ4EeIaB3N^ztSqQU37@K2L z(bfXH+M{hmsd1A`v7ed1IabTbs!|N|;qjqPCS*OASZtPl>i*&_D*{==spju1k}4;0 zQackgz6zaLe{pSES>H^x+e%%kF&~}e(VXDvt10@}IaXvQFz6-MMXoGl?mMpPOi)vK$J~Pl+7o~JGz51T(r1x-ulqx)(Cf;TD-zzQId&PZ69VvLhT8C_7}x@ z&m_^_rO9{j2h_t3pjtP!YWFJ#xn^Cre4P@xvQoTV?e^Yo#J;T%)rJ9q+4j-W7ScTRwIAE^-Kt9a1EesdZVV6&$*n zQncqE+x~+;QJyu&L!s4k`9Af>ZdF2m^%O0Z%N{EKejB!rMVI~J-k90zcoKt@zKlPI z(B@n*J?*Q2Ha7Fg9GjibY2^Yxo(MY2;7`uU!+G=xg{eHT%B;ob?&_aW{N$SG_IbEJ zgD>o}w^by58swt`*IwSHE5;4_#n>NVEqZrgm)&=}gx6&pTmNwjC!3s2b;MlMH=6>LhYnY^vvpFq@NC26i9woabRa8rqs{dTKsr}V3ag|$SX>6 z1yzid;@pLO$l0dU6n5xw>E14L*+pXo7gW_HoxSOcpy+cGw-Oe;G+A)BR#|-6kR|PoZ}}bd02ABqrtpt1rJ6n<>;gHs)`^1Nr7B7f&J|5~`5&y&d{;v`WnmKU zxY-nNpMRYAdB#VC{c1nZVw3SeeS{PYXAZs@$4`Y>a? z+B?gF7JQs(cnP%8H1Ax=a5lfCJk=!H8emCf7%$+Yuj=qZCp5Fgcv{R;P15R}Y7#c@ zr%n?!j}dn2)VUUu>MXOH$PzENTf-7ByX&L=Ms_#5?K}dqW6l^kkESlfcv8$Fhb3in zFUK^WvUM%hS#~#!Wt8D$h{Oin%G6f!>3yDR)K;H;c%N-A3Gq{lk87s+Db~%wJ51Q- zZz^d=prOhFeWbf-0Y3cQru9L%2GnAg!v{> zoQM+QhMURjy`E(lk5R=Q=fi-aVEW=Yw(f3o_nKPb7|m*h*m;8)DND1MPDhhP->2S> zE+Cd4b>L&XqlfPrgG(!{idSk|NwA+1tJjjck1Q$jctT`r+xyVJ)^@0(fBm*gGIJ#` zbLFLe9yx!QDw=YWYGMQZev*=F^;8jynS0YVqMgKvWV*ELM^(oJx;T&Lt=51?7eT3_ zIrA5(C)lkK+@3Dt|M$Cpy;Bj@!~>z~czW?aJ6Gk9x1t7A9k&CS(zte{H|c%7Pz z!EK|surJL&UUiWe6Hk}TikU3BK6UmPBN8%zdzdYnJ&jmD=BJ`Ryu^KqYAJnpBS%~3 zai?y=N5;srrtEp}kAd|pBPS(atw^(+qNuTzJdNca2yRFvhyJRn$<-=h&RQ}kh| zCfl&7V`~fZbBYu3&Y2jW7;$PoyzP4R>APNt@gk0aobW-IQjbauZrfu|?RL8X#4O42 zqi9U(ZIa{hcFP~(=aEXm8Vu6;FE$80ml>t=;4iLnpXXF@%q@hU$0}VG$OV5=lA6Ik z^@}@q3Oj!<*~%%h3<&RY;hZ{Tu903PdtXRo*+*!94z@3Td;fvR^0CnV zFPu}!fT!;~KGVA_Cy?zc-`;l>S=JWbU&A@o&x}i>-Z!Q?mBu;cGJjZH&v0eT1TTJm z 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 delta 25844 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 diff --git a/lib/rt/jps-incremental/src/jps-sources.zip b/lib/rt/jps-incremental/src/jps-sources.zip index b67a400a7ee7c3b627517a17eb790da01ed3a237..b0728cda3ca50f19054c06dc0e6b9b5bb2801e1b 100644 GIT binary patch delta 6652 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 XU@-B&Za@=>f}?K0lnUVj=p_FS2sx#; delta 6634 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 DhDE!p