gephi-toolkit icon indicating copy to clipboard operation
gephi-toolkit copied to clipboard

GraphController.getGraphModel not JRE1.7 compatible

Open TheFlow0360 opened this issue 5 years ago • 0 comments

I'm using the Toolkit version 0.92 and was trying to modify the PreviewDemo to use the GraphStreaming Plugin like described here.

//Init a project - and therefore a workspace
ProjectController pc = Lookup.getDefault().lookup(ProjectController.class);
pc.newProject();
Workspace workspace = pc.getCurrentWorkspace();

GraphController graphController = Lookup.getDefault().lookup(GraphController.class);
GraphModel graphModel = graphController.getGraphModel(workspace);   // it fails here
Graph graph = graphModel.getGraph();

StreamingController controller = Lookup.getDefault().lookup(StreamingController.class);
StreamingEndpoint endpoint = new StreamingEndpoint(getInitialStreamSource(), controller.getStreamType("JSON"));

try {
	StreamingConnection connection = controller.connect(endpoint, graph);
	connection.process();
} catch (IOException e1) {
	e1.printStackTrace();
}

I'm using JRE.17 (for backwards-compatibility reasons) and according to the documentation, gephi and the toolkit should be compatible. However, as soon as I try to retrieve the GraphModel from the GraphController, I get the following exception

Exception in thread "main" java.lang.UnsupportedClassVersionError: it/unimi/dsi/fastutil/shorts/ShortSortedSet : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.gephi.graph.impl.GraphStore.<init>(GraphStore.java:79)
at org.gephi.graph.impl.GraphModelImpl.<init>(GraphModelImpl.java:59)
at org.gephi.graph.api.GraphModel$Factory.newInstance(GraphModel.java:116)
at org.gephi.graph.GraphControllerImpl.newGraphModel(GraphControllerImpl.java:85)
at org.gephi.graph.GraphControllerImpl.getGraphModel(GraphControllerImpl.java:77)
at com.foobar.myapp.main.PreviewJFrame.script(PreviewJFrame.java:52)
at com.foobar.myapp.main.App.showUI(App.java:100)
at com.foobar.myapp.main.App.main(App.java:42)

A quick search told me that this is most likely due to a JRE version mismatch.

TheFlow0360 avatar May 07 '19 11:05 TheFlow0360