wiki:SEMAINE-1.0-java

SEMAINE-1.0-java: The Java core of the SEMAINE-1.0 system

Download and installation

Get SEMAINE-1.0-java.zip (~150mb) from http://sourceforge.net/projects/semaine/ . Unzip it in your preferred location.

The java code should run on all platforms supporting Java 1.6 (tested on Windows XP/Vista, Linux, Mac). It includes the system manager, as well as a number of system components for dialogue management and text-to-speech, and is the basis for all the variants of the SEMAINE-1.0 demonstrator system.

Running the demonstrator

The Java code can be used in the following demonstrator configurations.

Known bugs

System monitor GUI paint errors

[Update] This bug is fixed in SEMAINE-1.0.1.

The graphics library used for drawing the system monitor GUI (JGraph) has a bug which frequently causes the system monitor screen to remain in an unclean state. Exceptions are displayed such as the following:

Exception in thread "Thread-0" java.lang.NullPointerException
at org.jgraph.graph.EdgeRenderer.createShape(EdgeRenderer.java:767)
at org.jgraph.graph.EdgeView.getShape(EdgeView.java:216)
at org.jgraph.graph.EdgeRenderer.getPaintBounds(EdgeRenderer.java:554)
at org.jgraph.graph.EdgeRenderer.getBounds(EdgeRenderer.java:237)
at org.jgraph.graph.EdgeView.getBounds(EdgeView.java:246)
at org.jgraph.JGraph.getCellBounds(JGraph.java:922)
at org.jgraph.JGraph.getCellBounds(JGraph.java:934)
at org.jgraph.JGraph.getClipRectangle(JGraph.java:3065)
at org.jgraph.plaf.basic.BasicGraphUI$GraphModelHandler.graphChanged(BasicGraphUI.java:1731)
at org.jgraph.graph.DefaultGraphModel.fireGraphChanged(DefaultGraphModel.java:1069)
at org.jgraph.graph.DefaultGraphModel$GraphModelEdit.execute(DefaultGraphModel.java:1361)
at org.jgraph.graph.DefaultGraphModel.remove(DefaultGraphModel.java:502)
at org.jgraph.graph.GraphLayoutCache.remove(GraphLayoutCache.java:1533)
at eu.semaine.gui.monitor.SystemMonitor.redraw(SystemMonitor.java:210)
at eu.semaine.gui.monitor.SystemMonitor.run(SystemMonitor.java:587)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at org.jgraph.graph.EdgeRenderer.createShape(EdgeRenderer.java:767)
at org.jgraph.graph.EdgeView.getShape(EdgeView.java:216)
at org.jgraph.graph.EdgeRenderer.getPaintBounds(EdgeRenderer.java:554)
at org.jgraph.graph.EdgeRenderer.getBounds(EdgeRenderer.java:237)
at org.jgraph.graph.EdgeView.getBounds(EdgeView.java:246)
at org.jgraph.plaf.basic.BasicGraphUI.paintCells(BasicGraphUI.java:1045)
at org.jgraph.plaf.basic.BasicGraphUI.drawGraph(BasicGraphUI.java:1008)
at org.jgraph.JGraph.getOffgraphics(JGraph.java:2201)
at org.jgraph.plaf.basic.BasicGraphUI.paint(BasicGraphUI.java:920)
at javax.swing.plaf.ComponentUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source) 

The JGraph team has been informed of the bug, and is working on a solution. Watch this bug report for updates on the status of the bug fix.

Workarounds

  • Often, it is sufficient to slighly change the size of the window, to get a properly redrawn version of the system monitor.
  • If the problem is too disturbing, it is possible to de-activate the system monitor GUI completely. In the files SEMAINE-1.0/java/config/speech2speech.config and/or SEMAINE-1.0/java/config/speech2face.config, set the following value to false:
semaine.systemmanager.gui = false
Last modified 8 years ago Last modified on 01/05/09 15:30:33