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

Resource Graph properties throws exception if label starts with a number

    XMLWordPrintable

    Details

    • Sprint:
      Horizon 2020 - July 8, Horizon 2020 - July 22, Horizon 2020 - August 5
    • HB Backlog Status:
      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

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

                Dates

                Created:
                Updated:
                Resolved:
                HB Grooming Date:

                  Git Integration