← Back to team overview

dhis2-devs team mailing list archive

Re: Integrity check error

 

Hi Calle,

it seems there is an invalid program indicator filter in there which trips
up the check.

Have a look at your program indicator filters e.g. with this API request:

/api/programIndicators.json?fields=id,name,filter&paging=false

and look for anomalies, i.e. a filter with just an "A" or similar.

regards,

Lars




On 6 April 2018 at 11:05, Calle Hedberg <calle.hedberg@xxxxxxxxx> wrote:

> Hi,
>
> I've got one instance where data integrity check under maintenance fails
> at the very end, and never display any result.
>
> The tomcat log - anybody able to say what this means?
>
> * INFO  2018-04-06 10:47:56,136 Checked indicators
> (DefaultDataIntegrityService.java [taskScheduler-17])
> * INFO  2018-04-06 10:47:56,263 Checked periods
> (DefaultDataIntegrityService.java [taskScheduler-17])
> * INFO  2018-04-06 10:48:39,119 Checked organisation units
> (DefaultDataIntegrityService.java [taskScheduler-17])
> * INFO  2018-04-06 10:48:39,342 Checked validation rules
> (DefaultDataIntegrityService.java [taskScheduler-17])
> * INFO  2018-04-06 10:48:50,328 no recipient (SmsMessageSender.java
> [taskScheduler-17])
> * INFO  2018-04-06 10:48:50,329 'system-process' create
> org.hisp.dhis.message.MessageConversation, name: Job
> 'runAsyncDataIntegrity' failed, uid: OVaYcH2nKOd (AuditLogUtil.java
> [taskScheduler-17])
> * ERROR 2018-04-06 10:48:50,337 Job 'runAsyncDataIntegrity' failed
> (DefaultJobInstance.java [taskScheduler-17])
> java.lang.NumberFormatException: For input string: "A"
>         at java.lang.NumberFormatException.forInputString(Unknown Source)
>         at java.lang.Long.parseLong(Unknown Source)
>         at java.lang.Long.parseLong(Unknown Source)
>         at org.apache.commons.jexl2.JexlArithmetic.toLong(
> JexlArithmetic.java:906)
>         at org.apache.commons.jexl2.JexlArithmetic.compare(
> JexlArithmetic.java:718)
>         at org.apache.commons.jexl2.JexlArithmetic.equals(
> JexlArithmetic.java:759)
>         at org.apache.commons.jexl2.Interpreter.visit(Interpreter.
> java:733)
>         at org.apache.commons.jexl2.parser.ASTEQNode.jjtAccept(
> ASTEQNode.java:18)
>         at org.apache.commons.jexl2.Interpreter.interpret(
> Interpreter.java:232)
>         at org.apache.commons.jexl2.ExpressionImpl.evaluate(
> ExpressionImpl.java:65)
>         at org.hisp.dhis.commons.util.ExpressionUtils.evaluate(
> ExpressionUtils.java:109)
>         at org.hisp.dhis.commons.util.ExpressionUtils.evaluate(
> ExpressionUtils.java:90)
>         at org.hisp.dhis.commons.util.ExpressionUtils.isBoolean(
> ExpressionUtils.java:166)
>         at org.hisp.dhis.program.DefaultProgramIndicatorService
> .filterIsValid(DefaultProgramIndicatorService.java:507)
>         at sun.reflect.GeneratedMethodAccessor1351.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>         at java.lang.reflect.Method.invoke(Unknown Source)
>         at org.springframework.aop.support.AopUtils.
> invokeJoinpointUsingReflection(AopUtils.java:333)
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:157)
>         at org.springframework.transaction.interceptor.
> TransactionInterceptor$1.proceedWithInvocation(
> TransactionInterceptor.java:99)
>         at org.springframework.transaction.interceptor.
> TransactionAspectSupport.invokeWithinTransaction(
> TransactionAspectSupport.java:282)
>         at org.springframework.transaction.interceptor.
> TransactionInterceptor.invoke(TransactionInterceptor.java:96)
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:179)
>         at org.springframework.aop.interceptor.
> ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:179)
>         at org.springframework.aop.framework.JdkDynamicAopProxy.
> invoke(JdkDynamicAopProxy.java:213)
>         at com.sun.proxy.$Proxy134.filterIsValid(Unknown Source)
>         at org.hisp.dhis.dataintegrity.DefaultDataIntegrityService.lambda$
> getInvalidProgramIndicatorFilters$8(DefaultDataIntegrityService.java:661)
>         at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
>         at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown
> Source)
>         at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
>         at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown
> Source)
>         at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown
> Source)
>         at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
>         at java.util.stream.ReferencePipeline.collect(Unknown Source)
>         at org.hisp.dhis.dataintegrity.DefaultDataIntegrityService.
> getInvalidProgramIndicatorFilters(DefaultDataIntegrityService.java:662)
>         at org.hisp.dhis.dataintegrity.DefaultDataIntegrityService.
> getDataIntegrityReport(DefaultDataIntegrityService.java:620)
>         at org.hisp.dhis.dataintegrity.DefaultDataIntegrityService.
> getFlattenedDataIntegrityReport(DefaultDataIntegrityService.java:640)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>         at java.lang.reflect.Method.invoke(Unknown Source)
>         at org.springframework.aop.support.AopUtils.
> invokeJoinpointUsingReflection(AopUtils.java:333)
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:157)
>         at org.springframework.transaction.interceptor.
> TransactionInterceptor$1.proceedWithInvocation(
> TransactionInterceptor.java:99)
>         at org.springframework.transaction.interceptor.
> TransactionAspectSupport.invokeWithinTransaction(
> TransactionAspectSupport.java:282)
>         at org.springframework.transaction.interceptor.
> TransactionInterceptor.invoke(TransactionInterceptor.java:96)
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.
> proceed(ReflectiveMethodInvocation.java:179)
>         at org.springframework.aop.framework.JdkDynamicAopProxy.
> invoke(JdkDynamicAopProxy.java:213)
>         at com.sun.proxy.$Proxy135.getFlattenedDataIntegrityReport(Unknown
> Source)
>         at org.hisp.dhis.dataintegrity.jobs.DataIntegrityJob.execute(
> DataIntegrityJob.java:80)
>         at org.hisp.dhis.scheduling.DefaultJobInstance.executeJob(
> DefaultJobInstance.java:145)
>         at org.hisp.dhis.scheduling.DefaultJobInstance.execute(
> DefaultJobInstance.java:59)
>         at org.hisp.dhis.scheduling.DefaultSchedulingManager.lambda$
> internalExecuteJobConfiguration$2(DefaultSchedulingManager.java:237)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Unknown
> Source)
>         at java.util.concurrent.FutureTask.run(Unknown Source)
>         at org.springframework.scheduling.support.
> DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnabl
> e.java:54)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Unknown
> Source)
>         at java.util.concurrent.FutureTask.run(Unknown Source)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$
> ScheduledFutureTask.access$201(Unknown Source)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$
> ScheduledFutureTask.run(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown
> Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
>         at java.lang.Thread.run(Unknown Source)
>
> Regards
> Calle
>
> *******************************************
>
> Calle Hedberg
>
> 46D Alma Road, 7700 Rosebank, SOUTH AFRICA
>
> Tel/fax (home): +27-21-685-6472
>
> Cell: +27-82-853-5352
>
> Iridium SatPhone: +8816-315-19119
>
> Email: calle.hedberg@xxxxxxxxx
>
> Skype: calle_hedberg
>
> *******************************************
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>
>


-- 
Lars Helge Øverland
Technical lead, DHIS 2
University of Oslo
lars@xxxxxxxxx
https://www.dhis2.org

Follow ups

References