From 9610256ddb46e0d847ee4d5095cc5ab59d0bebd7 Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Tue, 19 Nov 2024 10:36:12 +0100 Subject: [PATCH] #1058: JPEG fix ClassCastException for Unknown segments --- .../plugins/jpeg/JPEGImage10Metadata.java | 3 ++- .../plugins/jpeg/JPEGImageReaderTest.java | 3 ++- .../src/test/resources/jpeg/dnl-marker.jpg | Bin 0 -> 4023 bytes 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 imageio/imageio-jpeg/src/test/resources/jpeg/dnl-marker.jpg diff --git a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10Metadata.java b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10Metadata.java index 56975a91..f85cb150 100644 --- a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10Metadata.java +++ b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImage10Metadata.java @@ -268,7 +268,8 @@ class JPEGImage10Metadata extends AbstractMetadata { default: IIOMetadataNode unknown = new IIOMetadataNode("unknown"); unknown.setAttribute("MarkerTag", String.valueOf(segment.marker & 0xFF)); - unknown.setUserObject(((Application) segment).data); + byte[] data = segment instanceof Application ? ((Application) segment).data : ((Unknown) segment).data; + unknown.setUserObject(data); markerSequence.appendChild(unknown); break; diff --git a/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderTest.java b/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderTest.java index ff8588be..b0dd0994 100644 --- a/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderTest.java +++ b/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReaderTest.java @@ -114,7 +114,8 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTestv^yBJZpWvpXc*h-_Pgs ztObsPQ-I_ND_bjokB<*H$2$P<6JP;A`5_PpKa_WZ@=QQPP=IHm!oq?g;-cc>;-X?= z5|T1f5^!m_m>5DHAuTJ1L?R`m6m~1f?UIp0%KZq!_hY4i08CI2CI=UT%l(fHd<{qm z0|@{D!nYUTm*Rs+@qt|c3IO;7c-j6)_&<%09|9E+6cQGJiSiuqk^n#7@7W6oK%qSE zSl)90DkXr}qiZfG?dUDEH$>*}tp}yTD#sf;Wu1oUsz=U;-WGw$A>|cz?c1-WuA!-? zf7HOx$k^h~mR8m_wkLjZc5!t(?e1~G=i((_zspy`!XvI-kBo|rPe@EkzLS!gne}US zPHtX)L0Nf4WfiWv=JC^}XZYvMEv+vI#IEihQg2`X`;iYHN5{q|CaJWU*}3^I3yVvP zwe^kf%uUwT_75&T0P-JLe0J7#SuevWM3%t?S_vQPGjzYfOyOWnoT%d zoRziwB8|{w4IkH0nUb|Lc*97P2R7?Xvrl;ix&>Jr46-ZC&BuILRWD0@^FjTwm+Hq2 zj*xlVDBeG#X?*8}c+bHk^5Hf+ZP9MmOfQ?@oMzbQTI+_(eVz4ht+m;(Mz@elAzi~+PYXI~riLw} zlGD(Bs6?_nL$yGO`%-nxbxnRHuJ7u)s+ffEB?vS<6sdYHz0H|WG`}nxy5yXwAN5kX z#L}1Lc6OL;S886jV4PsUL~7;X5})E4glW}w}5Rh^F>5oE*#Zgde!Odu<#B&gMchZ@Y z2m-USdf4sF7a%YUcLjlOUFdI@Cw=wE@G{@;_^`?7(I!} zL%o4bCOGdg&KX^$8!-^swj-6X+NkcmpF3V-?>2eVEl%H{*S)+MwbzRDA_s~(f8>l= zYt@wk3H;H*#}j83H<=kJ=N^iMT1BVB%@UNS<1y6{3?a4*LVbqCs=Fgw`CfaX7Ztg3 z--ipp2~P<#Y96=)51tzwOoW|bT>TCL6I!&YT3SbZ^m0;t!Xm29817svRC%CCteWG_+!{`P zHyeVv&OXQ>CC6Z?k$8%PS4wG6&S_76Pv4bHoj6yH@GL^Ye;s#*-qTv)XY7TK^*#`N ztw}1ge?g3-Gpaf8vWXw38Px+nF76kj&RD&}RgNq(4I(xt8BhbYDf@R8 zheC=?Pv|V-w^31!ma@Oz%4a)xEi=_mG3)rS^xM-^>J-IwbLS7#Wt6UD)H!K<$PAwX6Z8u!v?a=_WA* zs>rX~OEQCifEa~Q!cCyCAG?D9V{+5awOkX1$ebh%()`ZvNeR2>Ir`PEc!W1ulc^os z(h(T8NO}hADq5V^ErpLkVA?){MxhUafC30CoCJaX$`TMzD(5P6%%C|U9b3*#yluy$ z+&ZsgqHv>O@Hs3C&W4Z!xq6pNWVs?S$D2nsJYOAKjFw5Ck8){Vb%V%neA*uCarusX zT@qg+#WtaTq3zGDiwyfV7QJ%s`D8dYuo-J+Z@V_&H1kw1^w>m3mr+ucU;%%S9Bg-NQc<05I0gf zRJ`2i#4c+BMoJHZ*wQ|{czt-v7Ez=iY4GL|b6+TW*N$f=8aC9pb6~MUBF5j3X%O;y zhuw;>#^>3uq}Nr{sHl|AB231H;*N51+tvNXp6X;>y!^x?e$C->=!56vPv!S(gvJB6 z-xFyX`s%jdu_>pEw0)>fx(n?mRTez4lUS-uPOa9`CcR0=-T`OV>QMSx1#OYK<;E;# zaFV;Qsbjmi+0b|6)XbAT}60a+h>M)7h~?N zG?zA5SNedY9p`X)9F zbt~n%4$#_G)n7WHyQoQ;&b7An=RcV$OqY8lNWZsLS);wW!9;>U*8O1+_)7i?0)I9Q zr=ZZ6(2@(2pO(<@t8*Wp-Ay`hpeue^&Zp$%I*P1jk9xIaI2HY5ykj~ym90OM#K7IH zJC&y$K-SuA{lNaINm}K&hKaKdHNH;`r?{=(s8@OXq+NKF^P%k0l+=(3c1Cq|St=b~ z1ye7(`9~eIo59_UGxp<}We&VHL&Q4`C$?S9h5PyJ>)lGao}N6}vdTJ*!8>rIKVjHN zUg;}6!Bscp(e`GZNh!)Ao^T49)Qcg4fT$?5hBv2f_=CXhd0sOE4yiG2kJ!807$x16_@8fmne_~oyY3mH2zzUlg+g&E0Q{^waIn`4VS`htJ{P8?`;elBbXL^P178TYuR zXIY6WZLwvSii144~E@NbJGg@kc;+@*hzO?XJ)bTX@k*Bbh5HIKESx! zzF|}H*n4Zqw{MRmJKvKOAq7Sm)++O{1{k?#8L{cPH4f9C_Ycv2);Z{#Y1*jf^piAu zFdbO2SsZPf(8Jy-5&ahN1j0)0j7~2vU0UxM6YT0u3BNG(K3A%yzv%YQ_vnX({bkJWIpv$uP!O8c;nKVi zOJdO0X-D&^^50QO%u%*mU)8OKM2bJ2 zIfm1!!7u!~wS*bH00L&iB_Gv50PXXyR^dlu5DYA-9z)w#nUUVMNAO{ptzy-UgeKkW ya|w?=&nws8djG0F)v3#}suiJWc-hK!$BK}u-f*Fg_qh)Ie-}9M*T32S{`waQ)p+v& literal 0 HcmV?d00001