<div dir="ltr"><div class="gmail_quote"><div dir="ltr">Dear Undertow devs,<div><br></div><div>I originally posted the below question on the Wildfly forum and was advised to do it here instead.</div><div><br></div><div><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61)">I am using the Undertow EncodingHandler with a Gzip Encoding provider, as follows (sample code taken from an Undertow unit test):</p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt"> </p><div style="padding:1px 0px 0px;border:0px;font-size:12px;font-family:consolas,&quot;courier new&quot;,courier,mono,serif;vertical-align:baseline;background-color:rgb(231,229,220);width:auto;overflow:visible;color:rgb(61,61,61);margin:0px"><div style="margin:0px;padding:0px 0px 0px 45px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><div style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"></div></div><ol start="1" style="padding:0px;border:none;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style-position:initial;background-color:rgb(255,255,255);color:rgb(92,92,92);margin:0px 0px 1px 45px"><li style="border-top:none;border-right:none;border-bottom:none;border-left:3px solid rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;color:inherit;line-height:12pt;min-height:12pt;white-space:nowrap;margin:0px;padding:0px 3px 0px 10px"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:black;background-color:inherit;font-size:9pt"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);background-color:inherit;font-size:9pt">final</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;background-color:inherit;font-size:9pt"> EncodingHandler handler <wbr>=   </span></span></li><li style="border-top:none;border-right:none;border-bottom:none;border-left:3px solid rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;background-color:rgb(246,246,246);line-height:12pt;min-height:12pt;white-space:nowrap;margin:0px;padding:0px 3px 0px 10px"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:black;background-color:inherit;font-size:9pt">    <span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);background-color:inherit;font-size:9pt">new</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;background-color:inherit;font-size:9pt"> EncodingHandler(</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);background-color:inherit;font-size:9pt">new</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;background-color:inherit;font-size:9pt"> <wbr>ContentEncodingRepository()  </span></span></li><li style="border-top:none;border-right:none;border-bottom:none;border-left:3px solid rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;color:inherit;line-height:12pt;min-height:12pt;white-space:nowrap;margin:0px;padding:0px 3px 0px 10px"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:black;background-color:inherit;font-size:9pt">      .addEncodingHandler(<span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:blue;background-color:inherit;font-size:9pt">&quot;<wbr>gzip&quot;</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;background-color:inherit;font-size:9pt">,   </span></span></li><li style="border-top:none;border-right:none;border-bottom:none;border-left:3px solid rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;background-color:rgb(246,246,246);line-height:12pt;min-height:12pt;white-space:nowrap;margin:0px;padding:0px 3px 0px 10px"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:black;background-color:inherit;font-size:9pt">          <span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(0,102,153);background-color:inherit;font-size:9pt">new</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;background-color:inherit;font-size:9pt"> <wbr>GzipEncodingProvider(), </span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:rgb(192,0,0);background-color:inherit;font-size:9pt">50</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;background-color:inherit;font-size:9pt">,  </span></span></li><li style="border-top:none;border-right:none;border-bottom:none;border-left:3px solid rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;color:inherit;line-height:12pt;min-height:12pt;white-space:nowrap;margin:0px;padding:0px 3px 0px 10px"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:black;background-color:inherit;font-size:9pt">          Predicates.parse(<span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:blue;background-color:inherit;font-size:9pt">&quot;<wbr>max-content-size[5]&quot;</span><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;background-color:inherit;font-size:9pt">)))  </span></span></li><li style="border-top:none;border-right:none;border-bottom:none;border-left:3px solid rgb(108,226,108);font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;list-style:decimal-leading-zero outside;background-color:rgb(246,246,246);line-height:12pt;min-height:12pt;white-space:nowrap;margin:0px;padding:0px 3px 0px 10px"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;vertical-align:baseline;color:black;background-color:inherit;font-size:9pt">      .setNext(path);  </span></li></ol></div><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt"> </p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61)">It works fine for very small response bodies, however, when Undertow starts to use the Chunked Transfer-Encoding, the Gzip compression is simply ignored.</p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61)">My question is basically: how to apply a Gzip encoding (or other compression) before Undertow starts chunking the response?</p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt"><br></p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt">Could it be a bug?</p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt"><br></p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61)">Also, and I could not really track it down from the source code, how does Undertow decide to start chunking the response?</p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt"><br></p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt">Thanks in advance!</p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt"><br></p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt">Cheers,</p><p style="margin:0px;padding:0px;border:0px;font-size:14px;font-family:cabin;vertical-align:baseline;color:rgb(61,61,61);min-height:8pt">Antoine</p></div>
</div>
</div><br></div>