dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #51005
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