From a41a4fd1187e0c5bf044aebd16bee082e76b3f26 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Thu, 24 Jul 2014 19:34:19 +0000 Subject: [PATCH] Patch from thaichat04 from bug #56194 - HPSF thumbnail format tags are int not unit git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1613256 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/poi/hpsf/Thumbnail.java | 4 ++-- .../extractor/TestHPSFPropertiesExtractor.java | 11 +++++++++++ test-data/hpsf/TestThumbnail.xls | Bin 0 -> 56832 bytes 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 test-data/hpsf/TestThumbnail.xls diff --git a/src/java/org/apache/poi/hpsf/Thumbnail.java b/src/java/org/apache/poi/hpsf/Thumbnail.java index 8d8ba7d209..3ab1106397 100644 --- a/src/java/org/apache/poi/hpsf/Thumbnail.java +++ b/src/java/org/apache/poi/hpsf/Thumbnail.java @@ -202,7 +202,7 @@ public final class Thumbnail { */ public long getClipboardFormatTag() { - long clipboardFormatTag = LittleEndian.getUInt(getThumbnail(), + long clipboardFormatTag = LittleEndian.getInt(getThumbnail(), OFFSET_CFTAG); return clipboardFormatTag; } @@ -234,7 +234,7 @@ public final class Thumbnail { throw new HPSFException("Clipboard Format Tag of Thumbnail must " + "be CFTAG_WINDOWS."); - return LittleEndian.getUInt(getThumbnail(), OFFSET_CF); + return LittleEndian.getInt(getThumbnail(), OFFSET_CF); } diff --git a/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java b/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java index ac5283eeab..22238d75f1 100644 --- a/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java +++ b/src/testcases/org/apache/poi/hpsf/extractor/TestHPSFPropertiesExtractor.java @@ -22,6 +22,7 @@ import java.io.IOException; import junit.framework.TestCase; import org.apache.poi.POIDataSamples; +import org.apache.poi.hpsf.Thumbnail; import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.hssf.extractor.ExcelExtractor; import org.apache.poi.hssf.usermodel.HSSFWorkbook; @@ -120,4 +121,14 @@ public final class TestHPSFPropertiesExtractor extends TestCase { assertTrue(txt.indexOf("PID_REVNUMBER") != -1); assertTrue(txt.indexOf("PID_THUMBNAIL") != -1); } + + public void testThumbnail() throws Exception { + POIFSFileSystem fs = new POIFSFileSystem(_samples.openResourceAsStream("TestThumbnail.xls")); + HSSFWorkbook wb = new HSSFWorkbook(fs); + Thumbnail thumbnail = new Thumbnail(wb.getSummaryInformation().getThumbnail()); + assertEquals(-1, thumbnail.getClipboardFormatTag()); + assertEquals(3, thumbnail.getClipboardFormat()); + assertNotNull(thumbnail.getThumbnailAsWMF()); + wb.close(); + } } diff --git a/test-data/hpsf/TestThumbnail.xls b/test-data/hpsf/TestThumbnail.xls new file mode 100644 index 0000000000000000000000000000000000000000..69cca038e0e1637df5d1c49843353a2e103031b7 GIT binary patch literal 56832 zcmeI53z!whmEY?QGcYqCF@S^+Abc6#h{rHI^<+Q-NxTh6me)vtG=m|_OFY(+;y5EC zWu1p?Z)_uJKPRy_&KmTv*RkW>*hs<2?%LiUBX8`_cH-=Zgpyb*DJ#d4Y{#<6|5x3o zZ{42Tw;5(G-zJ&9Q(bjVoyWgURd-ic_r3GN=@Dl>`=zljy3}@~8{~d-uE`A!_yv{s z7~SGjf9@Ql<-1iDYhe4oC<0B5>d3(j?u%odAM))E71hZvx;pnq_21CmxtEl-xc!WS z?R)oj9o$#EINNfMVS51#Cxz*TLeUk(8|3O;gU}3djjqWxyPF%mxV5vsNRiS}7@?Fh)x_(0aZ5mpw)lFm}>1pgfH`6V0g{^Aw zOhuqltEr1(QeDDqv`W4;h-akFzQeJfQ2*O*hMS+|bgMccQlT4qx-8WrMSaO(d7Zg? zNL_hjC3op?WVx*@SMGkPTUxcvf7e~DC{_q`$#@BU&z4t`stllHg?fv@c=tJtcQC-kc3A(uja{90l?%1HKh)rjgyyuB+cA1V{WSM^bxBGp zv{n+m&K=X}b6aQ6ESA7*oh@uB1`@5aTRn2sZ=Kz-b@qh%CGNP!QK-IkWx2Me6Xlrl zx;MEeH7H8D1}fAKc(IM8OH&X!+*9h-l$mlA-bx4rBO#Ot?rB{WTLlie5GyUN7myWEx-6Y6KUFS^M+ZV!lOKw^aqcFr?%J*$aex>`@ZdnhH0^=3SoJPztze|^vEG=+fc5?&IW+QHd zX?y>n-URm*dc?-$<~8BrB8ndQH}ps-5e{*U5-&E{eU%>ZV)7QT?a)gY^vEC6BPqGi zVjz5@`;(|gN(YIY`QW5E$M9U zxj*9^UoMrh7K<)+f9~4VEWB7eW?UDOTc$@xP{JT05FK0PWsdu%W(rab^=1}BrRda= zXe`wf_}X%3Q47lbd1!_~E)~VZ#3J`?&6Z0}O+WE#%68UBG>h&p+&Bg0_DwfOBQT0w zLK3(s?mueAQZ8e0D-)dRPPvJpV1z?GnuvKI6Y8&a&%3ETC3{$n#cy!m@xv@K6h_ut zPMW!ecEzl+URmKzYg$2vf+RK&p-Xsi7kQUuX2M91axdt9D0R|1<1W**-MP2U6@4D< zP8Q)8jQ^%pRp-}b$Y=4f>iwqd|G&&HFdUODif4lk0Uw87ScUPwnZZAu!T(MMzo{Z0 zZw1aPy62C!QvWt_H0TT-@+o`#Mecw*L`CvLjNhn&-y%L_wjKG^c{|!7dCDHo{t+WO ziXBB)-{i+3i%w0rtcXW;_K%nt$_I7|;ybg0^(NZ8psuyU$$pH##4k)t^F5vgX?_}K ztH)XL+cLs={KkJFYS*Fic9rBuv2S2m>>EyNZ<^oIBIye9g%Q4AdfJKmH|@7Y!&II#<a8EaUkvzJ@+tdmal4Z77Teio?G5`&_KPib9)B#~BoGBHR8<=Pemtj+qh`rB zA-`l~T?cW9?F4*AXA%A<>gruf_n>p+Bf1Csd}MdM&qs9+@ww}EKEJHH;oLvf5};;H z+O(?a{CaP^WAWE>ROm(^-gPVQhEU<;$&<=NbxWqWO*T%t&zw2qwyFM{_^$h;WH2b2 z4@GZJIx1pA4ChXrbGyVpb?%g^pKyQp7jL*zpFZVIJ#o&RJ$u&8-*L{(KXuB@e`3CS zg0zFQ!|mAdggbilsGC1ub)vbQov);7_r&}iDnH?tFJJDqv|Q>2;ZN3q;M}$X$HpVN zfIg}@pB6^lrk!0~hvvaqH7DS-!`ZL9phRXqoTI*vVyy*mPH5JX$Sj2OQhUHz1gCL9 zz*!7u&ccAR1kPsN(IodO3j3v~=-Jk0&vm_Xayv+jnSN~sPQ~h z<(M~E2KTssF7gWZjY6Z6I(kXLz2p8`ai(pK+o#Qk@98>NJh<<0=PL(`uN>NSK-rn% zjsyF4brw6jip$q;ynWNMb;Y&I)~#EyiGA^o^~;xST(@3fEnZu^W&55zUB&$e_H`cK zb*QU&uX#3uK4)5-bQdjYgefMlXuy@}O z=YCl1+FRVSXSj1K_HW;HP;L%H9L@3*6!-4iv*)nfZ9jZ}vAyVBA3Ue!>qhs)Xs0D? zr?QS=zZlJ!Q%wCD2P=-xU0)4yDM z&xWO2J%6U>U+woF_WN$h*fvGy0*4=wm*zc!G`s3d``_ucce{ShC zmDf)F#J4-!zrA$2%FT}~|Llh8pIbU3D6e&!1!RTW;5NDSZk-0eCU?j^poQ|o?x3if z)RqOF+vS(gyF7Qg`1|y*VV9P9i$YMS-(UY@_dA8*|G0Zdoz8H-KXgH3r&>8gOZc>Q zXF)`aR7PRhU);c1HPw0S$+>8J6O>_j!`mPK|LK+}q)mk#alpVmqaAL_da+j_hz9!p=?J4lkWt zm>sTN*tyx;xvUp~P%l-VWDd?A+$HP4_iqB(Qzp=B*+u?+`aT+m%wc4wV}rLd;ezcj z@0sY_$;i&T0y|NUmB!(Ge_zSHC7<@>bEW%%yV*Uh3GHspu{UZqakJa3S2k|#^@lln zQFzjGvxyaWtrd8aD)1&(;7zH(n_7W4tpaa)1>TGbyqOhvS6AT8s=%9Ffj6fDZ*B!% zTRG3)mk%k$_gRT{7Kp~jip=C^S61v%^@Co$gH@&!qFVQ#ul(w@iY&HztjXZ8i#;XDJL_j){Y zF4zv|Ch$ad=E}}hWuJvE@53GP63sF>C-wFd-5+z_TjcL+=gB`aZ7n(JzL|61V$W~) zeAbWPbN*Z6`SU%WwV@yAiu*||2z{`ScRjn_uNB-_H`0B@FD`aS+qTcRdfh2DD+0sa zpb;YEPz%Z`)&Dm=Tw-aHbfs#zc`mrW(JiSH$ZCt%(E^#d7@@}`7qVzwaQTbYEWo;{ z%Pv<7v<|jm`}@0!Q#XWb*sL9D+W_=J+=vL+nWdJGEnho~*ZvfWcd6kj zk9IzGQIU>h>wT0K>(SBQnkYq$VE?x)N_XjT+CY@t;Pm67@+0nu*69bLlozGrdK^3u zrMxJe){~EcDCI@zEj_Rwh*DmZ#%bCx5T(2*Ez?^Z15wJ0();zyWFSg;QF`>+fhcKi zlrvxYvc7CIFqZP7^dmi29*9z2l+Nijw}B|-MQMs|zW@J@Qt1}^;+KA-ceok~EH0IA ztX`aXark(iHvhfLo0W zceiVI-Fsl)!F@Xp6<6GUZ`W?uA)fofw}0|K?)yf;m!IleaE<;(OMvyeV4EDY#$0N}ab> zbnYh_yFb|)MT6Gcc1+?kA{EbiW|m%Ek(c6%wJVWEXS9s)(p9*1D-zqpUnJfC9#*LQ z#@FiI{txrAPZU+EuZ+vQw9G4dM4L#{3zUiOL?wEsRS6zHPEm;m7T<8?Y$g->2z^(w zmnBQjp{r*3bX3Td!GugmQ?3Oz)_X&2&{^210~=Ie3h&6}IE@u}G;!iE{{a7B=d@Mh+gMYlZEEe1zDbv#?PIHgfP7T`O#-cB>>Kc7QWuEq6qoD7H9ptG=12NrVu`Mj3cnBRohpetb$6u&XIWCI(rwZz69gkfVo z30(;rSg1P|%Y-!L{_fM;WD~oF4Vw9QC2S^34o0I5V}E1&sC|fw%1bFptG=**XC+4Eq5-w8^IL#i_Gvp6MFhmo}TfG&X1(Blyc2Bh(>FPJe`SU;D$bVbkKy zy36^*J!^f&a9Z1lJGjkPI_}ijSTo&P#og>0HuGBvo5_+BXQRQ`UvbxX?>66z{f$cd z<)A_N&+On(neF2^jxM$xZspP0 zL-%kJeEj%d`L#;w7reXBRuqj4$LgKZUGPSvpKgQwzACo++J?chF$qK3=nvLTIj7xp zQTvG$-7 zo(HiNj(KR4O&^ccajqw)4MtP$%XzT3@tr1r#24J@_)?b_-*(BIZ+tBl>A1lU;|6WA z>A1lsZscGy`eMiJTKOh!c0Ur1OX~9CHeWJ*joT902;&Bw6*uaL8#&mFzSwc&SS4=n zi*bZ;qb@IQ3nbImxUH6rFmBLUaifm7k%P_XiygOZ@=e_KDd9Ve+qRfj?L4?pGJTEP z-LetJ4LU1s)Dbsw@EU!w<90y4iQ7XljxcW2fu~yBXm4NRcAsp7af8l^8+F8u9Bf8k z?6^H5-^A^cF^({9)aAvE=U9D>+rzRE#tk|vZqyMsazH7;cP8avh^!`MM*#f~~+XX}?nU+ma@R~U%h8KrdWsLPMtyncz@3-T4l4mvA# z)Db&!FdKcbWB0Or6T6?qIP7?398s4ayY_yG-C6kxV+WlTJL-rXIq@?3V#n_1@=fdp z%Q3#g*in}syZQYRySL>lj2(1V?5HDlj=KEVE$ElnHObc^ z`EOBTeG57(cGM9&a{c)nn)1b17qDx^RdPt|X2dwc*in}syM_G{yYccB#tu3wcGM9o za{c-IV#aQ>e9lqAw_)};;x#L)gIDc3yG->>N@J9`rdM0DvRKd`wiZPmVt^i@WU@N% zcH_TO$z;>I=rdj~#+V~+JC*RcUkSgIZOmC6ylQbjZB^{o`VKlPZYE0(UZXE| z-2NcO{A7$HjGNWv#qB2P_9bo~i!oT-ptIs;vgE|g=!+dU=4|-mE*{B_UDcf;sb?~Ykrz=$7m$7t<*9E&STHK(s;%2hs;58bI7c*{m$ss;> z#5gG1c(Xcq)#7%G>YJ4=G;XWq03Q}N=&ZPzEIDy98vTnIw@2j=pP!0xP`0>P9lUCB zyH)jlIZhvx1AJKAptIs;vgE|cX!QFUH=Fm!RJWBcQMpx&VM>}`CExe3`Udf>T(2_o z$XK>)98D0PamDpwX#5yHaDnf%a_~ZfkLO{1!578=+t}p3 z1Rv0>2_01Giw}!|^_TzUZrKd`%VI!0EC$FKK5&7D7=X`caP}47M%mz<1$@75gGpt! z;CX+suh08=;yzk78Ox0OK}vG#&jUQOG+*0P_S?9jAL@+XV|ZNeCTw{2Rj*5#cNTtl z;#K#p_?-o}@KtwA?<@?JVlCV7&TIVK=s$Gd(z^(6eB_rO*g5vi4{(gzI}1xkG!N#T z1?s`~bo|Z&{Pa5u#M@%ewfCo~*az>6^h@kHKVGUt-0PIsz`)ouU)xmnn_|Dry86r{=!u9#@&;cEg@m-TmJm<m-e_imP za*O@dBb)yvv48w8M>+6)P&x05z)#1Xc-!&UpmK7|sch#?x`VMw8yTnEOCD4DJ*90* zZ!7InqRy^=RySNcj@@u$oUrW{bA|3kx9eXm9Mq>v|CZr^D=Ocs{T}~czPUEiHzfMY z%9eBdkV2ZVPXgyQrGKV$Ktq$8+II+{FA2(a996#pI?4J@3`~OubZQtt7 z$Nm!OSF-=B*#0m9PusV;^Ra(T1^d2jvI~CZ&1w5>ah%)v5zMz_^`UXxZuN{+lT#nr~Gh)J)%TxKB*M8 z!Rk1FWVIoROX+zIxXte4Dr5KaN@=^)<=ZW-*N1j_HizBxb35=-mv6VU9vj-_UKqR2 zE2Z&Lmv47ba*T#{zZ=^w_h%LCQkQ49J$Mcm;^lb&aY#QaAin4G ztbm`&WDMIlw(-!cpkg<@j*eaG^6^&gH`bA{n_gqa?)j`Sx9iTr@J^A=FePX!tJrPj zy!n2p7tYOfDJZ+{*nFS$K5R4Jr+k?b{=@mZs{Hxjb1LjqnkAaK;WFjQl5>vLaSqHn zUQeoSv#vq+=*Z{a10B>=?Xb>fuXySeU2}ISmJxME^*coE6R%U{PU#fga{Zg3jr#G% zP4d4^^je><(^YO$QZBkXB(+>M8zr+|K4}l_BH6X8Aub!gQXMfwj%#>Y4?gwOp$i@6 z&AQ>^U4iDZ-xZLMHqM#6C&0#U1YjF|=1g4A!JAIhkEp;$F3m?4KDMwK+JZMl39RAV zMC5sovrzAR$JyO-@KL1?D^(k3_p5%b()*SEkL)u- zcB-Cp2K`CD9tr3bDkImIds)MQovBLWW1Gs#Hp7k_F=m|wJdC$R0S!)*)!6A~?9c|2 zC4VTO6)yi<3w>#W`M6cK7?Zatv7TTwn6Fdn4r~SucAK+Q3 z1n&NBKYqgYLua+$WXWm2(f!eWi+8$jo|K=kZ@wHKYp{?PaU%4wBKkIYc@}7lJP~d-=ajk$BNGC8)T7T4Tl_Be|^Rl_6`1N zH@}%+cxu@LfdrdY&Y|vTQOqLvMM%M}(=fV&hbQU&~ zB?p_)D%K=!yq^$agU-TcvgBYhTE&`Rdq9RmY|vTQOqLvMMyps8Y^>pj*r2npnJhWj zj8?JF*w)BKr_w4V*2u7ZS3qwQ&2_22kGGG><`E@3hdwDk(3Q@iCJQ!XjAm@>uO`@z zrm#V0VWSRg^H;DT+n?C#^*m_0 z><&|EQZgKRK3Mhr+D6HS?{M*K4I6CsjD4KSBbAN|^UR=){b3tFY-W3!%6ZTCE|Uxx zA(9Fus+rAu}Ux17(Wn z^anP^P^;__TgK|8%84}_v7{^+H>l9)pY;zV(9v51bu$ac3k{;05?-NBCcJ!o;S!(M z73%zZ0~0(ot#Ho&UxPG-l}NW_53eQpEQwi)gJR}J*Mo+CoeA}h5OsHVtArKqeU=Y;v8Kh%XL>Jx~p<@ku2A}E783xM;FO*-TjH~{v2H-%XN<= zx<_(!ku29en&=+Q(M7Uc_jsavJVzJFa@`Y&?ui^-B+GSAC%UI|bdfCAeJRm>DMuH{ za^1HQ-M4adku2A3)F_X}b7P_Uct)~ZcU+=7E=L#1a$SzD$nTsST_nqOMupx zSLql$RzR{`x1g26$nQv%vUJfyGOhd3ME9dPx>j%Jje=Hj%jG(eJ#;_El1bt zOSyRz3|#%{Mqs7<=PUV9;H(C<0tx; z&|Jx^o&2wB8xuB8dyeB4Ng)}vEPWMBBebhy$xC>&R7Y6pXt68j2wl;#Mh^(N;#ou$ zLT!<{I=}CuI;;xsE|i?2FE>v05L20zNM~C@nq)Q-aJa* zQpD`MXNCm*7)e{tF_%Fr9XG2l#ciZ)S?^@Go&Q#DlHnYRkynmxT8ys!JkXU;Oi55o zsnP?WFv;pDu8mR5?-hzA35q2-C`__CiZwBc1-(MCIzh2I2Zc#iN3ktNv9MPt?oLqL zorA(8tD`s&qgd1{6!#@4?#n@8lGRZ>5~En$D-;hWC?3v1VUpERJRYN1(km2?B`6-t zL1B{BQ9Ko+xTaSqo=i|YnS;V4vrshqv)OYxpK?nxuWg7*oQb0AQswhm>5TDgg5%j7 z941*E$9E0Kyx!q>A;IxN4i1y7j^ky+(cU{8XA>M}b8whsbsRr89P@jJc8xnrd}K^%-W)>{D>;^w`hhFN#>#0=}|22C5lxEidC6?5}}AB^HBVOM{!dx zQG6^x@v$5fkz^iD4a%`zKz;T6t5>JUe7@hN#>!L>rt$H zCR&3#zjJv(?{?Ve9G`h76pf2WG7rUF9>p!sH2c<_FN)O(iq$zNBFQ`yk9rih_OeGF zOi(tlCZzL7DGW}m-N zD4hkPmErIn_*&^7m44dpL9J4p4(vw1;t;j7DYk1Phq|8nAC>;9!g%5TRo(0Hy`KH% zfh(Thyxb|%7^MZbF{m?`GCHCK1ijuS&O~Ikc59K=JWkk^i2L&G5?yFA6>Z) z=MVA46_>Byc>AVh>xyfaty{NZ6Z_&F>z6OvxNg0kTn*EQ5zydA zK}a#$8k4#PeT%J8vJG)U<5G>ZOOj86-p?yhR&Ee)xFn;R;c;YaL|2cLNu5umKCGks z?h29Od0~6=`}I9Y&MiNTkA`8w(Wp&4`;<%*i|EZOE}v`TjYfnu?iHO z)vBFq>+}uZ566*8uNq-7vS(|0cPp;Z6`Kf0bvo$M6!>3{l zr8~Wc6JMXI;)_*1B+GF=maKyxOV+u2;zSq8o_JR3TV3h(@y8N8#}a>8Hq&^XOz?a? zv0GUe$x3)ide#?DCV0M{g9pj-_&l57`A!ZVBrD-5=^3796FlEZ{8ervlI3__NbtOv zg9phAW)2=CE8!{W8J@EVo;MSJmGK~1j_2(J&ya$R z%gVY)R>D)#Gdyo6c!m_rUzSa)H{B+oh|U9JbMPQp2~SC{WYf+qV{`B{CH1B|KEX3P z2M>~!@RamQHVx10#9!t3j8E!KcW#2GtqLBVDr|#4KoN4uj`C+~7Y<}%ITb8cXmvrqpTwB4Ovt{X8eM#4z!?hLcIa`*l)t7Yb zIb2)8p0j1?T75~^p2M{jvY*36u{u`hIcByMw)D7W9nl+JQ4Ejh{mrOfd*acmjP7r2 z4Z`poO>~du=ptD@W{xMi$8&U%EZ04e=$^>YMY3G?bfSAYM;FO*-Io&GmvVHGEZ2Q2 z(S0jN7s+zn#)9=xW1)Hh^~AO!R)*8 z+exK+hw@oy-|R3iw0m>PHcRX|+boX&lF`w@+iOu>rK2Ny8!k(i_sX(#XZkx$tB;~* zD;jw3|Lr%ri*JaQHOh>0$6NRP=fD5yIpbPB@mQm~de$$$&?a7|DtP8j{jEw@C~Z*U zmul`*;*GX#O8jo$PNmUG`<1wJzF&#+&|)bw;eT0S;12zr<|ePNVrD);hOte*ZQ9w@ zbtw9WBfc2@u9GiD{|>?zqhDq6#ps93d@=e>C0}G&AT}2Ll9lIP^i(__io+i>W=o_?Yr+iyxT{D77lC!5g3TTKm-ON zFc5)(2nK|?1O_575P|-WfWOa|S?l-iZ%D=ko3sKht_7Aq}L;)(LL zO4lh}uXKabjY>1L%BO8j!nElR9!+@`cjX|>WCrL{`yl-4V4PUy=Z!1y%YbEmj+BWKUl=tcPm5XZmUgZbe1M+nK+i0yG8J0S!6&u+*chc{DD5Fxa z2fvZ;k@o{?-8~)$t?b=4Qr|Ez|K#VZ{V)SSTZ4M;u>X$-+kM+_QxtZ1OncNf{OU_@pHcZi!%50??yHoH0t)L_rbug5+CX%o+TI1{!U!SOHKa=0jb)@ literal 0 HcmV?d00001 -- 2.39.5