Character N is neither a decimal digit number, decimal point, nor "e" notation exponential mark
-
Hello everyone,
Mango has been giving the error below in ma.log for a long time. We have 56,000 data points in Mango v4.beta12. How can we determine what caused this error? Is there a method where we can get the xid or xids causing the error?ERROR 2021-08-11T00:00:00,574 (com.serotonin.m2m2.util.timeout.TimeoutTask.run:61) - Uncaught Task Exception java.lang.NumberFormatException: Character N is neither a decimal digit number, decimal point, nor "e" notation exponential mark. at java.math.BigDecimal.<init>(BigDecimal.java:518) ~[?:?] at java.math.BigDecimal.<init>(BigDecimal.java:401) ~[?:?] at java.math.BigDecimal.<init>(BigDecimal.java:834) ~[?:?] at com.serotonin.m2m2.modbus.rt.ModbusDataSourceRT.updatePointValue(ModbusDataSourceRT.java:403) ~[modbus-ds-4.0.0-beta.12.jar:?] at com.serotonin.m2m2.modbus.rt.ModbusDataSourceRT.doPoll(ModbusDataSourceRT.java:229) ~[modbus-ds-4.0.0-beta.12.jar:?] at com.serotonin.m2m2.rt.dataSource.PollingDataSource.doPollNoSync(PollingDataSource.java:234) ~[mango-4.0.0-beta.12.jar:?] at com.serotonin.m2m2.rt.dataSource.PollingDataSource.scheduleTimeoutImpl(PollingDataSource.java:189) ~[mango-4.0.0-beta.12.jar:?] at com.serotonin.m2m2.rt.dataSource.PollingDataSource$1.scheduleTimeout(PollingDataSource.java:83) ~[mango-4.0.0-beta.12.jar:?] at com.serotonin.m2m2.util.timeout.TimeoutTask.run(TimeoutTask.java:59) ~[mango-4.0.0-beta.12.jar:?] at com.serotonin.timer.Task.runTask(Task.java:183) ~[mango-4.0.0-beta.12.jar:?] at com.serotonin.timer.TaskWrapper.run(TaskWrapper.java:23) ~[mango-4.0.0-beta.12.jar:?] at com.serotonin.timer.OrderedThreadPoolExecutor$OrderedTaskCollection.run(OrderedThreadPoolExecutor.java:313) ~[mango-4.0.0-beta.12.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?] at java.lang.Thread.run(Thread.java:834) [?:?]
-
@hazel I am pretty confident one of your registers is being read as:
NaN
by Mango.
I have opened a ticket to make this more robust but the current version of Mango does not have a simple way to determine what data point is causing this. You will need to start looking into what registers you are reading for numeric values that have out of range data.