Ad Hoc Filter With All Values Causing Error

When using filters in the Ad Hoc Editor, your browser sends lists of values to the server with a POST operation. If you filter a field with tens or hundreds of thousands of distinct values, and then select all values, your browser will send megabytes of data in the POST operation. Some application servers are configured to reject such large input by default.

For example, if you select 100 000 values in an Ad Hoc filter on a default installation on Tomcat, Tomcat will log an error and redirect the user to the JasperReports Server home page. The Tomcat error log may contain the following entry:

2013-09-30 15:12:33,847 ERROR errorPage_jsp,http-8080-6:559 - stack trace of
exception that redirected to errorPage.jsp
java.lang.NullPointerException

If you apply filters to fields with large numbers of distinct values, make sure your app server is configured to accept large input. The following table shows how to configure Apache Tomcat. For other app servers, refer to your app server's documentation about POST operations.

Configure Apache Tomcat to Accept Large Filter Values

Configuration File

<tomcat>/conf/server.xml

Property

Description

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" 
           URIEncoding="UTF-8"
           maxPostSize="0" />
or         maxPostSize="-1" />

Add the maxPostSize parameter to set the number of bytes accepted by the app server.

For Tomcat 8 and 9, "-1" indicates there is no limit (Tomcat 9 documentation).