[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jira] [Closed] (DAFFODIL-1935) Debugger/trace broken with new layering

     [ ]

Dave Thompson closed DAFFODIL-1935.

Pulled latest updates from incubator-daffodil repository which included specified commit, 08fd62b23d05ae7c991795b724749e607541db29.

Verified that the specified error no longer occurs by executing parse and unparse tests that includes layers and both parse and unparse were successful.

Rolled daffodil back to commit prior to fix and executed the tests and both parse (with specified error) and unparse tests failed.

> Debugger/trace broken with new layering
> ---------------------------------------
>                 Key: DAFFODIL-1935
>                 URL:
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Debugger
>            Reporter: Steve Lawrence
>            Assignee: Dave Thompson
>            Priority: Major
>             Fix For: 2.2.0
> 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:
> {code}
> 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$$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$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)
> {code}
> 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. 

This message was sent by Atlassian JIRA