Jump to content
We've recently updated our Privacy Statement, available here ×
  • Null Pointer Exception and cast error when scheduling a report using REST_V2 jobs api


    Jim W
    • Features: Reports Version: v7.9.1 Product: JasperReports® Server

    Problem Description:

    Normally, you would create an input control for every parameter so that you can refer to the parameter when running REST_V2 jobs PUT calls.

    On v6.4.2, you were able to run the PUT call without input control defined for each parameter.  However, on v7.9.1, you are getting a null pointer exception and a type cast error.  See attached example PUT bodies.

    2022-01-17T09:38:24,601 ERROR ReportExecutionJob,JasperServerScheduler_Worker-2:327 - The report was not completed. An error occurred while executing it. com.jaspersoft.jasperserver.api.JSException: Error filling report
    Arguments:
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$FillResultListener.reportFillError(EngineServiceImpl.java:1354)
        at net.sf.jasperreports.engine.fill.BaseFillHandle.notifyError(BaseFillHandle.java:228)
        at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:150)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute(EngineServiceImpl.java:974)
        at net.sf.jasperreports.engine.fill.BaseFillHandle.startFill(BaseFillHandle.java:181)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1961)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousReportFiller.fillReport(EngineServiceImpl.java:872)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1872)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runWithDataSource(EngineServiceImpl.java:1177)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:1118)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:996)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$SynchronousExecutor.execute(EngineServiceImpl.java:974)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:680)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.executeReportUnitRequest(EngineServiceImpl.java:2149)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.domain.impl.ReportUnitRequest.execute(ReportUnitRequest.java:75)
        at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.execute(EngineServiceImpl.java:558)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
        at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)
        at com.jaspersoft.ji.license.LicenseCheckAspect.runReport(LicenseCheckAspect.java:107)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
        at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
        at com.sun.proxy.$Proxy141.execute(Unknown Source)
        at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.InternalReportExecutor.runReport(InternalReportExecutor.java:300)
        at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.InternalReportExecutor.runReport(InternalReportExecutor.java:244)
        at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.InternalReportExecutor.runReport(InternalReportExecutor.java:204)
        at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.InternalReportExecutor.executeReport(InternalReportExecutor.java:192)
        at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.InternalReportExecutor.createOutputs(InternalReportExecutor.java:122)
        at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.ReportExecutionJob.executeAndSendReport(ReportExecutionJob.java:477)
        at com.jaspersoft.jasperserver.api.engine.scheduling.quartz.ReportExecutionJob.execute(ReportExecutionJob.java:219)
        at com.jaspersoft.ji.report.options.engine.ReportOptionsExecutionJob.execute(ReportOptionsExecutionJob.java:45)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
    Caused by: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: $P{rp_user_id}
        at net.sf.jasperreports.engine.fill.JREvaluator.handleEvaluationException(JREvaluator.java:294)
        at net.sf.jasperreports.engine.fill.JREvaluator.evaluateEstimated(JREvaluator.java:406)
        at net.sf.jasperreports.engine.fill.JRCalculator.evaluateEstimated(JRCalculator.java:664)
        at net.sf.jasperreports.engine.fill.JRCalculator.estimateVariables(JRCalculator.java:250)
        at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1404)
        at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1378)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1200)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:108)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:621)
        at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:135)
        ... 44 more
    Caused by: java.lang.ClassCastException: Cannot cast [Ljava.lang.String; to java.lang.Integer
        at java.lang.Class.cast(Class.java:3369)
        at net.sf.jasperreports.compilers.JavaDirectExpressionValueFilter.filterValue(JavaDirectExpressionValueFilter.java:47)
        at net.sf.jasperreports.compilers.StandardExpressionEvaluators.filterValue(StandardExpressionEvaluators.java:177)
        at net.sf.jasperreports.compilers.StandardExpressionEvaluators$ParameterEvaluator.defaultEvaluate(StandardExpressionEvaluators.java:236)
        at net.sf.jasperreports.compilers.UniformExpressionEvaluator.evaluateEstimated(UniformExpressionEvaluator.java:49)
        at net.sf.jasperreports.engine.fill.JREvaluator.evaluateEstimated(JREvaluator.java:387)
        ... 52 more

    Solution:

    a) Apply the following patch or later versions:

     hotfix_JRSPro7.9.1_cumulative_20211130_0552.zip 

    b) When executing the PUT call, set both Content Type and Accept to application/job.v1+xml.  

    call1body.txt

    call2body.txt


    User Feedback

    Recommended Comments

    There are no comments to display.



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×
×
  • Create New...