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

ASF GitHub Bot commented on COMMONSRDF-49:
------------------------------------------

Github user ansell commented on the issue:

    https://github.com/apache/commons-rdf/pull/43
  
    Having ``Optional`` fields isn't impossible to serialise (as I said 
erroneously in the referenced comment), as you could always write custom 
serialise/deserialise code to support it, but it isn't supported by default, 
intentionally:
    
    http://mail.openjdk.java.net/pipermail/jdk8-dev/2013-September/003274.html 
    
    I haven't looked at the code/framework for a long time, but my recollection 
was that the parser was based on a single-threaded model after it came out of 
the multi-thread callable factory. If you are only expecting to run on a single 
thread, you may not have the support structures in place to run over multiple 
machines in a typical fashion, which is what ``Serializable`` has as one of its 
implied meanings. That would be a broader discussion though and shouldn't stop 
users from benefiting from serialisation in cases where they know it is 
safe/possible.
    
    Overall, changing the instance variables to nullable raw types, and then 
using their accessors to see them as ``Optional`` is a compromise that allows 
serialisation without custom coding for it, and hence this PR looks good to me.


> Make AbstractRDFParser serializable
> -----------------------------------
>
>                 Key: COMMONSRDF-49
>                 URL: https://issues.apache.org/jira/browse/COMMONSRDF-49
>             Project: Apache Commons RDF
>          Issue Type: New Feature
>          Components: simple
>    Affects Versions: 0.3.0
>            Reporter: Stian Soiland-Reyes
>            Assignee: Stian Soiland-Reyes
>              Labels: parser
>             Fix For: 0.6.0
>
>
> Raised by [~p_ansell] in [pull request 
> 25|(https://github.com/apache/incubator-commonsrdf/pull/25#discussion_r85436754]
> {quote}
> The use of optional here as a field type makes it impossible to serialise. 
> Need to have the raw values stored in fields if you want to support 
> serialisation in the future, which should otherwise be possible.
> {quote}
> The suggestion is to avoid {{Optional}} in the private fields of 
> {{AbstractRDFParser}} so it can be serialized - it can still be {{Optional}} 
> in the accessor methods.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to