From 6451dda5d0ec6f3d5d65f8ed9a84e379aed115e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Brunner?= Date: Tue, 16 Jan 2024 11:10:13 +0100 Subject: [PATCH] Fix table with null values --- .../processor/jasper/TableProcessor.java | 2 +- .../expected_output/requestData-portrait.png | Bin 25639 -> 39619 bytes .../requestData-portrait.json | 10 ++++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/mapfish/print/processor/jasper/TableProcessor.java b/core/src/main/java/org/mapfish/print/processor/jasper/TableProcessor.java index fae7da94fe..97b98a2202 100644 --- a/core/src/main/java/org/mapfish/print/processor/jasper/TableProcessor.java +++ b/core/src/main/java/org/mapfish/print/processor/jasper/TableProcessor.java @@ -291,7 +291,7 @@ public Output execute(final Input values, final ExecutionContext context) throws // check if there are columns with mixed int and bigdecimal values HashSet toCorrect = new HashSet<>(); for (Map.Entry> entry : columns.entrySet()) { - if (entry.getValue().equals(Integer.class)) { + if (entry.getValue() != null && entry.getValue().equals(Integer.class)) { for (Map row : table) { if (row.get(entry.getKey()) instanceof BigDecimal) { toCorrect.add(entry.getKey()); diff --git a/examples/src/test/resources/examples/datasource_dynamic_tables/expected_output/requestData-portrait.png b/examples/src/test/resources/examples/datasource_dynamic_tables/expected_output/requestData-portrait.png index f21e9939eef321d55484f44a2288260fad447316..99033eebd8a361e95e6bdfecf0e918823fd82c99 100644 GIT binary patch delta 20653 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 delta 6563 zcmcgxc~n!^x(~J0YaOViDijE}S1lq6RSSeE+-e;n3W|g%V=V=(NJ0Vu0!a?7*8vgI zB0^<~RuCmjA`pZ?RE8)>P%z91N(hlih#`g$GToi}-g@h`_P%x3dY6CpI_vDL{e5Te z@B0lqEw%5JJT&=fjp_SVe_0HJ!JL0|+6aS%Pv729xesE;Pdg2CG)x;3J!7nTEs}q7 zelMHjv0)>;eI4n>chB~9?QA)bd#rf;=CL)A`+mv2_~h$S`Ch|Up)D$T&(+owGNBdSNuS8h~#Mz`cP1g2@ z+B5m_K_pp|3d-dO$ciq4UM)6sr^Aj&{n8bQndTmeF&0iI{asZfvEFnfr6b=pHpv4% z!7T{ly1gokY)V!+nA!Slma!B*gAq9)rNcBU*XpUdVJy$gcW#!+4#{wx_=O;ETbpAY zKX7exaDB{O8n0J=Ho{YIVR}*3=WXh^CS{*JTLbZBxty_)+AinenvoAvcw2Y~T*3&R zbNN*zyIB`Q;|NQY?UuOU?9E60ux#DzwwUMlCS*RYqAY@vhrwKTZP#gJ>@aID#pCUr zzibW9Wk#K#l!>e>6^T-n$&udqS!obe-5HjBJ;SY(R7T8q3}w~t|K*EoAcl3sKoxY1 z$ADJgeH!2Ncr%3Z(#Vz-E+YrI2;oJ7fFvdrfAk!(6Cvo%(Sa6TRPtar&9lSXv8m>P zaK+XO=ayUe>5@CL>_o3yOmX_@H@&`&JI}4$vOV(gM!G>O&f|oS)8l$jU3AMpnSC`u$StF1^7eS}Y+A&86 z-pUWZTdqk=dqGk0G4Z1m)y%y`rv8}crk-z}%sgC2%W9l%V0dU>x0FL4r{wx&DC#AI z2TN_UPMad@ALqH?&TuTpmaZ#|+rgp}?sPfZhjTKvu;+P|9XIl@fsl`fymcFCW}Gno z^B!l}cB15&gO^JUvTr7%pTwHgz{*f1g-Ius`@TKT7){4$hB)fomeJ41=+}kG({_8T z@L%7Rw_A1|J7*oRLh6Cb4gr`G(t5g6omLOqetSlkxGl3)ARv+K#hK!wf zTrJFSk9S?;>yQJ5#2i5-G!?gi5fIk%xX_TH7J-HtxH5+ zdN~cV*7e&{oU4NGOA1OyYiWu;72QkTY8G)X#Ux^+9v=aAXUn?X7f-BNyJ1K0QCjzs z=)0oq5W(U_f2Z7PR}bUZAru8_XYgc(y_=^sZZ+mdXg3Yc7aeJ_#IX*o7*8amswgT6 zk3kaYI>Yn?Wwb+iQc_ujb=XtkmRCqvR7Vl&QYl6i*p?{M8jXV!+^ zq-Gp~<4nmfubu0tXq*nrb_f|FKd$!^%*S3-UZ)`&)Z1ao;!njiGtv}7E>$C3-WQ7)?kGm0vhtfldF=Q*YVTQ%awDHrBvNK zdem>VcrYw|@WTWi)gAfvC@5n=#;*}ekKi}GHca1MJWlRGr$zn|VsdyZra%xqp)ndAgusr4RC2anps)^c+ zSXh9K&?*Hxw(l-xkx77;&Kx%f>gyym+t; z(vwks=K^a^9C|yQxxxFtruFl$D!nt^2FBXb8m%v_FK+-4QZSo3ysG`~ddgq6aW~w$ zV`n@Tk7d+qmD#MocKFSUca(cIXdHjwUv?Q$mxawc8>(euMjdW7WG%t7bYKF$M}i z(BvG0qo>Xq704@}LKwOs{b4Li-d+t(Y2r2_ryzOyE+1=;3iRfXJWy82Q@2IGra5dn zUO)_(%T|WR139t=(}=Ld2Q_U{Px?X) z9-65;Jb51;zSg`i41#pqP7PEM#03f2o~n^M!3lgK?@X%sEZ!$?Yxr)XxabH;;G;u+ z@EZSVX9r#Xres_6P>lo{HdL&q{1n9Ckb;S>`Z-~zULy+wxZLzWnEo5xjg88w9ljLF z;fQB94@GF_FfkOf<9|%BiQVKY>gi4NFpOoD7su^GtTC}ooI%Fq?kaD#`Mg&R>W~u7ZheN z1uhluhY%iZ;6w23x$X&Ar&8gg4WXI*?=Bt4#RxzvzLpFJOFTejU!TQ?ie-CyN=v5^ zY)L7j6eEX2T6yGFt}uF|R7fr$_SyM*D*ctQ7iSWapW7JbIMoWSd(H>T)_iHRy&{XL zw+h#Jht2yj*;`OH<9!`?Dv+Jo(RG72=Kp$}1yR;lNLn9CCliI#|7O75c%nFE(aMcM zr*7{uR?LtG+}8(mTeQU&-~3(qqGz`9H2VGv_HNON@vR3Fnn;*2TX_=j+OPfidHkL|LUNV)J8zXsDiZ#kKJOy91hiGGbAg0Mr9h1C$^~ zQK%BSRAhK$M0hNk1_+`5Ei3%HDE_CY`+qJ6EdcCGs6 ztKYLLGODj^8)ZHYOy|1BM!ub98+0-w!!jcB9YY#wSjxVj%=M_ACDj9W7%e9)#4y;s z3&!!Mf8bZbU?}t7KSJ+*{U3c>WGRM#CFww8LeLP9iVZUoMrEC$L93HNj*wnK&+}pf zDIo$}A?-Qr>xtG?lyK(3hk=R(vDC=ul`LGkcXX2vJf1>D3`r_TMU-W&_o7 z8Z<&RPr00RGM}vyBuBh{e&2|nqLJ9{EtL5;c0jy;uh(D3gxVQ9ZxBFG9_RPAFnBsV zy5{Nbu3=+99I|hbsmH-tpuGuCcdfnL>*HR2s!>`eN_P?5q%t9(1G2#ns-~)1R(1`$ zym`}TbbeFy!VJ+^nxn(0Mxe^|B?IN%Q|#RdyyxMSi03I2w}H#3BTt3f*mJC6_bU}a zxF)p2-SNx`*{k!hcs5lxWV)y-6L{HppgDq_VuB#Jd;F;!ykJvB1`bGsPSy_o{1Li# z9I_pzY7A|wivxg-gsvbdNeXcZo!T%A!<{hjjfSCa;M=sB9&g9mkq^J=x`1zfan>^X zheb=Wj~9||xW(W9V6A@(3xJ`P*tQzuZwO^2;;(#hYzNUnJDtD|TC*k4KLq9q%qc_T z(uaL>zr3YZ7=2zOH-AuT@w{d8 z|2Chw!uXl-M?ABg`9;Z}io@G4+U-2Me3EeLC~Y-{E8MygSVD=a^JB+X*oMg)UAC1^ zkoSUW4b!(daC=Z^QA8pYI3*EF!L^q)Yp|W3FerfCj-bgk*KKq+8#X>=Lk7v%uJC-v z;QFdlz%26E;c=Cq7)AN9T)Tu(N&*q9Rd++7@T8a52!La9nkkw9aa}!svE`|QfPzA& zfk~dc1&;3s7pa+o+t`|m?+t--!kt%L;G~krAO6fszAxPLM$WMbYpNu_dHFO1 zYkAsTFv`Ew9$uT4;~!*WUzpN7TU&{S7*L1?hU4iQ*?MJVF_52K^pgEo{5%i6P1ShM zAz`h)P9g!)ZyJ~XpsD}pW6Th^cHv64yWkD=AwuMfRNKOvp-xsV*x*5MLY?PVt;;d&O7z=Q6G`#LYXnEOmY|F!Z;S)tr)zXk+0t^M z76)m96g$4=9NYE|DZ z;VcD$yApY)7lGlNSs}DK5>)i5SU#I6tsAbGzv>r!DAkPcs^8*lL{s?&teIm;`_iUs zC7cVk7rMz4+j(-MQ_d&PJnFJdNhGP(*{JspQZ-V>HESp2vrk5~)qoRni2WfE0DNh7D?2K~a?)1R7mdpzGbr{gTpdq{I z09mmuY_l;53wO!{xqob=fu#r}OQSW+ur}Td!iJ-UnAf<%R@YCyiOvM>8Fp`|1F-~_ zvi@Q$47T^d0z5(s5aVBkfEMaQ|0D@$L3jI)Nk9v9&VP*jHZZi1#rBRQpoJ;(cSL?0 z7+Szydsh