That was exactly the problem.  That's what we get for trying to use the latest! 
 Thanks for the quick response, Steve!

Lara

-----Original Message-----
From: Steve Lawrence <slawre...@apache.org> 
Sent: Wednesday, August 2, 2023 7:19 AM
To: users@daffodil.apache.org
Subject: Re: schema compilation exception in 3.5.0

I actually just ran into this backtrace myself.

The cause is due to changes made in scala-xml 2.2.0, which based on the 
backtrace looks like is what you are using. We have a pull request to upgrade 
scala-xml to 2.2.0 in Daffodil and fix this, but it is still waiting on another 
review:

   
https://usg02.safelinks.protection.office365.us/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fdaffodil%2Fpull%2F1060&data=05%7C01%7Clara.blatchford%40nteligen.com%7Cf30b2c44436c4ce32e6008db934a3f9c%7C379c214c5c944e86a6062d047675f02a%7C0%7C0%7C638265719343645744%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=HPEkmYqX5vDj7I1NLMrAKNAjN0R3pvlh6Mj%2FCKMjqro%3D&reserved=0

However, that should not affect Daffodil 3.5.0 since it still depends on 
scala-xml 2.1.0, which does not have this problem as far as I know. Have you 
manually upgraded to 2.2.0 yourself? I think downgrading scala-xml should fix 
this for you.

- Steve

