Jump to content
We've recently updated our Privacy Statement, available here ×

kcd

Members
  • Posts

    54
  • Joined

  • Last visited

 Content Type 

Profiles

Forum

Events

Featured Visualizations

Knowledge Base

Documentation (PDF Downloads)

Blog

Documentation (Test Area)

Documentation

Dr. Jaspersoft Webinar Series

Downloads

Posts posted by kcd

  1. Lame undocumented configuration thing as per http://www.jasperforge.org/plugins/espforum/view.php?group_id=112&forumid=102&topicid=94158

    and http://jasperforge.org/plugins/espforum/view.php?group_id=112&forumid=102&topicid=85833

     


    This is probably because your reports run for "too long" (as little as 3 minutes by default!)

    If you have few, long running reports like I do I suggest you modify js.quartz.base.properties and set 1 thread only with 150 minute timeouts

    \WEB-INF\js.quartz.base.properties
    line 9:org.quartz.jobStore.clusterCheckinInterval = 9000000
    line 11:org.quartz.threadPool.threadCount=1
    line 14:org.quartz.jobStore.misfireThreshold=9000000


  2. This is probably because your reports run for "too long" (as little as 3 minutes by default!)

     

    If you have few, long running reports like I do I suggest you modify js.quartz.base.properties and set 1 thread only with 150 minute timeouts

     

    \WEB-INF\js.quartz.base.properties

    line 9:org.quartz.jobStore.clusterCheckinInterval = 9000000

    line 11:org.quartz.threadPool.threadCount=1

    line 14:org.quartz.jobStore.misfireThreshold=9000000

     

    Read this:

    http://jasperforge.org/plugins/espforum/view.php?group_id=112&forumid=102&topicid=85833

  3.  I am running into a similar problem occassionally with slow queries. The latest time my report ran indefinitely and I had to shut down Tomcat and clear the work and temp directories to save it from itself.

     
    Code:
    2012-05-25 10:35:53,972 ERROR ReportExecutionJob,quartzScheduler_Worker-0:310 - The job was not completed. A system error occurred while running it.java.lang.NullPointerException        at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.ReportExecutionJob.createOutputs(ReportExecutionJob.java:588)        at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.ReportExecutionJob.executeAndSendReport(ReportExecutionJob.java:427)        at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.ReportExecutionJob.execute(ReportExecutionJob.java:233)        at org.quartz.core.JobRunShell.run(JobRunShell.java:195)        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
  4.  Any update on this?

    Code:
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAN13718 tomcat    20   0 5474m 471m  17m S  0.3  4.0   0:41.23 java13718 tomcat    20   0 5538m 636m  17m S 98.0  5.4   0:44.18 java13718 tomcat    20   0 5538m 640m  17m S 62.5  5.4   0:46.06 java13718 tomcat    20   0 5538m 632m  17m S  1.0  5.3   0:46.09 java13718 tomcat    20   0 5538m 626m  17m S  2.3  5.3   0:46.16 java13718 tomcat    20   0 5538m 628m  17m S 25.3  5.3   0:46.92 java13718 tomcat    20   0 5474m 552m  17m S  0.7  4.6   0:46.94 java
  5. This is a validation error. Perhaps either your timezone doesn't match that regex or perhaps that email address Anonymous:null@unknown ... I'm just skim reading it :)

    If you think your inputs are valid here are some helpful links to change the validation.

    http://jasperforge.org/plugins/espforum/view.php?group_id=112&forumid=102&topicid=94962&page=2

    http://jasperforge.org/plugins/espforum/view.php?group_id=102&forumid=103&topicid=94923&topid=95560

    http://gskinner.com/RegExr/

    Code:
    org.owasp.esapi.errors.ValidationException: trigger.timezone-ViewRepository_Schedule_OutputSettings_context: Invalid input. Please conform to regex ^[\p{L}\p{M}\p{Pc}\/]*$ with a maximum length of 100
  6. I'm trying to use Font Extensions default fonts as recommended and export PDFs. I'm not having problems with DejaVu fonts but I am with Serif and Monospaced.

    Firstly when I deployed Jasperserver 4.5.1 I had to deploy Times New Roman for any reports to work (my reports do not use this font it must be required by Serif?).

    Secondly when previewing  PDF's in Ireport on my windows machine all Monospaced fonts came out as the default Helvetica. DejaVu Sans Mono works.

    Shouldn't these default fonts work anywhere anyhow?

    Code:
    I'm not using pdf embedding and my iReport settings arenet.sf.jasperreports.default.font.name		SansSerifnet.sf.jasperreports.default.font.size		10net.sf.jasperreports.default.left.indent	0net.sf.jasperreports.default.line.spacing.size	1net.sf.jasperreports.default.pdf.embedded	falsenet.sf.jasperreports.default.pdf.encoding	Cp1252net.sf.jasperreports.default.pdf.font.name	Helvetica
  7.  Thanks, that does look relevant.

    I also found this which presumably hides the temp directory, changing it had not effect.

            <property name="outputFolderFilterList">
                <list><value><![CDATA[(/organizations/[^/]+)*/temp(/[^/]+)*]]></value></list>
            </property>

    But the CE edition doesn't seem to have that temp folder

     

    The revelant form entry is

    <input id="outputLocation" type="hidden" value="/reports" name="contentRepositoryDestination.folderURI">

    Found in WEB-INF\jsp\modules\reportScheduling\jobOutput.jsp

    <legend class=""><span><spring:message code="report.scheduling.job.edit.output.label.output.location"/></span></legend>
     <spring:bind path="job.contentRepositoryDestination.folderURI">
           <input type="hidden" id="outputLocation" name="${status.expression}" value="${status.value}"/>

    But I cannot find where the default is populated.

    Any ideas?
  8. The default for file location Scheduled or Run in background reports is the currenct directory (/reports). Obviously for many users it is wise to make this a read only folder and therefore the default will not work.

    I first starting looking for how change the default directory to something suitable but couldn't find how. Anyone know?

    I did find reference to a /temp directory which would also mean we don't need to store endless reports just so they can be emailed once. Is this a legacy option or can we have a special temp directory?

    Thanks in advance

     

    Output Location– The folder for saving the report output. This field is required and you must have write permission to the folder. If you email the report and do not want to save it, specify the Temp folder.

    http://help.jaspersoft.com/#../Subsystems/jrs-user-help/Content/JasperReports-Server-User-Guide/schedules/schedules-introduction.htm%3FTocPath%3DWorking%2520with%2520JasperReports%2520Server%7CScheduling%2520Reports%2520and%2520Dashboard%2520Exports%7C_____0

    Output Location

    The job output folder /Temp cannot be found. It might have been deleted or moved.

     

  9. Here is a fix below. Actually Jasperserver should be spliting the email addresses and validating them individually but this will work.

    You might as well fix queries too, also below

     

    Or if you get sick of it, effectively disable a validator like so

    Validator.Email=^.*$

     

    Code:
    # Validator.Email=^[\\p{L}\\p{M}\\p{N}._%'-]+@[\\p{L}\\p{M}\\p{N}.-]+\\.[a-zA-Z]{2,4}$# Allow multiple emailsValidator.Email=^[\\p{L}\\p{M}\\p{N}._%'-]+@[\\p{L}\\p{M}\\p{N}.-]+\\.[a-zA-Z]{2,4}[\\s*,\\s*[\\p{L}\\p{M}\\p{N}._%'-]+@[\\p{L}\\p{M}\\p{N}.-]+\\.[a-zA-Z]{2,4}]*$# Validator.ValidSQL=^\\s*((?i)select)\\s+[^;]+$# Fixed for stored procedures etcValidator.ValidSQL=^\\s*(?i)(with\\s+.*)?(select|call|exec(ute)?)\\s+[^;]+$
  10. I cannot get the "repo:" expression handling to behave with the iReport JRXML validation tool when uploading. Two scenarios in iReport 4.5.1

    Repository Navigation > localhost > Reports > Some report> Main.jrxml (rightclick) > Replace with current

    1 - JRXML validation window for Image says

    • local: "imageslogo.jpg"
    • proposed: "repo:logo.jpg"

    This is ok because it uploads the image. BUT it changes the local file to "repo:logo.jpg" so you can no longer preview it. Why does it change the local image expression?

    ...Or choose linked resource

    2 - JRXML validation window for Linked Resource says

    • local: "imageslogo.jpg"
    • proposed: "repo:/images/logo.jpg"

    This seems good because it doesn't change the local file and you can preview it. BUT it leaves the repository file as "imageslogo.jpg" so you cannot run it on Jasperserver. You'll get the error below.

      

    As far as I can tell both options are broken. Also see http://jasperforge.org/projects/ireport/tracker/view.php?id=5539

    Anyone got this working sensibly?



    Post Edited by kcd at 03/20/2012 22:41
  11. Solution found - there are security configuration options to amend or disable the validation.

    1 - The following regex fix should work for most cases.

    webapps/jasperserver/WEB-INF/classes/esapi/security-config.properties/validation.propertiesValidator.ValidSQL=^s*(?i)(withs+.*)?(select|call|exec(ute)?)s+[^;]+$

    2 - Alternatively turn it off

    webapps/jasperserver/WEB-INF/classes/esapi/security-config.propertiessecurity.validation.sql.on=false



    Post Edited by kcd at 02/14/2012 23:00



    Post Edited by kcd at 02/14/2012 23:01
  12. I haven't looked very closely at your problem but I found the number datatypes can change almost randomly with SQL queries unless you pay particular attention to the formats returned.

     

    When you use BigDecimals you will find java doesn't automatically cast them as it frequently does other types so try explicitly calling toString() if you want a String

     

  13. Hey

    I think I can interpret the problem but not sure where to start for a solution.

    The problem is for all reports having upgrade from 4.2.1 to 4.5.0. The UI says "An error has occurred. Please contact your system administrator. (6632)" and the stack trace is below.

    Key cause appears to be:

     

    Caused by: org.owasp.esapi.errors.ValidationException: SQL_Query_Executor_context: Invalid input. Please conform to regex ^\s*((?i)select)\s+[^;]+$ with a maximum length of 50000

    Because all my queries are in the form

    CALL Up_Reporting_GetSomethingUseful($P{StartDate}, $P{EndDate});

     

    So I think I need to disable org.owasp.esapi query validation but I cannot find any documentation about this sort of configuration. Where do I start?

    Code:
    2012-01-18 15:50:03,354 ERROR ManagementServiceImpl,http-9123-3:1259 - caught Throwable exception: An error has occurred. Please contact your system administrator. (6632)com.jaspersoft.jasperserver.api.JSSecurityException: An error has occurred. Please contact your system administrator. (6632)        at com.jaspersoft.jasperserver.api.security.validators.ValidatorImpl.validateSQL(ValidatorImpl.java:394)        at com.jaspersoft.jasperserver.api.engine.jasperreports.util.JRTimezoneJdbcQueryExecuter.createDatasource(JRTimezoneJdbcQueryExecuter.java:166)        at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:731)        at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:629)        at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1159)        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:802)        at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:118)        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:435)        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:773)        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:731)        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:389)        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.executeReport(EngineServiceImpl.java:890)        at com.jaspersoft.jasperserver.api.engine.jasperreports.domain.impl.ReportUnitRequest.execute(ReportUnitRequest.java:57)        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.execute(EngineServiceImpl.java:320)        at com.jaspersoft.jasperserver.ws.axis2.ManagementServiceImpl.runReport(ManagementServiceImpl.java:1167)        at com.jaspersoft.jasperserver.ws.axis2.ManagementService.runReport(ManagementService.java:240)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)        at java.lang.reflect.Method.invoke(Method.java:616)        at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:399)        at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)        at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)        at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)        at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)        at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)        at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)        at com.jaspersoft.jasperserver.api.metadata.user.service.impl.MetadataAuthenticationProcessingFilter.doFilter(MetadataAuthenticationProcessingFilter.java:139)        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)        at com.jaspersoft.jasperserver.api.metadata.user.service.impl.PasswordExpirationProcessingFilter.doFilter(PasswordExpirationProcessingFilter.java:85)        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)        at org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174)        at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)        at com.jaspersoft.jasperserver.api.metadata.user.service.impl.JIPortletAuthenticationProcessingFilter.doFilter(JIPortletAuthenticationProcessingFilter.java:81)        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)        at com.jaspersoft.jasperserver.api.logging.filter.BasicLoggingFilter.doFilter(BasicLoggingFilter.java:53)        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)        at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)        at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)        at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:411)        at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:188)        at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99)        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)        at com.jaspersoft.jasperserver.war.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:67)        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)        at java.lang.Thread.run(Thread.java:636)Caused by: org.owasp.esapi.errors.ValidationException: SQL_Query_Executor_context: Invalid input. Please conform to regex ^\s*((?i)select)\s+[^;]+$ with a maximum length of 50000        at org.owasp.esapi.reference.validation.StringValidationRule.checkWhitelist(StringValidationRule.java:144)        at org.owasp.esapi.reference.validation.StringValidationRule.checkWhitelist(StringValidationRule.java:160)        at org.owasp.esapi.reference.validation.StringValidationRule.getValid(StringValidationRule.java:284)        at org.owasp.esapi.reference.DefaultValidator.getValidInput(DefaultValidator.java:213)        at org.owasp.esapi.reference.DefaultValidator.getValidInput(DefaultValidator.java:185)        at com.jaspersoft.jasperserver.api.security.validators.ValidatorImpl.validateSQL(ValidatorImpl.java:388)        ... 77 morecom.jaspersoft.jasperserver.api.JSSecurityException: An error has occurred. Please contact your system administrator. (6632)
×
×
  • Create New...