Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.1.0
-
None
Description
The Daffodil TDML Processor uses a global scala object as a cache of compiled schemas.
If you run a large sbt test which tests many many DFDL schemas, you run out of memory because this cache grows by holding onto the compiled parser/unparser representations of all compiled schemas.
This SchemaCache is important to avoid compiling the same schema over and over for each individual test case, but there is no need for a global cache. This cache could be part of the TDML TestSuite object.
This SchemaCache is currently called and used by the Daffodil TDML Processor object, so does not have visibility to the whole TestSuite. If hoisted out to become state of the TestSuite object, then this may have implications for other TDML Processors like the one we use to cross-test against IBM DFDL.