Uploaded image for project: 'Daffodil'
  1. Daffodil
  2. DAFFODIL-1935

Debugger/trace broken with new layering

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.2.0
    • Component/s: Debugger
    • Labels:
      None

      Description

      Once a layer is created while parsing, if one tries to display the data via the info data debugger command, the following exception is thrown:

      org.apache.daffodil.exceptions.Abort: Invariant broken. Runtime.scala - Leaked exception: java.lang.IllegalStateException: Must be debugging.
      org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
      org.apache.daffodil.exceptions.Assert$.invariantFailed(Assert.scala:175)
      org.apache.daffodil.processors.DataProcessor.org$apache$daffodil$processors$DataProcessor$$doParse(Runtime.scala:278)
      org.apache.daffodil.processors.DataProcessor$$anonfun$parse$1.apply(Runtime.scala:202)
      	at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
      	at org.apache.daffodil.exceptions.Assert$.invariantFailed(Assert.scala:175)
      	at org.apache.daffodil.processors.DataProcessor.org$apache$daffodil$processors$DataProcessor$$doParse(Runtime.scala:278)
      	at org.apache.daffodil.processors.DataProcessor$$anonfun$parse$1.apply(Runtime.scala:202)
      	at org.apache.daffodil.processors.DataProcessor$$anonfun$parse$1.apply(Runtime.scala:194)
      	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
      	at org.apache.daffodil.ExecutionMode$$anonfun$usingRuntimeMode$1.apply(ExecutionMode.scala:65)
      	at org.apache.daffodil.ExecutionMode$$anonfun$usingRuntimeMode$1.apply(ExecutionMode.scala:65)
      	at org.apache.daffodil.processors.DataProcessor.parse(Runtime.scala:194)
      	at org.apache.daffodil.processors.DataProcessor.parse(Runtime.scala:177)
      	at org.apache.daffodil.Main$$anonfun$73.apply(Main.scala:852)
      	at org.apache.daffodil.Main$$anonfun$73.apply(Main.scala:850)
      	at org.apache.daffodil.util.Timer$.getTimeResult(Timer.scala:76)
      	at org.apache.daffodil.util.Timer$.getResult(Timer.scala:35)
      	at org.apache.daffodil.Main$.run(Main.scala:850)
      	at org.apache.daffodil.Main$.main(Main.scala:1297)
      	at org.apache.daffodil.Main.main(Main.scala)
      

      Perhaps the areDebugging flag isn't carried over when creating a new data input stream.

      Related, we might want to think about what kindof changes would be useful when debugging layers. For example, it might be useful to be able to decide which layer to show, though maybe we just always want to show the active layer.

        Attachments

          Activity

            People

            • Assignee:
              dfthompson Dave Thompson
              Reporter:
              slawrence Steve Lawrence
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: