From 4ca89c92692fb74738814ed8d25c4f7cc429ebee Mon Sep 17 00:00:00 2001 From: emmanue1 Date: Sun, 7 Jul 2019 11:26:11 +0200 Subject: [PATCH] Fix JD-GUI #252 : incorrect integer constant type --- .../javasyntax/expression/NewExpression.java | 13 ++++++++++++- .../expression/NewInnerExpression.java | 4 ++-- .../util/ByteCodeParser.java | 2 +- .../UpdateIntegerConstantTypeVisitor.java | 17 +++++++++++++++++ .../jd/core/v1/ClassFileToJavaSourceTest.java | 9 ++++++++- .../java/org/jd/core/test/Basic.java | 4 +++- .../resources/zip/data-java-jdk-1.4.2.zip | Bin 22059 -> 22116 bytes .../resources/zip/data-java-jdk-1.5.0.zip | Bin 39738 -> 39805 bytes .../resources/zip/data-java-jdk-1.6.0.zip | Bin 55625 -> 55695 bytes .../zip/data-java-jdk-1.7.0-no-debug-info.zip | Bin 7301 -> 7885 bytes .../resources/zip/data-java-jdk-1.7.0.zip | Bin 64508 -> 64576 bytes .../resources/zip/data-java-jdk-1.8.0.zip | Bin 67483 -> 67546 bytes .../resources/zip/data-java-jdk-10.0.2.zip | Bin 21413 -> 21468 bytes .../resources/zip/data-java-jdk-9.0.1.zip | Bin 21397 -> 21451 bytes 14 files changed, 43 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/jd/core/v1/model/javasyntax/expression/NewExpression.java b/src/main/java/org/jd/core/v1/model/javasyntax/expression/NewExpression.java index 4f0e558b..5ae16c2d 100644 --- a/src/main/java/org/jd/core/v1/model/javasyntax/expression/NewExpression.java +++ b/src/main/java/org/jd/core/v1/model/javasyntax/expression/NewExpression.java @@ -15,6 +15,7 @@ public class NewExpression extends AbstractLineNumberExpression { protected BaseTypeArgument nonWildcardTypeArguments; protected ObjectType type; + protected String descriptor; protected BaseExpression parameters; protected BodyDeclaration bodyDeclaration; @@ -29,10 +30,11 @@ public NewExpression(int lineNumber, ObjectType type, BodyDeclaration bodyDeclar this.bodyDeclaration = bodyDeclaration; } - public NewExpression(int lineNumber, BaseTypeArgument nonWildcardTypeArguments, ObjectType type, BaseExpression parameters, BodyDeclaration bodyDeclaration) { + public NewExpression(int lineNumber, BaseTypeArgument nonWildcardTypeArguments, ObjectType type, String descriptor, BaseExpression parameters, BodyDeclaration bodyDeclaration) { super(lineNumber); this.nonWildcardTypeArguments = nonWildcardTypeArguments; this.type = type; + this.descriptor = descriptor; this.parameters = parameters; this.bodyDeclaration = bodyDeclaration; } @@ -59,6 +61,10 @@ public int getPriority() { return 3; } + public String getDescriptor() { + return descriptor; + } + public BaseExpression getParameters() { return parameters; } @@ -67,6 +73,11 @@ public void setParameters(BaseExpression parameters) { this.parameters = parameters; } + public void setDescriptorAndParameters(String descriptor, BaseExpression parameters) { + this.descriptor = descriptor; + this.parameters = parameters; + } + public BodyDeclaration getBodyDeclaration() { return bodyDeclaration; } diff --git a/src/main/java/org/jd/core/v1/model/javasyntax/expression/NewInnerExpression.java b/src/main/java/org/jd/core/v1/model/javasyntax/expression/NewInnerExpression.java index f4d18589..53dcb7a6 100644 --- a/src/main/java/org/jd/core/v1/model/javasyntax/expression/NewInnerExpression.java +++ b/src/main/java/org/jd/core/v1/model/javasyntax/expression/NewInnerExpression.java @@ -14,8 +14,8 @@ public class NewInnerExpression extends NewExpression { protected Expression expression; - public NewInnerExpression(int lineNumber, BaseTypeArgument nonWildcardTypeArguments, ObjectType type, BaseExpression parameters, BodyDeclaration bodyDeclaration, Expression expression) { - super(lineNumber, nonWildcardTypeArguments, type, parameters, bodyDeclaration); + public NewInnerExpression(int lineNumber, BaseTypeArgument nonWildcardTypeArguments, ObjectType type, String descriptor, BaseExpression parameters, BodyDeclaration bodyDeclaration, Expression expression) { + super(lineNumber, nonWildcardTypeArguments, type, descriptor, parameters, bodyDeclaration); this.expression = expression; } diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/util/ByteCodeParser.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/util/ByteCodeParser.java index c68725d6..437b24c2 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/util/ByteCodeParser.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/util/ByteCodeParser.java @@ -763,7 +763,7 @@ public void parse(BasicBlock basicBlock, Statements statements, Defau "".equals(name)) { if (expression1.getClass() == NewExpression.class) { - ((NewExpression) expression1).setParameters(parameters); + ((NewExpression)expression1).setDescriptorAndParameters(descriptor, parameters); } else if (expression1.getType().equals(ot)) { statements.add(new ExpressionStatement(new ConstructorInvocationExpression(lineNumber, ot, descriptor, parameters))); } else { diff --git a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/visitor/UpdateIntegerConstantTypeVisitor.java b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/visitor/UpdateIntegerConstantTypeVisitor.java index 56d9789a..075f115a 100644 --- a/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/visitor/UpdateIntegerConstantTypeVisitor.java +++ b/src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/visitor/UpdateIntegerConstantTypeVisitor.java @@ -205,6 +205,23 @@ public void visit(MethodInvocationExpression expression) { expression.getExpression().accept(this); } + @Override + public void visit(NewExpression expression) { + BaseExpression parameters = expression.getParameters(); + + if (parameters != null) { + String internalTypeName = expression.getObjectType().getInternalName(); + String descriptor = expression.getDescriptor(); + List types = TYPES.get(internalTypeName + ":" + descriptor); + + if (types == null) { + types = signatureParser.parseParameterTypes(descriptor); + } + + expression.setParameters(updateExpressions(types, parameters)); + } + } + @Override public void visit(NewArray expression) { BaseExpression dimensions = expression.getDimensionExpressionList(); diff --git a/src/test/java/org/jd/core/v1/ClassFileToJavaSourceTest.java b/src/test/java/org/jd/core/v1/ClassFileToJavaSourceTest.java index 96ea3dc9..eb2b5a48 100644 --- a/src/test/java/org/jd/core/v1/ClassFileToJavaSourceTest.java +++ b/src/test/java/org/jd/core/v1/ClassFileToJavaSourceTest.java @@ -110,6 +110,8 @@ public void testJdk170Basic() throws Exception { assertTrue(source.matches(PatternMaker.make("[ 183: 183]", "return ((Basic)objects[index]).int78;"))); + assertTrue(source.matches(PatternMaker.make("[ 186: 186]", "protected static final Integer INTEGER_255 = new Integer(255);"))); + assertTrue(source.indexOf("()") == -1); assertTrue(source.indexOf("null = ") == -1); assertTrue(source.indexOf("NaND") == -1); @@ -144,7 +146,7 @@ public void testJdk170NoDebugBasic() throws Exception { assertTrue(source.matches(PatternMaker.make("System.out.println(\"hello\");"))); assertTrue(source.matches(PatternMaker.make("String str1 = \"3 == \" + (paramInt + 1) + \" ?\";"))); - assertTrue(source.matches(PatternMaker.make("String str2 = \"abc \\\\b \\\\f \\\\n \\\\r \\\\t \\\\\\\" \\\\007 def\";"))); + assertTrue(source.indexOf("String str2 = str1.valueOf(\"abc \\b \\f \\n \\r \\t \\\" \\007 def\");") != -1); assertTrue(source.matches(PatternMaker.make("char c2 = '€';"))); assertTrue(source.matches(PatternMaker.make("char c4 = c3 = c2 = c1 = Character.toUpperCase('x');"))); assertTrue(source.matches(PatternMaker.make("Class clazz3 = String.class;"))); @@ -156,6 +158,8 @@ public void testJdk170NoDebugBasic() throws Exception { assertTrue(source.matches(PatternMaker.make("this.int78 = 50 / (25 + (this.int78 = 789));"))); + assertTrue(source.indexOf("protected static final Integer INTEGER_255 = new Integer(255);") != -1); + assertTrue(source.indexOf("()") == -1); assertTrue(source.indexOf("null = ") == -1); assertTrue(source.indexOf("NaND") == -1); @@ -2285,6 +2289,7 @@ public void testJdk142Basic() throws Exception { assertTrue(source.matches(PatternMaker.make("[ 171: 171]", "return str + str;"))); assertTrue(source.matches(PatternMaker.make("[ 174: 174]", "return str;"))); assertTrue(source.matches(PatternMaker.make("[ 183: 183]", "return ((Basic)objects[index]).int78;"))); + assertTrue(source.matches(PatternMaker.make("[ 186: 186]", "protected static final Integer INTEGER_255 = new Integer(255);"))); assertTrue(source.indexOf("// Byte code:") == -1); assertTrue(source.indexOf(".null.") == -1 && source.indexOf(".null ") == -1 && source.indexOf("null = ") == -1); @@ -2324,6 +2329,7 @@ public void testJdk901Basic() throws Exception { assertTrue(source.matches(PatternMaker.make("[ 171: 171]", "return str + str;"))); assertTrue(source.matches(PatternMaker.make("[ 174: 174]", "return str;"))); assertTrue(source.matches(PatternMaker.make("[ 183: 183]", "return ((Basic)objects[index]).int78;"))); + assertTrue(source.matches(PatternMaker.make("[ 186: 186]", "protected static final Integer INTEGER_255 = new Integer(255);"))); assertTrue(source.indexOf("// Byte code:") == -1); assertTrue(source.indexOf(".null.") == -1 && source.indexOf(".null ") == -1 && source.indexOf("null = ") == -1); @@ -2363,6 +2369,7 @@ public void testJdk1002Basic() throws Exception { assertTrue(source.matches(PatternMaker.make("[ 171: 171]", "return str + str;"))); assertTrue(source.matches(PatternMaker.make("[ 174: 174]", "return str;"))); assertTrue(source.matches(PatternMaker.make("[ 183: 183]", "return ((Basic)objects[index]).int78;"))); + assertTrue(source.matches(PatternMaker.make("[ 186: 186]", "protected static final Integer INTEGER_255 = new Integer(255);"))); assertTrue(source.indexOf("// Byte code:") == -1); assertTrue(source.indexOf(".null.") == -1 && source.indexOf(".null ") == -1 && source.indexOf("null = ") == -1); diff --git a/src/test/resources/java/org/jd/core/test/Basic.java b/src/test/resources/java/org/jd/core/test/Basic.java index 598c17ff..4afda88f 100644 --- a/src/test/resources/java/org/jd/core/test/Basic.java +++ b/src/test/resources/java/org/jd/core/test/Basic.java @@ -182,4 +182,6 @@ public Basic getLast(Object[] objects) { public int getInt78(Object[] objects, short index) { return ((Basic)objects[index]).int78; } -} \ No newline at end of file + + protected final static Integer INTEGER_255 = new Integer(255); +} diff --git a/src/test/resources/zip/data-java-jdk-1.4.2.zip b/src/test/resources/zip/data-java-jdk-1.4.2.zip index fb1dbc40d5e6ee9b83a71d1801ebbe8238a02722..b2f765e0a998d9f7000bd3cd441550dfed1f5f0d 100644 GIT binary patch delta 2961 zcmV;C3vTqQtO4Y#0kF9R5xQ9CPG>*?rK}170B92c034IiP!yBi1r2`(SR+Lg{+Cpi zRYE{fK@I1r5EML+=tr@@Sy03h1#?)4$pSe;7B`D}_TGE%U9p^c9v+9~?7jEid+)vf zGn)hiEa7A3?aZtHE4z>UaqArbYVe1O>#)#+>pi$ZMILTc;lLslYvQJSY=FgL85NH= z3&tfXR>PP$Tbhq?+~R-5ttxKA?OrVN;0_f(eM0hn6%XJ+ zA^wmT53AfC@!(M}9`oXH@$`fT2Mhiuy?Dxlr@eT_i)RJd&2+*@?bJS3fwGl?<=Tu? z+KQ&Eu4r;tccJ2ehRsgA)KuV38may{bs3_5eFdKMfMHqujT%S@#D6%e@>RD%M$fjBFEE^B|=O=)a(~R#XZwaW^U_fZa)9_ zq@kX65=nm|)gvf1Eg3t9lRPSlnR?XHZP`stGrB;*+LhC_R?TQhNi)fDBWw)n)_}~~ z29?v&HiKl<47qhNxc&AcV8VNPnUIwl)3@zoO&LQvfj3ODrDJ@s;b$;zQ%?^kEwV6< zIFrw-lFF*-ChZd4flPEe#?((^X&vtClO^dCs$_p%3A9Yz8a7iMENXeQ6$`;WnrjTR zmgFIuV1-FAbSJEVY#FaL1DG?q=U`gsWWR28MAHmt-O9r0 z_(&{!XxIT^4Lf2d4IkqZ4WEkJ&v2rKF6`vN=Ni7im#nb?(e@sErQvIQ#OHnN39#bK zB}0b#Kub$N!#DU=EZ;HOz{VQB$0;m~=pKKufH$B8)WC9q{J^Y$ClJ^BH2i=cJ@`q( z&-g{dZrGheTd1!Q>T7KE8ZH+&_@7S6IjM;ZGrOro zOb=AB*7Q_d!*=Mb4p|Er`^<%>p&L7Eh=_k> zp1`#S9h@rDCcVIazJ^_}EBjO4CXCv!d`TttvuASQlytMC`wX))IwHgW$W|Eci6Ule+PF#+R_J!jxlV}N=Mes?ZlgacJ%0A6IIV} zOoj4wkxUWf=+F@1Rj|(g>ipc)DXV{M|Cd{@Wn^>j*;~B4h3{)sPHW?tXG`%UEC%=r zi&>&-3oK(N`f9dC({iA;RkaB>+Wy52cT!LFTLa>~F>IQ8%Gxn8sBe=i2FH*;2G!R(hJq!~Zj#Q$x%%Oh zMx3Nn6vKxS=;Fjygg*3hS1^z>(nd*fSF{+*`IjF>5GP(MS+DO zmv8Nm+qdsHR*8h1k&r7Aa)&&NQT8AT{pI6WH8P5_5x990X;dSP`HkLxxLnS)468*P z{?)?~r#}#mG!{l0mmfz(q)}@uaE5%&+trA}xou;Sdl_btvLDGTDHne!m*aLd+~`*t zizfi6K>^p*8GZn3U>4Tqx(;SzJ(kHPsAeMTaVi?H3?bZw4J1I1*dW*dNor3PfI=Nt zA&EicQO89{k#bPqc`z^pC$*l5y-2yR9yOYz+_Z2g(xg1J6NiP}nTQ_h9VV5JoeBNk zq*Rc{;Fw)N(i$8)84~&tx8jCLBPjkb`nv97wNxxRB8tgoByT zW%S|@TJ+;CdV3iCE9QPUj>yzYn7-u+G;E}+iCreq)l9B$<1wtk42Kuxz;nw=X_TO> zXp7pQNa{!o@?MVpjDZmMJRu#Ns$-)G9sECrVL?*IG8lz_$K`*DdS0fe1EQE`vzUW- zW6g6>ARgDs)cD#HH7>QfxV947xddi2lwwPI*FLG%1G!p1K3D6_aLe8p%i8hP`BpA+ ztPpALO|~4N#LHTO!N|?<7AX()&ST?7nnm{trXab*NpF&if%glcZl8aHPMt2!SmVbth3qUi_GT#_#>sUOb8rqP)@8i8nwqXB zMoZ8yQ483}jCuuEZ*MMI$HH8=jaZ&*lHsOE z8FXogA)6>;pUq-$YqMw8Ww+F_JL>6dD?4I)1{}c=GPE5ixgx_mNrXWurwEA8t7p$d zAi2PM?7)Aib$$DmIxFRC#6is~%NK`>_b20&3>X)aN6hi2OlNhBqqe0y?-CTV$JRR! z9%Td`lBJ8vPupl!pLz-0Bhac>W$$&5{Q11R$p*`Syj+jrdK@&?ZV^$hpd+(sa9x@V z;WQakkR~-cd8%-cw}m_(k~wU$L!pLx%AF2H$rpd$Sh5$+!r2+8Ycf6O9LJpNr*!Ux zllsV+>!WjU?o`^@GUwuir6(00C$?4{m>G(WKEN z{sl1A6VR+8OYTaly^8bmYC>}jYvDSAaKofgQ)L^K)CF=}DGcbMjQOqMkX)tJ55QY} zhn;^Mt-AUSXS|N@f~hlX@g&8iImM++`6WWJ_<+qQ-jX~5eYLt=C}KG;oT6*#q&`z~ zx>Q@2q`DBMgjalha~E1WGw%9><4_iL+y+O4z&Mw}b*GK681H|xQl0gf&lL zLMUK=x6s1Xx!D_~1@W6xf(<#2O3*ke#!)}>C^jm=#-rHO-#Uu663iXN=C@&s2hr=wU7pVG)Bh!&H<6d;p}77CNiQcePK7?Z&iACo*&Q~|}4kyCF0n6cdwBEESW3RZarBM3cc36O*t+3zP9xGzM=^ H000001Awnt delta 2910 zcmV-k3!(JntO2X60kF9R5gbB|PF}>FrE>}Z000vJ034IB5EYZ(1q^>@SR+*wJwqzP z=!OtQ1vRXw5EPWv=*NNu)`B9IC>XIYCIdu61}B5=uDzGFch_FAthz2Pi)HP-_uhN& z`p556&wG;u1T5j>y*uySd*8k1p8IB=`s42V0Mz3*6*pkShZ}vkNktKER^h@eD%Qu6 zVr+q1#c-Q=yj>_RRk42#?htFsiZO~i{aCJI3@iK?_u(!TrC8#}-D18+4EOr6Qq1@H zalf#9K*fW2NSHtD$0I7|M}2tAkH`IZLOea`!$P6|lpjy~@QfeN`th7le_jkPc;Nih zyl}WMdQl873A2|~#`KE!=-z>^u^QLKD?tKkTtB7p6)WNY|6~+)jm&wvXg>U+RRMW z)-!gOo*p(lsCsPk?asK`Qs7OSnf^^1bHbd>6!@|Ore$v)rD05gCzY|c*phO)l#|AM z1w}(CE(p&C)v14Qz@W}$zwmItU@D_v^+a0FW~&d<57n#FdZxcRW?QLDzk<>ZvDP5g z8rp=;Tm{9k1sQw5uu};}(VWVp?5z~IYHGU_xZBJm&zRMb${3x)g9jScp8A1lt^_;G z1hdqwlz7f9y6u5fR>2w_rq$nYP_iLmT1JCyWbKAlJ)3_@%%!6ti{b8Qq|;`%X{D12 zw4}jUE!`$sv~}0Ci*uC}#jI^@Do&b+*vVq9v)4!<5}Q)DO$hR7juocVap(~rgkO0whyVIfNGr5jQIGt`(uzt<|t6I@~ z(s1_FjZV|v-W<*(x0|0ZhD5(e%}p3Yb0VEQ z5%!0*uo_+^TpXSq_Jxy1pN8-7y$?TV_z{0UX^3MVUdY0Iy>MUexYuxnz#%a8Sh`P| zybZIGa8mJD94AixnX#~KEW2PeQDIg$lS&xjDss)pBsJ`Ub`70kxD1zTI16WM_(crA z;#_t?MqUseV{ph`z}#mho`yZKmxeAebPHVfMmsxDo}DrqV)7M}TIk%mv!)c3r0st* ztxkPVFo5*j#mHv$em<-=6Z^Ux4(BY(YNpfCX&=X*PriY6?fW}?3$nH`$o$P=o2PW- z!`w~W^*qPW2j|lD49j#VUkK?8Vbq6)2%v(E{#S1o?v;v~_J7&++h)GHzC*>USH!+S z&9p|H`SvKAgv9_~QVCn|vcxv`Vyu5wo1T?dW?OBW2&3&^!tkbzOus!K-VDQ*Wn}C< zQ-j7XsdPG(MHRN-CzOI6P=ZSAh<3_50sP+D8In$v$tXFyMX!ljw40n`a+ZXVb60Ne z&aLk)?fjw_=(h*rS4xSE%W;1`b@QW6;anA20dFL*<#PBUfzIXdM|$WOu}#+Dlfu^5Z4~O2c_{92nNf>5UOzZj$yUn>J-ONzRO14!8OLQ zW@kW;x=X`LqMpEpQEy=WIM#oPN8RzLCm!`iealesIA#Sa$FX*N6cr=zawXoR#+!

