Mike Beckerle created DAFFODIL-2728:
---------------------------------------

             Summary: Missing layer plugin causes abort "this is a bug"
                 Key: DAFFODIL-2728
                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2728
             Project: Daffodil
          Issue Type: Bug
          Components: Back End
    Affects Versions: 3.4.0
            Reporter: Mike Beckerle


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. 
{code:java}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!   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)
 {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to