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

Missing layer plugin causes abort "this is a bug"

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.4.0
    • 3.6.0
    • Back End
    • None

    Description

      If you pre-compile a schema to a binary file, then try to parse data with it, without setting up the DAFFODIL_CLASSPATH to provide access to a layer plugin, you get an abort during deserialization (i.e., reload) of the stored parser. 

      The workaround is of course just setup the DAFFODIL_CLASSPATH for running the CLI the same as when the parser was compiled and saved. 

      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      !!   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.
      java.lang.ClassCastException: cannot assign instance of scala.collection.immutable.HashMap$SerializationProxy to field org.apache.daffodil.processors.parsers.ChoiceDispatchCombinatorParserBase.dispatchBranchKeyMap of type scala.collection.immutable.Map in instance of org.apache.daffodil.processors.parsers.ChoiceDispatchCombinatorParser
              at java.base/java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2227)
              at java.base/java.io.ObjectStreamClass$FieldReflector.checkObjectFieldValueTypes(ObjectStreamClass.java:2191)
              at java.base/java.io.ObjectStreamClass.checkObjFieldValueTypes(ObjectStreamClass.java:1478)
              at java.base/java.io.ObjectInputStream$FieldValues.defaultCheckFieldValues(ObjectInputStream.java:2657)
              at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2471)
              at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2242)
              at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1742)
              at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2584)
              at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2442)
              at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2242)
              at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1742)
       

      Attachments

        Activity

          People

            mikemcgann Mike McGann
            mbeckerle Mike Beckerle
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: