I am trying to update a Weka classifier in SPL, changing the attributes used to classify each case. I updated all SPL files and type definitions, along with a Java file, to use the new set of attributes, and built a new .model file in Weka. However, if I change the name of the model file (as a parameter in the Makefile) and re-build the code, I get the following error message:
ERROR #splapptrc,J[40],P[444],CalculateFeaturesAndClassify[0].ClassifyDownloadsStream.ClassifyStream,spl_javaop M[?:com.ibm.streams.operator.internal.jni.JNIBridge.<init>:-1] - weka.classifiers.meta.Bagging;
local class incompatible: stream classdesc serialVersionUID = -115879962237199703, local class serialVersionUID = -505879962237199703.
This error traces down in the Java file I am editing to:
FileDownloadClassifier.initialize(FileDownloadClassifier.java:43)
And this line reads:
classifierObj = (RandomForest) SerializationHelper.read(modelName)
When I put the old model filename back in the Makefile (even with the new attributes used in the rest of the code), this error goes away, but it comes back when I use any other model filename.
Could anyone give insight as to how to correct this error? My office mates suspect it could be caused by the versions of Weka and Java used, but no one seems to have a definitive answer.