Fixed thread issue on windows

- Added a Platform.runLater on the Visualiser loops so that the notifying observers do not try to call it, where it is a non java-fx loop
#story[881]
main
Fan-Wu Yang 9 years ago
parent 156e0bfdd5
commit a7a065825a

@ -1,4 +1,5 @@
package seng302; package seng302;
import javafx.application.Platform;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import seng302.Mock.*; import seng302.Mock.*;
import seng302.Networking.BinaryMessageDecoder; import seng302.Networking.BinaryMessageDecoder;
@ -294,42 +295,43 @@ public class VisualiserInput implements Runnable {
//System.out.println("XML Message!"); //System.out.println("XML Message!");
if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeRegatta){ Platform.runLater(()-> {
//System.out.println("Setting Regatta"); if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeRegatta) {
try { //System.out.println("Setting Regatta");
course.setRegattaXMLReader(new RegattaXMLReader(xmlMessage.getXmlMessage())); try {
} course.setRegattaXMLReader(new RegattaXMLReader(xmlMessage.getXmlMessage()));
//TODO REFACTOR should put all of these exceptions behind a RegattaXMLReaderException.
catch (IOException | SAXException | ParserConfigurationException e) { }
System.err.println("Error creating RegattaXMLReader: " + e.getMessage()); //TODO REFACTOR should put all of these exceptions behind a RegattaXMLReaderException.
//Continue to the next loop iteration/message. catch (IOException | SAXException | ParserConfigurationException e) {
} System.err.println("Error creating RegattaXMLReader: " + e.getMessage());
//Continue to the next loop iteration/message.
} else if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeRace){ }
//System.out.println("Setting Course");
try { } else if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeRace) {
course.setStreamedCourseXMLReader(new StreamedCourseXMLReader(xmlMessage.getXmlMessage())); //System.out.println("Setting Course");
} try {
//TODO REFACTOR should put all of these exceptions behind a StreamedCourseXMLReaderException. course.setStreamedCourseXMLReader(new StreamedCourseXMLReader(xmlMessage.getXmlMessage()));
catch (IOException | SAXException | ParserConfigurationException | StreamedCourseXMLException e) { }
System.err.println("Error creating StreamedCourseXMLReader: " + e.getMessage()); //TODO REFACTOR should put all of these exceptions behind a StreamedCourseXMLReaderException.
//Continue to the next loop iteration/message. catch (IOException | SAXException | ParserConfigurationException | StreamedCourseXMLException e) {
} System.err.println("Error creating StreamedCourseXMLReader: " + e.getMessage());
//Continue to the next loop iteration/message.
}
} else if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeBoat) {
//System.out.println("Setting Boats");
try {
course.setBoatXMLReader(new BoatXMLReader(xmlMessage.getXmlMessage()));
}
//TODO REFACTOR should put all of these exceptions behind a BoatXMLReaderException.
catch (IOException | SAXException | ParserConfigurationException e) {
System.err.println("Error creating BoatXMLReader: " + e.getMessage());
//Continue to the next loop iteration/message.
}
} else if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeBoat){
//System.out.println("Setting Boats");
try
{
course.setBoatXMLReader(new BoatXMLReader(xmlMessage.getXmlMessage()));
} }
//TODO REFACTOR should put all of these exceptions behind a BoatXMLReaderException. });
catch (IOException | SAXException | ParserConfigurationException e) {
System.err.println("Error creating BoatXMLReader: " + e.getMessage());
//Continue to the next loop iteration/message.
}
}
} }
//RaceStartStatus. //RaceStartStatus.
else if (message instanceof RaceStartStatus) { else if (message instanceof RaceStartStatus) {

Loading…
Cancel
Save