[ 
https://issues.apache.org/jira/browse/MAHOUT-1772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lina Hovanessian updated MAHOUT-1772:
-------------------------------------
    Status: Patch Available  (was: Open)

Index: 
mr/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- 
mr/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java  
    (revision 9d14053c80a1244bdf7157ab02748a492ae9868a)
+++ 
mr/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java  
    (revision )
@@ -127,7 +127,7 @@
   private final File dataFile;
   private long lastModified;
   private long lastUpdateFileModified;
-  private final Splitter delimiterPattern;
+  private transient final Splitter delimiterPattern;
   private final boolean hasPrefValues;
   private DataModel delegate;
   private final ReentrantLock reloadLock;


> 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