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

Lina Hovanessian commented on MAHOUT-1772:
------------------------------------------

Well , I guess the delimiter is used only for the fist time when we want to 
generate the model, after that it is not really used. So we do not really need 
to have the delimiter after deSerialization.
The change is just to mark the delimiter as a transient variable. So I will 
commit the change and will make a pull request.

> delimiterPattern instance variable of FileDataModel should be marked as a 
> Transient field
> -----------------------------------------------------------------------------------------
>
>                 Key: MAHOUT-1772
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-1772
>             Project: Mahout
>          Issue Type: Bug
>          Components: Collaborative Filtering
>    Affects Versions: 0.11.0
>            Reporter: Lina Hovanessian
>              Labels: easyfix, easytest
>
> I am trying to implement a recommender using Mahout. To create the DataModel 
> I am using FileDataModel type. After creating the Recommender object , I want 
> to save the model for later usage , just like what we have in Spark models.
> FileDataModel is implementing and inheriting Serializable classes , so this 
> means that it can be Serialized. However  when I try to write it the 
> "java.io.NotSerializableException: com.google.common.base.Splitter" exception 
> is thrown.
> The root cause of this exception is "private final Splitter 
> delimiterPattern;" variable of FileDataModel class. It is a non-serializable 
> third party class which is not marked as a transient field in the 
> FileDataModel class, as a result of this we get the exception mentioned above.
> As a workaround , I created my own "MyFileDataModel" which is an exact copy 
> of "FileDataModel" class but the "delimiterPattern" variable is marked as 
> transient and it works perfectly. It would be better to mark the field as 
> transient in the original class.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to