You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Brandon Sloane (Jira)" <ji...@apache.org> on 2020/01/06 17:05:00 UTC

[jira] [Commented] (DAFFODIL-2266) Daffodil does not validate compatability with pre-compiled parsers

    [ https://issues.apache.org/jira/browse/DAFFODIL-2266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17009004#comment-17009004 ] 

Brandon Sloane commented on DAFFODIL-2266:
------------------------------------------

A nice-to-have would be a `daffodil info` command which can read a precompiled parser from any version of daffodil (or, at least, any version after the feature is implemented) and report what version said parser was built for.

This feature could also be levereged for users to embed their own meta-data into a parser.

> Daffodil does not validate compatability with pre-compiled parsers
> ------------------------------------------------------------------
>
>                 Key: DAFFODIL-2266
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2266
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Middle &quot;End&quot;
>    Affects Versions: 2.5.0
>            Reporter: Brandon Sloane
>            Priority: Major
>
> In general, we do not claim to support untrusted input as pre-compiled parsers, so not validating pre-compiled parsers is reasonable.
> However, a common mistake users are likely to make is using a parser compiled with a different version of Daffodil. While this is not supported, we do not fail gracefully, instead throwing the below unhandled exception. We should instead detect this case, and issue a user-friendly error indicating the problem.
> {quote}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> !!   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.io.InvalidClassException: org.apache.daffodil.processors.DataProcessor; local class incompatible: stream classdesc serialVersionUID = 875658728054701677, local class serialVersionUID = 886020291118569922
> 	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> 	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> 	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> 	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> 	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> 	at org.apache.daffodil.compiler.Compiler.reload(Compiler.scala:293)
> 	at org.apache.daffodil.compiler.Compiler.reload(Compiler.scala:276)
> 	at org.apache.daffodil.Main$.$anonfun$createProcessorFromParser$1(Main.scala:638)
> 	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$.createProcessorFromParser(Main.scala:638)
> 	at org.apache.daffodil.Main$.run(Main.scala:819)
> 	at org.apache.daffodil.Main$.main(Main.scala:1388)
> 	at org.apache.daffodil.Main.main(Main.scala{quote}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)