Data Export throws an exception when trying to process a '-nan' value.

Description

When trying to export data through the WebUI using a command like the following:

curl "http://admin:admin@localhost:8980/opennms/summary/results.htm?filterRule=nodelabel='myserver'&startTime=1332793503&endTime=1332793803&attributeSieve=(ifInOctets%7CifOutOctets)"

An exception like the following is thrown:

2012-03-27 13:49:50,398 WARN [qtp535999362-4949186] ServletHandler: /opennms/summary/results.htm
org.springframework.dao.DataAccessResourceFailureException: Value of line 1 of output from RRD is not a valid floating point number: '-nan'
at org.opennms.netmgt.dao.support.DefaultRrdDao.getPrintValues(DefaultRrdDao.java:129)
at org.opennms.web.svclayer.support.DefaultRrdSummaryService$1.getValues(DefaultRrdSummaryService.java:376)
at org.opennms.web.svclayer.support.DefaultRrdSummaryService$1.addAttributes(DefaultRrdSummaryService.java:362)
at org.opennms.web.svclayer.support.DefaultRrdSummaryService$1.addResource(DefaultRrdSummaryService.java:351)
at org.opennms.web.svclayer.support.DefaultRrdSummaryService$1.addResource(DefaultRrdSummaryService.java:344)
at org.opennms.web.svclayer.support.DefaultRrdSummaryService$1.visitNode(DefaultRrdSummaryService.java:299)
at org.opennms.netmgt.dao.support.JdbcFilterDao.walkMatchingNodes(JdbcFilterDao.java:158)
at org.opennms.web.svclayer.support.DefaultRrdSummaryService.getSummary(DefaultRrdSummaryService.java:284)
at org.opennms.web.svclayer.support.DefaultRrdSummaryService.getSummary(DefaultRrdSummaryService.java:430)
at sun.reflect.GeneratedMethodAccessor523.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)

This is related with support ticket 1169.

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Alejandro Galue March 27, 2012 at 7:55 PM

The problem is related with the following line from DefaultRrdDao:

if ("nan".equals(printLines[i])) {

After changing that line with the following content the problem is gone:

if (printLines[i].endsWith("nan")) {

A JUnit test has been added for this situation.

Fixed on revision 1fe32ebfb5f01df0a6ea8617e55044eaf55d75f0 for 1.10

Fixed

Details

Assignee

Reporter

Labels

Fix versions

Affects versions

Priority

PagerDuty

Created March 27, 2012 at 7:47 PM
Updated January 27, 2017 at 4:21 PM
Resolved March 27, 2012 at 7:55 PM

Flag notifications