Uploaded image for project: 'OpenNMS'
  1. OpenNMS
  2. NMS-12793

Resource Graph properties throws exception if label starts with a number

    XMLWordPrintable

Details

    • Horizon 2020 - July 8, Horizon 2020 - July 22, Horizon 2020 - August 5
    • Backlog

    Description

      Hi,

      With the 2019.1.5 version, we are having problems with some of our graphs where we draw graphs that are including multiple nodes in a single graph. To define unique labels from different nodes, we are using the foreign ids. Here is an example:

      DEF:8C32095E_A731_435C_9FBF_F3AF9F005FFB_bwSNMPProcessMetricsGCPauseTimeAvgLastInt_rawdef={rrd1}:bwSNMPProcessMetric:AVERAGE \

       

      What we have observed is that whenever we are dealing with a node whose foreign id starts with a number instead of a letter, we get the following exception:

      Caused by: org.apache.commons.jexl2.JexlException$Parsing: C32095E_A731_435C_9FBF_F3AF9F005FFB_bwSNMPProcessMetricsGCPauseTimeAvgLastInt_rawdef@1:2 parsing error near '... Ambiguous st ...'

              at org.apache.commons.jexl2.parser.JexlParser.jjtreeCloseNodeScope(JexlParser.java:126) ~[commons-jexl-2.1.1.jar:2.1.1]

              at org.apache.commons.jexl2.parser.Parser.ExpressionStatement(Parser.java:274) ~[commons-jexl-2.1.1.jar:2.1.1]

              at org.apache.commons.jexl2.parser.Parser.Statement(Parser.java:140) ~[commons-jexl-2.1.1.jar:2.1.1]

              at org.apache.commons.jexl2.parser.Parser.JexlScript(Parser.java:72) ~[commons-jexl-2.1.1.jar:2.1.1]

              at org.apache.commons.jexl2.parser.Parser.parse(Parser.java:24) ~[commons-jexl-2.1.1.jar:2.1.1]

              at org.apache.commons.jexl2.JexlEngine.parse(JexlEngine.java:1248) ~[commons-jexl-2.1.1.jar:2.1.1]

              at org.apache.commons.jexl2.JexlEngine.createExpression(JexlEngine.java:435) ~[commons-jexl-2.1.1.jar:2.1.1]

              at org.apache.commons.jexl2.JexlEngine.createExpression(JexlEngine.java:419) ~[commons-jexl-2.1.1.jar:2.1.1]

              at org.opennms.netmgt.measurements.impl.JEXLExpressionEngine.applyExpressions(JEXLExpressionEngine.java:111) ~[org.opennms.features.measurements.impl-25.0.0-SNAPSHOT.jar:?]

       

      Note that dashes in the label don’t seem to be accepted either.

       

      For example this works:

      DEF:BE4F9D54_3083_4F45_8418_7392265FA840_bwSNMPProcessMetricsGCPauseTimeAvgLastInt_rawdef={rrd1}:bwSNMPProcessMetric:AVERAGE \

       

      Were you aware of this restriction? Is that intentional? If not, then could you please fix it? Otherwise, please advise how to handle this problem.

       

      Thanks

      Attachments

        Issue Links

          Activity

            People

              patrick.schweizer Patrick Schweizer
              gbuyukba Gulen Buyukbayram
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: