[
https://issues.apache.org/jira/browse/DAFFODIL-2046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Josh Adams reassigned DAFFODIL-2046:
------------------------------------
Assignee: Josh Adams
> Poor handling of missing source attribute on <xs:appinfo> element
> -----------------------------------------------------------------
>
> Key: DAFFODIL-2046
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2046
> Project: Daffodil
> Issue Type: Bug
> Components: Diagnostics
> Affects Versions: 2.1.0
> Reporter: Brandon Sloane
> Assignee: Josh Adams
> Priority: Major
> Attachments: test.dfdl.xsd
>
>
> When an appinfo element is present inside an empty sequence inside of a
> choice, and said appinfo element is missing its source attribute, Daffodil
> crashes instead of producing a useful error message.
>
> A complete schema is attached, but the relevent section is:
>
> {quote}<xs:element name="a">
> <xs:complexType>
> <xs:choice>
> <xs:sequence>
> <xs:annotation>
> <!--
> <xs:appinfo source="http://www.ogf.org/dfdl/">
> -->
> <xs:appinfo>
> <dfdl:discriminator testKind="pattern" testPattern="."/>
> </xs:appinfo>
> </xs:annotation>
> </xs:sequence>
> </xs:choice>
> </xs:complexType>
> </xs:element>
> Actual Output:
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> !! An unexpected exception occurred. This is a bug! !!
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> Please report this bug and help us fix it:
> https://daffodil.apache.org/community/#issue-tracker
> Please include the following exception, the command you
> ran, and any input, schema, or tdml files used that led
> to this bug.
> org.apache.daffodil.oolag.CircularDefinition: OOLAG Cycle (of 2) through
> groupMembers@253380088, groupMembers@253380088
> at
> org.apache.daffodil.oolag.OOLAG$OOLAGValueBase.oolagBefore(OOLAG.scala:492)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:584)
> at
> org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
> at
> org.apache.daffodil.dsom.GroupDefLike$class.groupMembers(GroupDef.scala:70)
> at
> org.apache.daffodil.dsom.Choice.groupMembers$lzycompute(ChoiceGroup.scala:267)
> at org.apache.daffodil.dsom.Choice.groupMembers(ChoiceGroup.scala:267)
> at
> org.apache.daffodil.dsom.ModelGroup.sequenceChildren$lzycompute(ModelGroup.scala:201)
> at org.apache.daffodil.dsom.ModelGroup.sequenceChildren(ModelGroup.scala:201)
> at
> org.apache.daffodil.dsom.ModelGroup$$anonfun$sequencePeers$1.apply(ModelGroup.scala:161)
> at
> org.apache.daffodil.dsom.ModelGroup$$anonfun$sequencePeers$1.apply(ModelGroup.scala:161)
> at
> org.apache.daffodil.dsom.ModelGroup.sequencePeers$lzycompute(ModelGroup.scala:161)
> at org.apache.daffodil.dsom.ModelGroup.sequencePeers(ModelGroup.scala:161)
> at
> org.apache.daffodil.dsom.SequenceTermBase.myPeers$lzycompute(SequenceGroup.scala:54)
> at org.apache.daffodil.dsom.SequenceTermBase.myPeers(SequenceGroup.scala:54)
> at
> org.apache.daffodil.dsom.ModelGroup$$anonfun$prettyIndex$1.apply(ModelGroup.scala:147)
> at
> org.apache.daffodil.dsom.ModelGroup$$anonfun$prettyIndex$1.apply(ModelGroup.scala:152)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
> at
> org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
> at org.apache.daffodil.dsom.ModelGroup.prettyIndex(ModelGroup.scala:152)
> at
> org.apache.daffodil.dsom.ModelGroup.diagnosticDebugName$lzycompute(ModelGroup.scala:155)
> at
> org.apache.daffodil.dsom.ModelGroup.diagnosticDebugName(ModelGroup.scala:155)
> at
> org.apache.daffodil.dsom.SchemaComponent$class.toString(SchemaComponent.scala:180)
> at org.apache.daffodil.dsom.ModelGroup.toString(ModelGroup.scala:129)
> at
> org.apache.daffodil.exceptions.SchemaFileLocation.<init>(SchemaFileLocatable.scala:52)
> at
> org.apache.daffodil.exceptions.SchemaFileLocatable$class.schemaFileLocation(SchemaFileLocatable.scala:131)
> at
> org.apache.daffodil.dsom.ModelGroup.schemaFileLocation$lzycompute(ModelGroup.scala:129)
> at
> org.apache.daffodil.dsom.ModelGroup.schemaFileLocation(ModelGroup.scala:129)
> at
> org.apache.daffodil.dsom.ImplementsThrowsOrSavesSDE$class.SDW(SDE.scala:190)
> at org.apache.daffodil.dsom.ModelGroup.SDW(ModelGroup.scala:129)
> at
> org.apache.daffodil.dsom.AnnotatedMixin$$anonfun$11.apply(AnnotatedSchemaComponent.scala:288)
> at
> org.apache.daffodil.dsom.AnnotatedMixin$$anonfun$11.apply(AnnotatedSchemaComponent.scala:284)
> at
> scala.collection.TraversableLike$$anonfun$filterImpl$1.apply(TraversableLike.scala:248)
> at scala.collection.Iterator$class.foreach(Iterator.scala:893)
> at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
> at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
> at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
> at
> scala.collection.TraversableLike$class.filterImpl(TraversableLike.scala:247)
> at scala.collection.TraversableLike$class.filter(TraversableLike.scala:259)
> at scala.collection.AbstractTraversable.filter(Traversable.scala:104)
> at
> org.apache.daffodil.dsom.AnnotatedMixin$class.dfdlAppInfos(AnnotatedSchemaComponent.scala:284)
> at
> org.apache.daffodil.dsom.ModelGroup.dfdlAppInfos$lzycompute(ModelGroup.scala:129)
> at org.apache.daffodil.dsom.ModelGroup.dfdlAppInfos(ModelGroup.scala:129)
> at
> org.apache.daffodil.dsom.AnnotatedMixin$class.annotationObjs(AnnotatedSchemaComponent.scala:325)
> at
> org.apache.daffodil.dsom.ModelGroup.annotationObjs$lzycompute(ModelGroup.scala:129)
> at org.apache.daffodil.dsom.ModelGroup.annotationObjs(ModelGroup.scala:129)
> at
> org.apache.daffodil.dsom.AnnotatedMixin$$anonfun$formatAnnotation$1.apply(AnnotatedSchemaComponent.scala:355)
> at
> org.apache.daffodil.dsom.AnnotatedMixin$$anonfun$formatAnnotation$1.apply(AnnotatedSchemaComponent.scala:354)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
> at
> org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
> at
> org.apache.daffodil.dsom.AnnotatedMixin$class.formatAnnotation(AnnotatedSchemaComponent.scala:354)
> at
> org.apache.daffodil.dsom.ModelGroup.formatAnnotation$lzycompute(ModelGroup.scala:129)
> at org.apache.daffodil.dsom.ModelGroup.formatAnnotation(ModelGroup.scala:129)
> at
> org.apache.daffodil.dsom.AnnotatedSchemaComponent$class.nonDefaultFormatChain(AnnotatedSchemaComponent.scala:207)
> at
> org.apache.daffodil.dsom.ModelGroup.nonDefaultFormatChain$lzycompute(ModelGroup.scala:129)
> at
> org.apache.daffodil.dsom.ModelGroup.nonDefaultFormatChain(ModelGroup.scala:129)
> at
> org.apache.daffodil.dsom.AnnotatedSchemaComponent$class.findPropertyOptionThisComponentOnly(AnnotatedSchemaComponent.scala:255)
> at
> org.apache.daffodil.dsom.SequenceDefMixin$class.hiddenGroupRefOption(SequenceGroup.scala:280)
> at
> org.apache.daffodil.dsom.Sequence.hiddenGroupRefOption$lzycompute(SequenceGroup.scala:287)
> at
> org.apache.daffodil.dsom.Sequence.hiddenGroupRefOption(SequenceGroup.scala:287)
> at org.apache.daffodil.dsom.ModelGroupFactory$.apply(ModelGroup.scala:53)
> at org.apache.daffodil.dsom.TermFactory$.apply(ModelGroup.scala:117)
> at
> org.apache.daffodil.dsom.GroupDefLike$$anonfun$groupMembers$1$$anonfun$apply$2.apply(GroupDef.scala:80)
> at
> org.apache.daffodil.dsom.GroupDefLike$$anonfun$groupMembers$1$$anonfun$apply$2.apply(GroupDef.scala:78)
> at
> scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
> at
> scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
> at scala.collection.immutable.List.foreach(List.scala:381)
> at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241)
> at scala.collection.immutable.List.flatMap(List.scala:344)
> at
> org.apache.daffodil.dsom.GroupDefLike$$anonfun$groupMembers$1.apply(GroupDef.scala:78)
> at
> org.apache.daffodil.dsom.GroupDefLike$$anonfun$groupMembers$1.apply(GroupDef.scala:70)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
> at
> org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
> at
> org.apache.daffodil.dsom.GroupDefLike$class.groupMembers(GroupDef.scala:70)
> at
> org.apache.daffodil.dsom.Choice.groupMembers$lzycompute(ChoiceGroup.scala:267)
> at org.apache.daffodil.dsom.Choice.groupMembers(ChoiceGroup.scala:267)
> at
> org.apache.daffodil.dsom.ModelGroup.elementChildren$lzycompute(ModelGroup.scala:178)
> at org.apache.daffodil.dsom.ModelGroup.elementChildren(ModelGroup.scala:177)
> at
> org.apache.daffodil.dsom.ElementBase$class.elementChildren(ElementBase.scala:578)
> at
> org.apache.daffodil.dsom.AbstractElementRef.elementChildren$lzycompute(ElementRef.scala:33)
> at
> org.apache.daffodil.dsom.AbstractElementRef.elementChildren(ElementRef.scala:33)
> at
> org.apache.daffodil.dsom.ElementBase$class.checkParseUnparsePolicyCompatibility(ElementBase.scala:1156)
> at
> org.apache.daffodil.dsom.AbstractElementRef.checkParseUnparsePolicyCompatibility(ElementRef.scala:33)
> at
> org.apache.daffodil.compiler.ProcessorFactory.x$2$lzycompute(Compiler.scala:89)
> at org.apache.daffodil.compiler.ProcessorFactory.x$2(Compiler.scala:82)
> at
> org.apache.daffodil.compiler.ProcessorFactory.generateUnparser$lzycompute(Compiler.scala:82)
> at
> org.apache.daffodil.compiler.ProcessorFactory.generateUnparser(Compiler.scala:82)
> at
> org.apache.daffodil.compiler.ProcessorFactory$$anonfun$unparser$1.apply(Compiler.scala:104)
> at
> org.apache.daffodil.compiler.ProcessorFactory$$anonfun$unparser$1.apply(Compiler.scala:103)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
> at
> org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
> at
> org.apache.daffodil.compiler.ProcessorFactory.unparser$lzycompute(Compiler.scala:103)
> at org.apache.daffodil.compiler.ProcessorFactory.unparser(Compiler.scala:103)
> at
> org.apache.daffodil.compiler.ProcessorFactory$$anonfun$4.apply(Compiler.scala:123)
> at
> org.apache.daffodil.compiler.ProcessorFactory$$anonfun$4.apply(Compiler.scala:123)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
> at
> org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
> at org.apache.daffodil.oolag.OOLAG$OOLAGValue.valueAsAny(OOLAG.scala:579)
> at
> org.apache.daffodil.oolag.OOLAG$OOLAGHost$$anonfun$checkErrors$2.apply$mcV$sp(OOLAG.scala:287)
> at
> org.apache.daffodil.oolag.OOLAG$OOLAGHost$$anonfun$checkErrors$2.apply(OOLAG.scala:287)
> at
> org.apache.daffodil.oolag.OOLAG$OOLAGHost$$anonfun$checkErrors$2.apply(OOLAG.scala:287)
> at org.apache.daffodil.oolag.OOLAG$.keepGoing(OOLAG.scala:60)
> at
> org.apache.daffodil.oolag.OOLAG$OOLAGHost$class.checkErrors(OOLAG.scala:287)
> at org.apache.daffodil.oolag.OOLAG$OOLAGHost$class.isError(OOLAG.scala:346)
> at
> org.apache.daffodil.compiler.ProcessorFactory.org$apache$daffodil$compiler$ProcessorFactory$$super$isError(Compiler.scala:137)
> at
> org.apache.daffodil.compiler.ProcessorFactory$$anonfun$isError$1$$anonfun$apply$mcZ$sp$2.apply$mcZ$sp(Compiler.scala:137)
> at
> org.apache.daffodil.compiler.ProcessorFactory$$anonfun$isError$1$$anonfun$apply$mcZ$sp$2.apply(Compiler.scala:128)
> at
> org.apache.daffodil.compiler.ProcessorFactory$$anonfun$isError$1$$anonfun$apply$mcZ$sp$2.apply(Compiler.scala:128)
> at org.apache.daffodil.oolag.OOLAG$.keepGoing(OOLAG.scala:60)
> at
> org.apache.daffodil.compiler.ProcessorFactory$$anonfun$isError$1.apply$mcZ$sp(Compiler.scala:128)
> at
> org.apache.daffodil.compiler.ProcessorFactory$$anonfun$isError$1.apply(Compiler.scala:128)
> at
> org.apache.daffodil.compiler.ProcessorFactory$$anonfun$isError$1.apply(Compiler.scala:128)
> at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
> at
> org.apache.daffodil.ExecutionMode$$anonfun$usingCompilerMode$1.apply(ExecutionMode.scala:64)
> at
> org.apache.daffodil.ExecutionMode$$anonfun$usingCompilerMode$1.apply(ExecutionMode.scala:64)
> at org.apache.daffodil.compiler.ProcessorFactory.isError(Compiler.scala:128)
> at org.apache.daffodil.compiler.Compiler.compileSource(Compiler.scala:333)
> at org.apache.daffodil.Main$$anonfun$71.apply(Main.scala:712)
> at org.apache.daffodil.Main$$anonfun$71.apply(Main.scala:711)
> 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$.createProcessorFromSchema(Main.scala:711)
> at org.apache.daffodil.Main$.run(Main.scala:824)
> at org.apache.daffodil.Main$.main(Main.scala:1297)
> at org.apache.daffodil.Main.main(Main.scala)
> {quote}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)