nN~998iqt*OKv4Y==B<1Y8EO{LzIm`%xfq_UJe zlsv9`)mT$dX)2olpdKY0*Jb))tcTgykmE+E#wMi4HmD<(b8rqe$4Y-h@c_1v06pb^ z-~c40J{F#I&R3eTTS@j|M5%^d{yq`lVw7Fj;C-ujZ9v|7C)UY zf-~9hXEDjM*>C5{q#`_0W00rI5Ube*XRy{T5k@W*KLbCNmWom=zMf<+oI`6T==xmG zxyP~Tty4Pp@=1NIn4Jx=P`Q zbY6cl#n*~SeWn(Csg5rx#n{V5tlJfWQqpT@F5F;b9Lmy;d*F%_821Wz?spIt*Zbd2 zsVhY6WfiW%)p9k+E*_BN=8q>_o44Sl08mQ<1e3v07_+eus6Y)ILXA#d z#GR#c3IG5AlV(vp530b8eZcY50jj`_eZcY5ld@4W0$dQ2u@EMc4N^`5r4*B~5EGMd zQfdNE7L&0M6O(XK4U_y*SOPd0ld%vJlb{$9lY3K60*o1x;Ta&4>r+kws~(fF5EGM5 zR9ynBACmzfACt^fP6DbXld%vJlP^_c0wFAuu@DoJi7XY9yj4yDfkczB5EGLhRzC(d IPXGV_0K|cu2><{9 diff --git a/src/test/resources/zip/data-java-jdk-1.5.0.zip b/src/test/resources/zip/data-java-jdk-1.5.0.zip index 73a94a0c681e7b5d74ddee052bb88b1e6c3a109e..c78f41c7c7ea9026461eb2c61ccb918a98e65c40 100644 GIT binary patch delta 2405 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 M+!VUfe&SF42fsJ})&Kwi delta 3025 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 A8UO$Q diff --git a/src/test/resources/zip/data-java-jdk-1.7.0-no-debug-info.zip b/src/test/resources/zip/data-java-jdk-1.7.0-no-debug-info.zip index e1ba30d9dd19810ae553680d35fd8107abf11cd5..9d0e82372df66fa62d9f26973041bc6ef426988e 100644 GIT binary patch delta 1969 zcmV;i2Tu5fIn6z=7zh$VSm#c|nC8bj2LJ$y3;+Ne0FzG}9)FEhRnyZz6g{D7lZF7L z6t}`KNQ+Bhic_o%UaV+C8z2yxk_LBocXxL_DDFDE^E-HEV1T=6ihje8hrM@qubw@- zdH?mn6966XPC|Vw_L8=Q4NKW{nS|w7A)y9Vvb9xSti~Df{j`*=X}`9+S@{IiWdb2UAqGUPi1yLS)Dc!)=AcuedK_LT7iGYKhW zYC0$e<)9R-6!Zog2ZdlpohIWco(Xs^<9`KS(uMjnG)2f59K87w$TFrPO{){)EW<0x zNt`gPAFe;UC(>uNv>I$gXQgH{G6rLyj3I1T03vXWzuTBLO*LiAMpnja8YsaV8E=sz za%AV~IwezQ=Pc%1{;9}FV3dr}Y#7539*co=d;YqR>?Eeh7>6Wr(%#jKHVOMJ(SH^( zJ{OPHCO+Nh=H=anDt{~$sWeoX&7KMS?HD%gcR&~BEp;}5Va&DYI0l#U4rgxwA)qR= zyHc`pmMNh9Q0Q6mE05S?2x}#mBb158|HXWVGL*1h^Z38EMaw8LL72y$Q`S|}=6`X$ z{M%LS7m#MqvzE3PO)FZ)XsXtXDSvtUnTWNBu{vV^s>7qJ+3D5{4s}a*e^aL`dnxCd zrkb@zX|vTKnyzbkG(rdZk8Y=FtyU^K1;r^l3^yu}Y*@?^CO@ZvFct0VSwLN?JaNNzv|k;^u`)^KSRr)737Yu< zTPFv$AcLzO!4-Or`Ug>wO&d5UHe@K;ekzT0LN!U9_5;or@W4f~P=5;HYwxRF)m1&& zEv0u~!)5Ar4~3Gq;i}5LOO2HSsP*NtAAy|e+q)(KTlHMqQ##(W8Lx}8C-Rf1vw^bBTSkbN2SPAFp znBnv@k8t*ooKWhADt|bGnswc|LlF7y=TWt8kNWNuDI!I!(B0l}*SiuxlRhE-G3qB> zp@djK(}s2^`YIN42LlC(05J(N*sJE*}eV=p!p7W5y^$Tb@_WZXG_J7Wg9JS#20#U%MFQ~@F z1nBsJirgoNoR|GNY&!!vC$-OE1b+{$t~%h%f%)fd0IjdHO`7LnIlH}R#+cS3{1#q+ z+rj4%q*B@)g2&(f#xGzXwge!^$k zKSPI~z9L*+*GWJD^Jz|hO2@qhIWt~L;d;#cHW=)-^`am2@6Ie(ssK6?Z32jtG1_z~ zLo|S{W$5njQHGuY^eRK2hlnMKKX=i$4E=7x{=NgVI}P*=4nkPxPQ#ey$2$iA0E!Hg zJsUh14~WgAqBPY34~WgAqBPY3$l&l}qBPZ$kQ*xkgAbFv8)^cf8Ivg-RtAe200000 D2(z&p delta 1397 zcmV-*1&aF3J%u^27zh$nQG!iS0`l$i1ONaj2mk;a0F!YZ6O%m%3x9o6+4IX#6#lLz zO&UR4wH6cGpo3bA>d#hN?bH@)qYXluRGQlN-58G^cr#Yt1CK;O*Y{6C;+azpPAY;9Z5|;)) zcE~7mS&?BX*oj>dc7MyTWb9EW#9j%ujH(1jhAX4S!|vmUC!+N!9p#8Z+3MjFAHN1) z$EVUX&(UC*DI zA;%(vXgU70>7*AJy45UFctn$6^sv2Z9AuEW=k}`QP>`JESpF=A(C9Ji8HBuBA!x6f zN8rV#ZMz#>&#o}26|-y`p5a?m7U4!0IJ|qsExJ|H-)%X&7^aP0w#V3Sq;135mCoBn zy*_jEPnM$Z5r1svm_I-aiWP7zn=5w`^P+E*_bxYTYmFVYN!7YFlM=fgajTc<(n?<- zH_!ANp0kYD1O%2)oh{RRw?V#vaXv-JmFWW6Y=0GJaF(Huv7@ZXnyM*U4=th% z(7hiO!4l)e9Arriq`%67?3i z2Y;U;s%Hc}BkGxOM(T~2o>la0Br6AM5Ah|5P&{7Lg?R6xp6#V)dp<=%&#Kw(LMAG_ zQ1pJ9o`LwA1d-)_PH-h{w!Ih`ReKD!m)yMOT(VT4FN?u3X=iVlc{`slfm-F22#l3l5k z{t%%Udtcf_t=DsOq&O%=C~hg)bOab7K;!~_lThM%GOFy(rOq;z%X%?I_)>0A3|~)EMCoL%MeN6PS7KG0k4?K4Cb_!9hkq)# ziGE43b{(?NbqlfNtifW56q%xS>k1ykLAMhaGLHylM9MeR2r~8&OQr9bLbt#7FalwK z{22n1$gmn~+L@#6VF*v5-D%fV#M<9q6Bv3oc$Km4`yeOKEB{6$Fq|5Yz{n%iY znoS4g9*WcfnoS4g9*Wcfx&H>`9*WeH*c~eZI}MX@9ut!o9#;Zc7n5-wRt7^D00000 Dib<7o diff --git a/src/test/resources/zip/data-java-jdk-1.7.0.zip b/src/test/resources/zip/data-java-jdk-1.7.0.zip index 8bdd229375fc09754498c329154744ea3e5390e9..d78e33d74a2999a9ba9b8e48dd85a876e3f0678f 100644 GIT binary patch delta 3155 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 diff --git a/src/test/resources/zip/data-java-jdk-1.8.0.zip b/src/test/resources/zip/data-java-jdk-1.8.0.zip index c997c33121f1d973ea2f7863e549b7bc34c39d8e..53c666dd52b2f5483251ee2c48f39cb05ccba173 100644 GIT binary patch delta 3242 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 diff --git a/src/test/resources/zip/data-java-jdk-10.0.2.zip b/src/test/resources/zip/data-java-jdk-10.0.2.zip index ac021dd2c90802f85daf94bc6c88d874050bc40c..ccfb73ea5b855646c00f90659cb7c2d5c0d81231 100644 GIT binary patch delta 3023 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 diff --git a/src/test/resources/zip/data-java-jdk-9.0.1.zip b/src/test/resources/zip/data-java-jdk-9.0.1.zip index e71146f5ca0f79b50c3d051cf5ff899887d09704..d4c995eee2f92787495419dd64d50faded25c9ec 100644 GIT binary patch delta 3008 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 F007?`ycqxh