From 5cdafcf43e77500351eb44a98598ec4ddc5b59ec Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Fri, 24 Aug 2018 16:29:04 -0700 Subject: [PATCH] 8039082: [TEST_BUG] Test java/awt/dnd/BadSerializationTest/BadSerializationTest.java fails Reviewed-by: prr --- test/jdk/ProblemList.txt | 1 - .../BadSerializationTest.java | 76 -------- .../awt/dnd/BadSerializaionTest/badAction | Bin 1982 -> 0 bytes .../jdk/java/awt/dnd/BadSerializaionTest/good | Bin 1982 -> 0 bytes .../java/awt/dnd/BadSerializaionTest/noEvents | Bin 1670 -> 0 bytes .../awt/dnd/BadSerializaionTest/nullComponent | Bin 661 -> 0 bytes .../dnd/BadSerializaionTest/nullDragSource | Bin 1978 -> 0 bytes .../awt/dnd/BadSerializaionTest/nullOrigin | Bin 1936 -> 0 bytes .../BadSerializationTest.java | 168 ++++++++++++++++++ .../awt/dnd/BadSerializationTest/badAction | Bin 0 -> 3651 bytes .../java/awt/dnd/BadSerializationTest/good | Bin 0 -> 3457 bytes .../awt/dnd/BadSerializationTest/noEvents | Bin 0 -> 3160 bytes .../dnd/BadSerializationTest/nullComponent | Bin 0 -> 3470 bytes .../dnd/BadSerializationTest/nullDragSource | Bin 0 -> 3609 bytes .../awt/dnd/BadSerializationTest/nullOrigin | Bin 0 -> 3605 bytes 15 files changed, 168 insertions(+), 77 deletions(-) delete mode 100644 test/jdk/java/awt/dnd/BadSerializaionTest/BadSerializationTest.java delete mode 100644 test/jdk/java/awt/dnd/BadSerializaionTest/badAction delete mode 100644 test/jdk/java/awt/dnd/BadSerializaionTest/good delete mode 100644 test/jdk/java/awt/dnd/BadSerializaionTest/noEvents delete mode 100644 test/jdk/java/awt/dnd/BadSerializaionTest/nullComponent delete mode 100644 test/jdk/java/awt/dnd/BadSerializaionTest/nullDragSource delete mode 100644 test/jdk/java/awt/dnd/BadSerializaionTest/nullOrigin create mode 100644 test/jdk/java/awt/dnd/BadSerializationTest/BadSerializationTest.java create mode 100644 test/jdk/java/awt/dnd/BadSerializationTest/badAction create mode 100644 test/jdk/java/awt/dnd/BadSerializationTest/good create mode 100644 test/jdk/java/awt/dnd/BadSerializationTest/noEvents create mode 100644 test/jdk/java/awt/dnd/BadSerializationTest/nullComponent create mode 100644 test/jdk/java/awt/dnd/BadSerializationTest/nullDragSource create mode 100644 test/jdk/java/awt/dnd/BadSerializationTest/nullOrigin diff --git a/test/jdk/ProblemList.txt b/test/jdk/ProblemList.txt index c80d7f81094..28b18196a5e 100644 --- a/test/jdk/ProblemList.txt +++ b/test/jdk/ProblemList.txt @@ -128,7 +128,6 @@ java/awt/FileDialog/FileDialogIconTest/FileDialogIconTest.java 8160558 windows-a java/awt/FileDialog/8003399/bug8003399.java 8198334 windows-all java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java 8060176 windows-all,macosx-all java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java 8060176 windows-all,macosx-all -java/awt/dnd/BadSerializaionTest/BadSerializationTest.java 8039082 generic-all java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java 8164464 linux-all,macosx-all java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html 8171510 macosx-all javax/swing/dnd/7171812/bug7171812.java 8041447 macosx-all diff --git a/test/jdk/java/awt/dnd/BadSerializaionTest/BadSerializationTest.java b/test/jdk/java/awt/dnd/BadSerializaionTest/BadSerializationTest.java deleted file mode 100644 index 81426382dbe..00000000000 --- a/test/jdk/java/awt/dnd/BadSerializaionTest/BadSerializationTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/** - * @test - * @key headful - * @bug 8030050 - * @summary Validate fields on DnD class deserialization - * @author petr.pchelko@oracle.com - */ - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InvalidObjectException; -import java.io.ObjectInputStream; -import java.util.stream.Stream; - -public class BadSerializationTest { - - private static final String[] badSerialized = new String[] { - "badAction", - "noEvents", - "nullComponent", - "nullDragSource", - "nullOrigin" - }; - - private static final String goodSerialized = "good"; - - public static void main(String[] args) throws Exception { - String testSrc = System.getProperty("test.src") + File.separator; - testReadObject(testSrc + goodSerialized, false); - Stream.of(badSerialized).forEach(file -> testReadObject(testSrc + file, true)); - } - - private static void testReadObject(String filename, boolean expectException) { - Exception exceptionCaught = null; - try (FileInputStream fileInputStream = new FileInputStream(filename); - ObjectInputStream ois = new ObjectInputStream(fileInputStream)) { - ois.readObject(); - } catch (InvalidObjectException e) { - exceptionCaught = e; - } catch (IOException e) { - throw new RuntimeException("FAILED: IOException", e); - } catch (ClassNotFoundException e) { - throw new RuntimeException("FAILED: ClassNotFoundException", e); - } - if (exceptionCaught != null && !expectException) { - throw new RuntimeException("FAILED: UnexpectedException", exceptionCaught); - } - if (exceptionCaught == null && expectException) { - throw new RuntimeException("FAILED: Invalid object was created with no exception"); - } - } -} diff --git a/test/jdk/java/awt/dnd/BadSerializaionTest/badAction b/test/jdk/java/awt/dnd/BadSerializaionTest/badAction deleted file mode 100644 index d8b58ee48eb957adcfc1eeba826815e9a890be27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1982 zcmZ`)O^6&t6n^uwJG+~#o7ou5l0+l~qan_q8b6=zS?-8Hk7?XGI8 zs&{%Mu6Xf~=rM-`g$ThP^dKI*d64)A=H$h&C?cqb1wp(h0l`<*J3TvDZ5XDy>b>v1 z`rdnAfAl+yC<(_dkquHIU0w0HUzwMr^Bh$=mULl*a=lr2X4}8>_o)ID>o7_@%>;K~ z+!J9WIG$^G&@lj21gO^fyR!~V_=waLvGk~hnSl)kshS|^5gLvP$vTW{I504}C~#vo zk#NW+7i$(&Y&s4167{t6=J@l6!&lzV10)duOyM;i$gbfKmjhCc&FOblJSlSH=TiGSGl(R?u*}_y>+7iCt7fX#9EvaUaXcS z;i^q#gU>S+2}OcBjJYD_zG_5ucsL`dNhQPZFH?V>XtF}3LIztm^ke7#nOT!O!z17+fQRN2Ft;Asg?+7cwy{t*k9?p5dRH#EKE zV$vOH*d1zqwh%6bXsNJ)RcVrC6itMJXaGb+5MD#`K*RONHi89`s$! zZkdQadMy*#p$NC9d;3STt1!K{VwmD;3TgVbiu@s9v5nW(Fg1vE4mV7sHr6k_+e@$s z6PQ>aJQCp4?DVKbaqJ%2mv-tlGh(`h93>1p@e;R+eVzuQv-fQ?KJg zUjG^9^45*dwk|gww^BE$taQy;!Be{x&#;jj(l@h{M>g#sBb$eIRew%O(sP(XH8V<8 zFt!JgfQR)$)nE?(0t>(FxL*py@$tYBexJOJ4i#*!8c;+Xcwgp{S503lH6* zsYMbc8unYV7ll=96Luy-uz}iV3fGVf1&A2CueRS?c;_wePTs)oLt*Y8So9L+W8gIu zm+=!}FpnVQKzXfffBMB0d1mvQN3HUv^PlEsT$OP;ii@1hG>7gp855Sjw4zpP{(Sn? zd$+EC@<<*^D0yzIwcvG_@KBi6YbXXNT>EVYFXI=aLuD#A#bnM^Ms<*w9xkzE?hjGt zQLJr diff --git a/test/jdk/java/awt/dnd/BadSerializaionTest/good b/test/jdk/java/awt/dnd/BadSerializaionTest/good deleted file mode 100644 index 3580da63bb87405729e64dd2e4967eca31f68126..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1982 zcmZ`)O^6&t6n^uwJG+~#$!rW}Ng@)0(GX`)a@!!Tvm2SD*I9O!6=zS?-8Hk7?XGI8 zs&{%Mu6Xf~=rM-`g$ThP^dKI*d64)A=H$h&C?cqb1wp(h0l`<*J3TvDZ5XDy>b>v1 z`rdnAfAl+yC<(_ekquHIU0w0HUzwAn^Bh$=mUMoDa=lr2X4}8>_vr!@>o7_@%>;K~ z+!J9WIG$^G&@lj21gO^fyE6_<_=waLvGk~h>46OfshS|^5gLvP$vTW{I5;p`6u2>y zNH}bhi!}=>Hl2ohiF(?3bNu-u;VbXw0g?y+a(ImgvTHcRrNQYxuKx1zxwB{Tkgvly z30Q}Rn63jwO%u#|Dh(D8-l;aVWV~a-O=Te2RjzHn`{MWKZrv!r$rcir7prAS zxN1|`;B!nxLXn^jW3Gs~uNqMu9?l4AQpqs<%haDEnygT%kiiy|C?{?}{R=Qo4bKZi zt+!yhy@S1hb|kn+dul$lYr(iZGfr5DHOe|`x&@PXFCpm?jR-PUhht3j)3Xq0-N1!p zzE3gg7*mVHTc>^tCPI=lF|8&=n2C__?4`^}NavF%U>?&!&l*f}+O-8x4IcDburHFd zoq3FG;0+P8w80d!366A`uh;63OYqlopiDfEDtlNHJT1W~TY{w8KVkvXz3S}!hNhQX zOu8ctyF+bK6M>L;KIyGt9ceR;A|bK3C(`1&6l+vnlp>;1_iDRsOy7C2RA>(6LEqKv zmWk-2*D{eEig0_nw|_LV3R8P4hAFP5kfv{|$R7e0+jwma2L`dujqdkHpS z0uu{_M*^IhogTF)j@?81(oWrm25*jGbDPGp25Bt~S{VbIYMOP)fw72EY2upq0~je1 zQ5>n^NGmvCmesL-jV)3V<#5sp_$!(PJ_jMUvr69q--b4#;YY)0C}Kq&oYpfc=9Qpp zR3{{!P)Vh>V9s{Q&l2@ShhvAze;&KLecSzE-Hf}0Q`w9fz50Kzm8BW_>&?Q=)a%5M z*MEk&ymjNVt;>zat<+5_D_yfz@YHU_Gi>CB^v&$#kxe_u$mZc))t{A;^c<#8&5TkN zjO`&L;GsSFq=L9|wS4lf`}$Kzbb|CHXnM$+S`Ez5lGnaFe*J6mb^&sAC@N&h!b7)c zYLP^VhW(c81z{E2gq@BMY@qg;!ZjpA0V2lktL^vZ-+9ZslQ*#YP?-A%7QKY|7jD{8go&!=C# zckB8mkL00*lIO-+3too_4~1#HhGKxiwcmE|GJZiiRHkxMOlDnWR0oOa;SyWs{t$H@ z#oC7W@r{dLe*5I-?esGd3ZJzZO78_IcGoCJ*8yK?b{T8dJqqt#YkaUZpY~WeyUFYe z%l7=Y51;t?$WK>p=b?b&>j|#nkotAVGk+CETpzy(8uF{pCWaPMy4+u;OZv~yH1#*_ Hf0FzQUcHBk diff --git a/test/jdk/java/awt/dnd/BadSerializaionTest/noEvents b/test/jdk/java/awt/dnd/BadSerializaionTest/noEvents deleted file mode 100644 index eee6a49949c2f004ba7562890ec9601e8005a725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1670 zcmZ`)O>7%Q6n_3m9H)fVDHTL*IaC#es|uVVt1R+^dj=6i46_ul8P z{(uFe;qqNJWOX*O^*{#oP0hkrxv`1nTSG4GQR$WA;L%^#OHgjXBJ-_K(u1n62C91^TylvO zQQf7}?%n0S^**S+@!a5@FN*+a3;+du#?$#TJl5mU^*`_b_VulsH;PbfL6t=!lmkrH zgR9jk>5Dcoufl0W6c zFtIW$YQa)ZB{DGWxCPJW1?q4uF#Ov**kqRNb8WDKU8r!$dJzv^gDR&wZ!>e)g|+?! zdx(B4dYzBWR_51*sdDK-{mpGinZX9Fw^uL1bVk|p+yjIjJhPu z4)YIr(1qmzOFNiWha=4LK*)SklWf4Z(l`>nu+i8#tVlj`1emsr#$7lQYu?XqEDZ65 zh*=p5BV2+DBN5nx78Fwa#vas|?{njfO(io5t~m+ky^)TsBQ+4Os zq^TmM(Z1pzAdkG0#Ie#y?v;$(9!HKEJ6gqD+i~-x5A~g&XoK!hoAq7O9Z|#pZ|yN1 za)dk8y;IZr9aufh7^Zk9gQUJ~VEquV+{b5II6I4V8xJT_ANkAP_7)t$GA0%&pG7z| zlOA;_o;yST%7nMM!P^wr+|*dkA>)$JY8aTR~acO@RBgHCCVly9U9|z1; zb!p16LrUWUPFe}SGA;0T4hoZ1wg=qJ9mMlL3yTAl81CV;-Y|)*M&-_hJrH9$AD|5I0Gt9jw559eJ zul{3AdEo^68(OomCk(0?DOHJl&tn0eJ(W); zi2L_zS0DG@dl?IzV);^ZJ?~td2Igq#yFXw4=tuTR2?{MJ8?2Iphf$fhNaNJPQ?A(C z$|*L5U5gQHruMnQwY5M2V&wP3@fTa4e(XOg66_fi=BdG$bo gb+Y}<_wVbQM?byblsB9IEH}Dp=+Y%xO)^dY0aWZLxc~qF diff --git a/test/jdk/java/awt/dnd/BadSerializaionTest/nullComponent b/test/jdk/java/awt/dnd/BadSerializaionTest/nullComponent deleted file mode 100644 index 3166bcbcaf13ab9951b779a7b3d14a602b1a030f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmZWmF=!M)6#cimiCz#fsF)N13$YN~L$M2pXAH7tV+4ajQqAs8&WYKXadsv*CwO9G z5o2kQBAtbzl|}lXqM((P2qD;52sSoKD*w)McVHHV9p=CP-uv&r{slvYf{A6aNg*T3{L`~3He4?zUOB-Kpt80x9WrQlfCa4aqf8c5KX>b*|J zFp?qDO<`0@HH;51DAFiJsuBW+g<>tnH5?g$ZU}ssv{w;okF& zHzz$ffRQFfYr!KJNmp2UcS;zp7vPW-(#UxXrbSidDX`6?D6OGf2d@~;{}K_GM!T4H z)@R;-I=8*#CaUKmV@r&x;u-|)JCtMVVCj{+{^ne}%=eznz5F&^=Br?|KS}fUysQ6s zb@uz%?%G=q`~^6e3SO9;W)XNSTZEw`BbsRN7BAa-&;=LBpK?vTuhzTl`&;`Dw5`y| diff --git a/test/jdk/java/awt/dnd/BadSerializaionTest/nullDragSource b/test/jdk/java/awt/dnd/BadSerializaionTest/nullDragSource deleted file mode 100644 index 62a9bb69bc5775d6d65521a78e6c6629e5179a58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1978 zcmZ`)O^6&t6n^uwJG+~#$!rW}F%b#DXoxc?xor^F*^Nxn>nuCVinFKc?wZ-kc2~7k z)jK^BSG;&g^q50}LWJNCdJqrZJV@dXn3EU7qKKd#76kF41O#7I@AT|swPBd*dau6s z>U-~f{qgTGq9h!y zNH}bhi!}=>Hl2ohk$T#BYy5>H;j16y0g?y+a(ImgvTHcRrNOB`uKe=J*)yl}kgvly z30Q}Rn63jwO%u#|Dh(D8-l;aVWV~a-O=Te2RjzKo_tN)gZ(c9Ji55IeVlB=IFILNv zaMh-=!RMHYgd#y5##|9|Up1mSJdzRAq>^FySExTnG+CiiA%iU_QBK@|`sZPs8lD%3 zT5rL0dk1?1{YY?u_SAgp*Mf0tGl#GcYm{}?bPFc&UP96(8WCiy4o8{lr)MG1yMYVI ze4k>}F{T!Yw@&>QOoSw9Vp>g#FcTr;*-M#|kj^Jjz&xgdo^_byv}+5X8a(K=U|%F@ zJ3BG5fj30V(gst^COFb%zFwLupY+zSj6_WfBb#=Rk8K=mhCY(DjgYwHlbAC9i*X?Aq7lodV?QP*lj0g@T`*q#gr}gm+6rHGc-y4P5YlD F{{k4QhVTFY diff --git a/test/jdk/java/awt/dnd/BadSerializaionTest/nullOrigin b/test/jdk/java/awt/dnd/BadSerializaionTest/nullOrigin deleted file mode 100644 index e5daa2a136381cf83c31fd08d9ae24064e688ee0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1936 zcmZ`)PiP!f82|Q9ve~q;-PB@3Tai+zmb#1LEk#^6scbuOLpDU*oZig5-MnVzz45&_ z*;%O-FCMHOduUOpQ2c`)#JdM6>cO78Sb`#gdI$*OMJWh=?@e|#+vvcuZ@%w)zwiHV zKK&ggl!TL)$rh=SzOMS*uP#W^dx0t)OS-s4xxQL>ZpXj-_t^pzn=nZ{%>;L#?1?ZE z9Q7I=b__rb0cwq*bl!n!ACcN3mLAnGH?lz|HRB{zq2Z*EtjD;9!y}_*fr9x&!ciMs ztXWXC;k4Y#)YHy8`t*8l)W(8_f$YKPtofX zQ_IBLq<#mcLz1*HtTsiM>5%d4rNT)_7n3Mp9@D|V8q9Fow+&D&9t=8gAdi_oS)r z*qAg#ASCK%ybbIlZO2h0BsTX{+FX}nk7~wJ1>?B&7m@yyM`4Rk3Qa7 zC9+2mZr}6{RrBjGyT4-?;(7{c=C+3QL%?De)7Efk0xC+x4SRgzS z;MVNUs6}zC4DCz1eH&Z61%|_I2Fn_xy)WLo536=jmesAZF`@^PLcL`^*9W{LQ|F_mw=IO7u3b)c*r^asmr<*I= zH^11v(t5&D-Hfu-Rkwtv_A;KSMsAGXj3kfMw2O?@Ji4d*bt%cfVG7yIFjc|W9>D@U zvM-*L5ZA6%PTzCid>RX#VEGa>Jz`BQ2WDu=8{eJ0@eO&e0J$a<6;{c@L%(Qxkwl4x zgSOa9!ZNmTI~O6?i0w0mYe|L#M2y|nJ0C8-|E_m8Z(t7~F%K0My@c@?cn!r>{6rYc z9dCs3NRz6}-6Wx3gkq&>3i@#nLz-@kq1^T+Z~LK1Uhtp#tww1-r)*}(NiDmrLq zauvS`Jt|WIDJFGS86Lq@2YAFGc+f?YN3pgpeti4VSKmJMWj7`MQ24CNkW4Q^vA;n% zUL92+jV`N$y&i@4ueUzlUQDN^l4VkVY1Qg~`{c==kNx!4ojeqfPCda@98$jtdFHRf fgzF>6YsjxZpO~_kX5{`deIGt!`!N*S|0MYrcdvUa diff --git a/test/jdk/java/awt/dnd/BadSerializationTest/BadSerializationTest.java b/test/jdk/java/awt/dnd/BadSerializationTest/BadSerializationTest.java new file mode 100644 index 00000000000..4090556d594 --- /dev/null +++ b/test/jdk/java/awt/dnd/BadSerializationTest/BadSerializationTest.java @@ -0,0 +1,168 @@ +/* + * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @key headful + * @bug 8030050 8039082 + * @summary Validate fields on DnD class deserialization + */ + +import java.awt.Point; +import java.awt.dnd.DragGestureEvent; +import java.awt.dnd.DragGestureRecognizer; +import java.awt.dnd.DragSource; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InvalidObjectException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.ArrayList; +import java.util.stream.Stream; + +import javax.swing.JPanel; + +import static java.awt.dnd.DnDConstants.ACTION_COPY; + +public class BadSerializationTest { + + private static final String[] badSerialized = new String[] { + "badAction", + "noEvents", + "nullComponent", + "nullDragSource", + "nullOrigin" + }; + + private static final String goodSerialized = "good"; + + public static void main(String[] args) throws Exception { + if (args.length > 0 && args[0].equals("-write")) { + writeObjects(); //Creates the binary files for the test. + } else { + String testSrc = System.getProperty("test.src") + File.separator; + testReadObject(testSrc + goodSerialized, false); + Stream.of(badSerialized).forEach( + file -> testReadObject(testSrc + file, true)); + } + } + + private static void testReadObject(String filename, boolean expectException) { + Exception exceptionCaught = null; + try (FileInputStream fileInputStream = new FileInputStream(filename); + ObjectInputStream ois = new ObjectInputStream(fileInputStream)) { + ois.readObject(); + } catch (InvalidObjectException e) { + exceptionCaught = e; + } catch (IOException e) { + throw new RuntimeException("FAILED: IOException", e); + } catch (ClassNotFoundException e) { + throw new RuntimeException("FAILED: ClassNotFoundException", e); + } + if (exceptionCaught != null && !expectException) { + throw new RuntimeException("FAILED: UnexpectedException", exceptionCaught); + } + if (exceptionCaught == null && expectException) { + throw new RuntimeException("FAILED: Invalid object was created with no exception"); + } + } + + /** + * Creates the stubs for the test. It is necessary to disable all checks in + * the constructors of DragGestureEvent/DragGestureRecognizer before run. + */ + private static void writeObjects() throws Exception { + ArrayList evs = new ArrayList<>(); + Point ori = new Point(); + + write(new DragGestureEvent(new NothingNull(), ACTION_COPY, ori, evs), + "noEvents"); + + evs.add(new KeyEvent(new JPanel(), 0, 0, 0, 0, 'a', 0)); + + write(new DragGestureEvent(new NullComponent(), ACTION_COPY, ori, evs), + "nullComponent"); + + write(new DragGestureEvent(new NothingNull(), 100, ori, evs), + "badAction"); + + write(new DragGestureEvent(new NullDragSource(), ACTION_COPY, ori, evs), + "nullDragSource"); + + write(new DragGestureEvent(new NothingNull(), ACTION_COPY, null, evs), + "nullOrigin"); + + write(new DragGestureEvent(new NothingNull(), ACTION_COPY, ori, evs), + "good"); + } + + private static void write(Object obj, String file) throws Exception { + try (FileOutputStream fis = new FileOutputStream(file); + ObjectOutputStream ois = new ObjectOutputStream(fis)) { + ois.writeObject(obj); + } + } + + public static final class NullDragSource extends DragGestureRecognizer { + + public NullDragSource() { + super(null, new JPanel()); + } + + protected void registerListeners() { + } + + protected void unregisterListeners() { + } + } + + public static final class NullComponent extends DragGestureRecognizer { + + public NullComponent() { + super(new DragSource(), null); + } + + protected void registerListeners() { + } + + protected void unregisterListeners() { + } + } + + public static final class NothingNull extends DragGestureRecognizer { + + public NothingNull() { + super(new DragSource(), new JPanel()); + } + + protected void registerListeners() { + } + + protected void unregisterListeners() { + } + } +} diff --git a/test/jdk/java/awt/dnd/BadSerializationTest/badAction b/test/jdk/java/awt/dnd/BadSerializationTest/badAction new file mode 100644 index 0000000000000000000000000000000000000000..c02632cabfd9b9b4536e17eff67c8551fe23cff2 GIT binary patch literal 3651 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 literal 0 HcmV?d00001 diff --git a/test/jdk/java/awt/dnd/BadSerializationTest/noEvents b/test/jdk/java/awt/dnd/BadSerializationTest/noEvents new file mode 100644 index 0000000000000000000000000000000000000000..a45ba168c71de59fcc1b27af7eee1cc081de77dc GIT binary patch literal 3160 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 literal 0 HcmV?d00001 diff --git a/test/jdk/java/awt/dnd/BadSerializationTest/nullOrigin b/test/jdk/java/awt/dnd/BadSerializationTest/nullOrigin new file mode 100644 index 0000000000000000000000000000000000000000..5af1996e74b38800dcfeb62184d0181e738fef40 GIT binary patch literal 3605 zcmb7HTZ|i589r;TckOL=vm5r3&?Jq*R+SL3X)CH$i)c1`Nu4-&wNAHW%|nl8j_pat zGm|-IymqBVAP~2ZB3ktUXoV^P<@(G+C8Pj_2O=JL0E8eBFL{U{4~T~bgu?g# zfMBE@&pGG+&wu;=%l`1MBBMib_=0T9yxcK)+q3hlp=_K|+C-sRYb(!OPM^4KUw`+5 zX)#(9W70B?@0CQ(@>_xL;oOMX5?xTh1%;Jlcc~;MY}{1wqtH@D930RbwV-6%0(V8 zk+Db5%D{*Pw!c$g6AH`hY8=2t)6%mL6F=ljn0S7OIN2w6*8I>`p%D)aQN+82lY9uW z$vUZ#@Ldv@MGl(|DY-@ZI(x5R;^YulJm@;wC{KkY{2KAdkUT};DR9i_I3WXDF7SgW zIIFzKhyz1Br#F%lkj=G~@ny|bD^2M&R3!=mKZKZL%u=W+>FL7O{b;~E1r*r+PGX)B z4-X0I2R|Vos4;*z4_187NC$?U82^<1*X)CjrbV_Wj#$Zd1r7pGUR3s~G!h=sNQ!MS z#V%dxTCUpkePH1bZ=4Gy5TK>I;k%C2-3a}*g8&u9171Iibag1D=BlxgdvnUsfizZ= zf^&30Q*s(jv!m#}+NU5_yRz#?=4=Dxv8y>vOYyGsWJ84@8*j-@1?CLp@~VS0Aj974 zn_l9-cKbW$fA`UEeLXD}x5Y!09Wk&&#HFsnvPYWuFuN$SH9zufT@KiZJ^ugT#Bt?O z(CyPA#}GOz^~G&*aM+V)R9COXblW1wXT*d8)nq4Z1IZ1~57nj$5J*!Lha8=#$H4$~ z86Tlz+X|t}I(kD|7nQv&CVI}`+?{AS9(jfrGoEazwN8L2I>znt-lV5?805O_xm}cr zAXN1}N2U#!;Lh>3qa9W-v*XyNSrj83{B=uWMq0>hJ|xts4iNrm539+M<2t5`dhi}X z1a6`Rr5ho6cc^@>_^wZZowWW-?f{4ZaMT^jFEEW+QK*q>VrBra72YC=Hn`&Ab)Tx9 z94%GF{=E@{ialIYJukq2xNx)%vyIp{khP8tl2k|hV%w-XEkH5Xx11b+iLN>@HTiD48t| zBf`|_hHp(je&g+zUrLFQlE_#TUJ}26vNgpWlG-RKGt*yrB1(zOx)`fVH)u-q zD*!Q4C6TgVR@@l467WrE+qkb1NJ}Abxq8^BF}V?`>UtHI@QUOua<>)t?%cT(1Z2l- zU-&MKKX&;AlmE%9U!d+xT*rEj7zYnM;5)w8ehPqITt#VZEBm?PrqVn+(Dt1xzy0G= zpPj!-7lz{D-F-YD_Yuv2W8~z|KY#7ml~XbGWM4y~dgslL+`4{aOQ*$Hk&23E?pub| zsY#)3P$Cz_sOF!HHeDA!oUL!FOA*?!vX>1oRErE2Vr~~GpOw04s3H--33=p(Bk`!R zyut36q&J%WWGS*7TOK`yx@oHpd~Gffp-xzxlV@w_X|Y?>)MXeLKw-6KL~s za$J6Q=7rZkeD^PGbhZiIEZ>G9;}!~s3A?Nu5)Q>DuK2pQlchX~0L$Kb4D*i@aGD$e zdt0In##sZ~?%@GqHlH&>;8%IX^aQ^;9ClW2Fl_dFa5;1^Do7eEe{uV*wKre4t^?+1 zkC+RS19lzo(}9(}WQs5x#^t2fvwMAIX>Q*aC+BZ{9~lr2hk^k2z5xteeKQlTs@eGXTQhY)EvjEGqpn&3Z*Kr+EPAHU6@PN}^;7lxF@8}|bHSv;U%(uKiakPQ{BOimJo-yF zR+qpsf($>{Hz$_HQyR6uFjf^Ps9vi_slS)?gjrD`xGZjM;e;z<~<#?lwA}l$F7P@&BnAxMe!t; zHFm$Ce?N9TGWq5l8l%wvf6ak>@CX5eK0ZXR0=*t%ti-!d4&?!zJ{7RIry-5A<9|dR Lu`Uf^snhv42WOF< literal 0 HcmV?d00001