On 2023-08-01 05:16 PM, Lara Blatchford wrote:
> Hello - In attempting to upgrade from Daffodil 3.3.0 to 3.5.0 I'm 
> running into the issue that compilation of any DFDL schema causes the 
> exception below.  What could cause this?
> 
> Example code:
> 
>    public void compile( String schema ) throws IOException
> 
>    {
> 
>      Compiler compiler = Daffodil.compiler( );
> 
>      ProcessorFactory pf = compiler.compileFile( new File( schema ) );
> 
>      if ( pf.isError( ) )
> 
>      {
> 
>        System.err.println( "Failed to load schema: " + schema + ", " + 
> asString( pf.getDiagnostics( ) ) );
> 
>      }
> 
> }
> 
> Exception:
> 
> java.util.NoSuchElementException: None.get
> 
>          at scala.None$.get(Option.scala:529)
> 
>          at scala.None$.get(Option.scala:527)
> 
>          at
> scala.xml.parsing.FactoryAdapter.liftedTree1$1(FactoryAdapter.scala:22
> 5)
> 
>          at
> scala.xml.parsing.FactoryAdapter.endDocument(FactoryAdapter.scala:224)
> 
>          at
> org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown 
> Source)
> 
>          at
> org.apache.xerces.impl.xs.XMLSchemaValidator.endDocument(Unknown 
> Source)
> 
>          at
> org.apache.xerces.impl.xs.XMLSchemaValidator.endDocument(Unknown 
> Source)
> 
>          at
> org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown 
> Source)
> 
>          at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown
> Source)
> 
>          at org.apache.xerces.impl.XMLEntityScanner.load(Unknown 
> Source)
> 
>          at org.apache.xerces.impl.XMLEntityScanner.skipSpaces(Unknown
> Source)
> 
>          at
> org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.d
> ispatch(Unknown Source)
> 
>          at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unk
> nown Source)
> 
>          at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> Source)
> 
>          at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> Source)
> 
>          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> 
>          at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> Source)
> 
>          at
> org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
> Source)
> 
>          at
> org.apache.daffodil.lib.xml.DaffodilXMLLoader.$anonfun$load$1(Daffodil
> XMLLoader.scala:691)
> 
>          at
> org.apache.daffodil.lib.xml.DaffodilXMLLoader.$anonfun$load$1$adapted(
> DaffodilXMLLoader.scala:671)
> 
>          at scala.Option.foreach(Option.scala:407)
> 
>          at
> org.apache.daffodil.lib.xml.DaffodilXMLLoader.load(DaffodilXMLLoader.s
> cala:671)
> 
>          at
> org.apache.daffodil.lib.xml.DaffodilXMLLoader.load(DaffodilXMLLoader.s
> cala:647)
> 
>          at
> org.apache.daffodil.lib.xml.DaffodilXMLLoader.validateAsDFDLSchema(Daf
> fodilXMLLoader.scala:529)
> 
>          at
> org.apache.daffodil.core.dsom.DFDLSchemaFile.$anonfun$iiXMLSchemaDocum
> ent$1(DFDLSchemaFile.scala:197)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG
> .scala:693)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompu
> te(OOLAG.scala:691)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.sc
> ala:688)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.
> scala:739)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
> 
>          at
> org.apache.daffodil.core.dsom.DFDLSchemaFile.iiXMLSchemaDocument$lzyco
> mpute(DFDLSchemaFile.scala:189)
> 
>          at
> org.apache.daffodil.core.dsom.DFDLSchemaFile.iiXMLSchemaDocument(DFDLS
> chemaFile.scala:189)
> 
>          at
> org.apache.daffodil.core.dsom.Import.$anonfun$mapPair$3(Import.scala:6
> 7)
> 
>          at scala.Option.getOrElse(Option.scala:189)
> 
>          at
> org.apache.daffodil.core.dsom.Import.$anonfun$mapPair$1(Import.scala:4
> 6)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG
> .scala:693)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompu
> te(OOLAG.scala:691)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.sc
> ala:688)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.
> scala:739)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
> 
>          at
> org.apache.daffodil.core.dsom.Import.mapPair$lzycompute(Import.scala:4
> 4)
> 
>          at 
> org.apache.daffodil.core.dsom.Import.mapPair(Import.scala:44)
> 
>          at
> org.apache.daffodil.core.dsom.IIBase.$anonfun$notSeenThisBefore$1(IIBa
> se.scala:149)
> 
>          at
> scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:23)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG
> .scala:693)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompu
> te(OOLAG.scala:691)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.sc
> ala:688)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.
> scala:739)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
> 
>          at
> org.apache.daffodil.core.dsom.IIBase.notSeenThisBefore$lzycompute(IIBa
> se.scala:148)
> 
>          at
> org.apache.daffodil.core.dsom.IIBase.notSeenThisBefore(IIBase.scala:14
> 8)
> 
>          at
> org.apache.daffodil.core.dsom.IIBase.$anonfun$iiSchemaFileMaybe$1(IIBa
> se.scala:278)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG
> .scala:693)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompu
> te(OOLAG.scala:691)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.sc
> ala:688)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.
> scala:739)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
> 
>          at
> org.apache.daffodil.core.dsom.IIBase.iiSchemaFileMaybe$lzycompute(IIBa
> se.scala:277)
> 
>          at
> org.apache.daffodil.core.dsom.IIBase.iiSchemaFileMaybe(IIBase.scala:27
> 7)
> 
>          at
> org.apache.daffodil.core.dsom.IIBase.$anonfun$seenAfter$1(IIBase.scala
> :178)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG
> .scala:693)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompu
> te(OOLAG.scala:691)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.sc
> ala:688)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.
> scala:739)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
> 
>          at
> org.apache.daffodil.core.dsom.IIBase.seenAfter$lzycompute(IIBase.scala
> :177)
> 
>          at 
> org.apache.daffodil.core.dsom.IIBase.seenAfter(IIBase.scala:177)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.$anonfu
> n$getImportsOrIncludes$1(SchemaDocIncludesAndImportsMixin.scala:170)
> 
>          at
> scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:
> 196)
> 
>          at
> scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:
> 194)
> 
>          at scala.collection.Iterator.foreach(Iterator.scala:943)
> 
>          at scala.collection.Iterator.foreach$(Iterator.scala:943)
> 
>          at 
> scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
> 
>          at 
> scala.collection.IterableLike.foreach(IterableLike.scala:74)
> 
>          at 
> scala.collection.IterableLike.foreach$(IterableLike.scala:73)
> 
>          at 
> scala.collection.AbstractIterable.foreach(Iterable.scala:56)
> 
>          at
> scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:199)
> 
>          at
> scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:192)
> 
>          at
> scala.collection.AbstractTraversable.foldLeft(Traversable.scala:108)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.getImpo
> rtsOrIncludes(SchemaDocIncludesAndImportsMixin.scala:167)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.getImpo
> rtsOrIncludes$(SchemaDocIncludesAndImportsMixin.scala:162)
> 
>          at
> org.apache.daffodil.core.dsom.XMLSchemaDocument.getImportsOrIncludes(S
> chemaDocument.scala:68)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.$anonfu
> n$ismli_$1(SchemaDocIncludesAndImportsMixin.scala:181)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG
> .scala:693)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompu
> te(OOLAG.scala:691)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.sc
> ala:688)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.
> scala:739)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.org$apa
> che$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$ismli_(Schema
> DocIncludesAndImportsMixin.scala:180)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.org$apa
> che$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$ismli_$(Schem
> aDocIncludesAndImportsMixin.scala:180)
> 
>          at
> org.apache.daffodil.core.dsom.XMLSchemaDocument.org$apache$daffodil$co
> re$dsom$SchemaDocIncludesAndImportsMixin$$ismli_$lzycompute(SchemaDocu
> ment.scala:68)
> 
>          at
> org.apache.daffodil.core.dsom.XMLSchemaDocument.org$apache$daffodil$co
> re$dsom$SchemaDocIncludesAndImportsMixin$$ismli_(SchemaDocument.scala:
> 68)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.importS
> tatementsMap(SchemaDocIncludesAndImportsMixin.scala:178)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.importS
> tatementsMap$(SchemaDocIncludesAndImportsMixin.scala:178)
> 
>          at
> org.apache.daffodil.core.dsom.XMLSchemaDocument.importStatementsMap(Sc
> hemaDocument.scala:68)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.$anonfu
> n$sali_$1(SchemaDocIncludesAndImportsMixin.scala:188)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG
> .scala:693)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompu
> te(OOLAG.scala:691)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.sc
> ala:688)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.
> scala:739)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.org$apa
> che$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$sali_(SchemaD
> ocIncludesAndImportsMixin.scala:187)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.org$apa
> che$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$sali_$(Schema
> DocIncludesAndImportsMixin.scala:187)
> 
>          at
> org.apache.daffodil.core.dsom.XMLSchemaDocument.org$apache$daffodil$co
> re$dsom$SchemaDocIncludesAndImportsMixin$$sali_$lzycompute(SchemaDocum
> ent.scala:68)
> 
>          at
> org.apache.daffodil.core.dsom.XMLSchemaDocument.org$apache$daffodil$co
> re$dsom$SchemaDocIncludesAndImportsMixin$$sali_(SchemaDocument.scala:6
> 8)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.seenAft
> er(SchemaDocIncludesAndImportsMixin.scala:185)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.seenAft
> er$(SchemaDocIncludesAndImportsMixin.scala:185)
> 
>          at
> org.apache.daffodil.core.dsom.XMLSchemaDocument.seenAfter(SchemaDocume
> nt.scala:68)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaSetIncludesAndImportsMixin.$anonfu
> n$allSchemaFiles$1(SchemaSetIncludesAndImportsMixins.scala:66)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG
> .scala:693)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompu
> te(OOLAG.scala:691)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.sc
> ala:688)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.
> scala:739)
> 
>          at
> org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaSetIncludesAndImportsMixin.allSche
> maFiles(SchemaSetIncludesAndImportsMixins.scala:64)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaSetIncludesAndImportsMixin.allSche
> maFiles$(SchemaSetIncludesAndImportsMixins.scala:64)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaSet.allSchemaFiles$lzycompute(Sche
> maSet.scala:95)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaSet.allSchemaFiles(SchemaSet.scala
> :95)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaSet.$anonfun$isValid$2(SchemaSet.s
> cala:180)
> 
>          at
> scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:23)
> 
>          at 
> org.apache.daffodil.lib.oolag.OOLAG$.keepGoing(OOLAG.scala:65)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaSet.isValid$lzycompute(SchemaSet.s
> cala:179)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaSet.isValid(SchemaSet.scala:174)
> 
>          at
> org.apache.daffodil.core.dsom.SchemaSet.isError(SchemaSet.scala:592)
> 
>          at
> org.apache.daffodil.core.compiler.ProcessorFactory.isError(Compiler.sc
> ala:138)
> 
>          at
> org.apache.daffodil.core.compiler.Compiler.org$apache$daffodil$core$co
> mpiler$Compiler$$compileSourceInternal(Compiler.scala:362)
> 
>          at
> org.apache.daffodil.core.compiler.Compiler$.org$apache$daffodil$core$c
> ompiler$Compiler$$compileSourceSynchronizer(Compiler.scala:408)
> 
>          at
> org.apache.daffodil.core.compiler.Compiler.compileSource(Compiler.scal
> a:339)
> 
>          at
> org.apache.daffodil.core.compiler.Compiler.compileFile(Compiler.scala:
> 322)
> 
>          at
> org.apache.daffodil.japi.Compiler.compileFile(Daffodil.scala:142)
> 
>          at
> org.apache.daffodil.japi.Compiler.compileFile(Daffodil.scala:121)
> 
>          at
> test.app.dfdl.app.DfdlCompilerApp.compile(DfdlCompilerApp.java:52)
> 
>          at 
> test.app.dfdl.app.DfdlCompilerApp.main(DfdlCompilerApp.java:25)
> 
> Thank you,
> 
> Lara
> 

Reply via email to