You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@opennlp.apache.org by "Nishant Kelkar (JIRA)" <ji...@apache.org> on 2015/01/21 09:59:34 UTC

[jira] [Commented] (OPENNLP-742) Adding serialVersionUID to POSModel Class

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

Nishant Kelkar commented on OPENNLP-742:
----------------------------------------

I actually didn't see this before: https://cwiki.apache.org/confluence/display/OPENNLP/ReleasePlanAndTasks1.6.0

It mentions that Java 1.7 is required. Oh well, it's a good idea (IMO) to have a serialVersionUID anyway (for future SerDe compatibility across Java 1.7 and 1.8).

> Adding serialVersionUID to POSModel Class
> -----------------------------------------
>
>                 Key: OPENNLP-742
>                 URL: https://issues.apache.org/jira/browse/OPENNLP-742
>             Project: OpenNLP
>          Issue Type: Improvement
>          Components: POS Tagger
>    Affects Versions: 1.6.0
>         Environment: Mac OS X 10.9.5
>            Reporter: Nishant Kelkar
>
> I had a custom POSModel that I serialized and store as a .bin file using Java 1.7. Now, I want to deserialize and use it in a POSTaggerME using Java 1.6. However, I get the following error at the point that I read in the binary file:
> java.lang.UnsupportedClassVersionError: opennlp/tools/postag/POSModel : Unsupported major.minor version 51.0
> 	at java.lang.ClassLoader.defineClass1(Native Method)
> 	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
> 	at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> 	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
> 	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
> 	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> According to the following StackOverflow post, it should be possible to resolve this by manually assigning a serialVersionUID to the POSModel class (which is what I call the serialize() method on):
> http://stackoverflow.com/questions/893433/does-using-compilers-from-different-jdk-versions-on-the-same-source-file-break
> I'm using the following dependency:
>     <dependency>
>       <groupId>org.apache.opennlp</groupId>
>       <artifactId>opennlp-tools</artifactId>
>       <version>1.6.0-SNAPSHOT</version>
>     </dependency>



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