commit 6a8532dd89833f816e0ea8ab30e64ea3a45452f2 Author: maxim.derksen Date: Thu Dec 3 11:11:10 2020 +0100 Langlaufsimulator diff --git a/Langlaufsimulator/Athlete.class b/Langlaufsimulator/Athlete.class new file mode 100644 index 0000000..7be394c Binary files /dev/null and b/Langlaufsimulator/Athlete.class differ diff --git a/Langlaufsimulator/Athlete.ctxt b/Langlaufsimulator/Athlete.ctxt new file mode 100644 index 0000000..dd67006 --- /dev/null +++ b/Langlaufsimulator/Athlete.ctxt @@ -0,0 +1,25 @@ +#BlueJ class context +comment0.target=Athlete +comment0.text=\r\n\ Beschreiben\ Sie\ hier\ die\ Klasse\ Athlete.\r\n\ \r\n\ @author\ (Ihr\ Name)\ \r\n\ @version\ (eine\ Versionsnummer\ oder\ ein\ Datum)\r\n +comment1.params=pName +comment1.target=Athlete(java.lang.String) +comment1.text=\r\n\ Konstruktor\ f\u00FCr\ Objekte\ der\ Klasse\ Athlete\r\n +comment10.params=pOther +comment10.target=boolean\ isLess(Athlete) +comment2.params= +comment2.target=java.lang.String\ getName() +comment3.params= +comment3.target=double\ getStartTime() +comment4.params= +comment4.target=double\ getEndTime() +comment5.params= +comment5.target=double\ getFinalTime() +comment6.params=pStartTime +comment6.target=void\ setStartTime(double) +comment7.params=pEndTime +comment7.target=void\ setEndTime(double) +comment8.params=pOther +comment8.target=boolean\ isGreater(Athlete) +comment9.params=pOther +comment9.target=boolean\ isEqual(Athlete) +numComments=11 diff --git a/Langlaufsimulator/Athlete.java b/Langlaufsimulator/Athlete.java new file mode 100644 index 0000000..faab6f1 --- /dev/null +++ b/Langlaufsimulator/Athlete.java @@ -0,0 +1,56 @@ + +/** + * Beschreiben Sie hier die Klasse Athlete. + * + * @author (Ihr Name) + * @version (eine Versionsnummer oder ein Datum) + */ +public class Athlete implements ComparableContent { + + String name; + double startTime; + double endTime; + + /** + * Konstruktor für Objekte der Klasse Athlete + */ + public Athlete(String pName) { + name = pName; + } + + public String getName(){ + return name; + } + + public double getStartTime(){ + return startTime; + } + + public double getEndTime(){ + return endTime; + } + + public double getFinalTime() { + return endTime - startTime; + } + + public void setStartTime(double pStartTime){ + startTime=pStartTime; + } + + public void setEndTime(double pEndTime){ + endTime= pEndTime; + } + + public boolean isGreater(Athlete pOther){ + return pOther.getFinalTime() < getFinalTime(); + } + + public boolean isEqual(Athlete pOther){ + return pOther.getFinalTime() == getFinalTime(); + } + + public boolean isLess(Athlete pOther){ + return pOther.getFinalTime() > getFinalTime(); + } +} diff --git a/Langlaufsimulator/BinarySearchTree.java b/Langlaufsimulator/BinarySearchTree.java new file mode 100644 index 0000000..cb72a1b --- /dev/null +++ b/Langlaufsimulator/BinarySearchTree.java @@ -0,0 +1,260 @@ +/** + *

+ * Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018 + *

+ *

+ * Generische Klasse BinarySearchTree + *

+ *

+ * Mithilfe der generischen Klasse BinarySearchTree koennen beliebig viele + * Objekte in einem Binaerbaum (binaerer Suchbaum) entsprechend einer + * Ordnungsrelation verwaltet werden.
+ * Ein Objekt der Klasse stellt entweder einen leeren binaeren Suchbaum dar oder + * verwaltet ein Inhaltsobjekt sowie einen linken und einen rechten Teilbaum, + * die ebenfalls Objekte der Klasse BinarySearchTree sind.
+ * Die Klasse der Objekte, die in dem Suchbaum verwaltet werden sollen, muss + * das generische Interface ComparableContent implementieren. Dabei muss durch + * Ueberschreiben der drei Vergleichsmethoden isLess, isEqual, isGreater (s. + * Dokumentation des Interfaces) eine eindeutige Ordnungsrelation festgelegt + * sein.
+ * Alle Objekte im linken Teilbaum sind kleiner als das Inhaltsobjekt des + * binaeren Suchbaums. Alle Objekte im rechten Teilbaum sind groesser als das + * Inhaltsobjekt des binaeren Suchbaums. Diese Bedingung gilt (rekursiv) auch in + * beiden Teilbaeumen.
+ * Hinweis: In dieser Version wird die Klasse BinaryTree nicht benutzt. + *

+ * + * @author Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule + * @version Generisch_03 2017-11-28 + */ +public class BinarySearchTree> { + + /* --------- Anfang der privaten inneren Klasse -------------- */ + + /** + * Durch diese innere Klasse kann man dafuer sorgen, dass ein leerer Baum + * null ist, ein nicht-leerer Baum jedoch immer eine nicht-null-Wurzel sowie + * nicht-null-Teilbaeume hat. + */ + private class BSTNode> { + + private CT content; + private BinarySearchTree left, right; + + public BSTNode(CT pContent) { + // Der Knoten hat einen linken und rechten Teilbaum, die + // beide von null verschieden sind. Also hat ein Blatt immer zwei + // leere Teilbaeume unter sich. + this.content = pContent; + left = new BinarySearchTree(); + right = new BinarySearchTree(); + } + + } + + /* ----------- Ende der privaten inneren Klasse -------------- */ + + private BSTNode node; + + /** + * Der Konstruktor erzeugt einen leeren Suchbaum. + */ + public BinarySearchTree() { + this.node = null; + } + + /** + * Diese Anfrage liefert den Wahrheitswert true, wenn der Suchbaum leer ist, + * sonst liefert sie den Wert false. + * + * @return true, wenn der binaere Suchbaum leer ist, sonst false + * + */ + public boolean isEmpty() { + return this.node == null; + } + + /** + * Falls der Parameter null ist, geschieht nichts.
+ * Falls ein bezueglich der verwendeten Vergleichsmethode isEqual mit + * pContent uebereinstimmendes Objekt im geordneten binaeren Suchbau + * enthalten ist, passiert nichts.
+ * Achtung: hier wird davon ausgegangen, dass isEqual genau dann true + * liefert, wenn isLess und isGreater false liefern.
+ * Andernfalls (isLess oder isGreater) wird das Objekt pContent entsprechend + * der vorgegebenen Ordnungsrelation in den BinarySearchTree eingeordnet. + * + * @param pContent + * einzufuegendes Objekt vom Typ ContentType + * + */ + public void insert(ContentType pContent) { + if (pContent != null) { + if (isEmpty()) { + this.node = new BSTNode(pContent); + } else if (pContent.isLess(this.node.content)) { + this.node.left.insert(pContent); + } else if(pContent.isGreater(this.node.content)) { + this.node.right.insert(pContent); + } + } + } + + /** + * Diese Anfrage liefert den linken Teilbaum des binaeren Suchbaumes.
+ * Wenn er leer ist, wird null zurueckgegeben. + * + * @return den linken Teilbaum (Objekt vom Typ BinarySearchTree) + * bzw. null, wenn der Suchbaum leer ist + * + */ + public BinarySearchTree getLeftTree() { + if (this.isEmpty()) { + return null; + } else { + return this.node.left; + } + } + + /** + * Diese Anfrage liefert das Inhaltsobjekt des Suchbaumes. Wenn der Suchbaum + * leer ist, wird null zurueckgegeben. + * + * @return das Inhaltsobjekt vom Typ ContentType bzw. null, wenn der aktuelle + * Suchbaum leer ist + * + */ + public ContentType getContent() { + if (this.isEmpty()) { + return null; + } else { + return this.node.content; + } + } + + /** + * Diese Anfrage liefert den rechten Teilbaum des binaeren Suchbaumes.
+ * Wenn er leer ist, wird null zurueckgegeben. + * + * @return den rechten Teilbaum (Objekt vom Typ BinarySearchTree) + * bzw. null, wenn der aktuelle Suchbaum leer ist + * + */ + public BinarySearchTree getRightTree() { + if (this.isEmpty()) { + return null; + } else { + return this.node.right; + } + } + + /** + * Falls ein bezueglich der verwendeten Vergleichsmethode mit + * pContent uebereinstimmendes Objekt im binaeren Suchbaum enthalten + * ist, wird dieses entfernt. Falls der Parameter null ist, aendert sich + * nichts. + * + * @param pContent + * zu entfernendes Objekt vom Typ ContentType + * + */ + public void remove(ContentType pContent) { + if (isEmpty() || pContent == null ) { + // Abbrechen, da kein Element zum entfernen vorhanden ist. + return; + } + + if (pContent.isLess(node.content)) { + // Element ist im linken Teilbaum zu loeschen. + node.left.remove(pContent); + } else if (pContent.isGreater(node.content)) { + // Element ist im rechten Teilbaum zu loeschen. + node.right.remove(pContent); + } else { + // Element ist gefunden. + if (node.left.isEmpty()) { + if (node.right.isEmpty()) { + // Es gibt keinen Nachfolger. + node = null; + } else { + // Es gibt nur rechts einen Nachfolger. + node = getNodeOfRightSuccessor(); + } + } else if (node.right.isEmpty()) { + // Es gibt nur links einen Nachfolger. + node = getNodeOfLeftSuccessor(); + } else { + // Es gibt links und rechts einen Nachfolger. + if (getNodeOfRightSuccessor().left.isEmpty()) { + // Der rechte Nachfolger hat keinen linken Nachfolger. + node.content = getNodeOfRightSuccessor().content; + node.right = getNodeOfRightSuccessor().right; + } else { + BinarySearchTree previous = node.right + .ancestorOfSmallRight(); + BinarySearchTree smallest = previous.node.left; + this.node.content = smallest.node.content; + previous.remove(smallest.node.content); + } + } + } + } + + /** + * Falls ein bezueglich der verwendeten Vergleichsmethode isEqual mit + * pContent uebereinstimmendes Objekt im binaeren Suchbaum enthalten ist, + * liefert die Anfrage dieses, ansonsten wird null zurueckgegeben.
+ * Falls der Parameter null ist, wird null zurueckgegeben. + * + * @param pContent + * zu suchendes Objekt vom Typ ContentType + * @return das gefundene Objekt vom Typ ContentType, bei erfolgloser Suche null + * + */ + public ContentType search(ContentType pContent) { + if (this.isEmpty() || pContent == null) { + // Abbrechen, da es kein Element zu suchen gibt. + return null; + } else { + ContentType content = this.getContent(); + if (pContent.isLess(content)) { + // Element wird im linken Teilbaum gesucht. + return this.getLeftTree().search(pContent); + } else if (pContent.isGreater(content)) { + // Element wird im rechten Teilbaum gesucht. + return this.getRightTree().search(pContent); + } else if (pContent.isEqual(content)) { + // Element wurde gefunden. + return content; + } else { + // Dieser Fall sollte nicht auftreten. + return null; + } + } + } + + /* ----------- Weitere private Methoden -------------- */ + + /** + * Die Methode liefert denjenigen Baum, dessen linker Nachfolger keinen linken + * Nachfolger mehr hat. Es ist also spaeter moeglich, in einem Baum im + * rechten Nachfolger den Vorgaenger des linkesten Nachfolgers zu finden. + * + */ + private BinarySearchTree ancestorOfSmallRight() { + if (getNodeOfLeftSuccessor().left.isEmpty()) { + return this; + } else { + return node.left.ancestorOfSmallRight(); + } + } + + private BSTNode getNodeOfLeftSuccessor() { + return node.left.node; + } + + private BSTNode getNodeOfRightSuccessor() { + return node.right.node; + } + +} diff --git a/Langlaufsimulator/ComparableContent.class b/Langlaufsimulator/ComparableContent.class new file mode 100644 index 0000000..ab370f3 Binary files /dev/null and b/Langlaufsimulator/ComparableContent.class differ diff --git a/Langlaufsimulator/ComparableContent.ctxt b/Langlaufsimulator/ComparableContent.ctxt new file mode 100644 index 0000000..a860892 --- /dev/null +++ b/Langlaufsimulator/ComparableContent.ctxt @@ -0,0 +1,13 @@ +#BlueJ class context +comment0.target=ComparableContent +comment0.text=\r\n\

\r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\

\r\n\

\r\n\ Generisches\ Interface\ (Schnittstelle)\ ComparableContent\r\n\

\r\n\

\r\n\

Das\ generische\ Interface\ ComparableContent\ legt\ die\ Methoden\r\n\ fest,\ ueber\ die\ Objekte\ verfuegen\ muessen,\ die\ in\ einen\ binaeren\ Suchbaum\r\n\ (BinarySearchTree)\ eingefuegt\ werden\ sollen.\ Die\ Ordnungsrelation\ wird\ in\r\n\ Klassen,\ die\ ComparableContent\ implementieren\ durch\ Ueberschreiben\ der\ drei\r\n\ implizit\ abstrakten\ Methoden\ isGreater,\ isEqual\ und\ isLess\ festgelegt.\ \r\n\

\r\n\

\r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ Generisch_02\ 2014-03-01\r\n +comment1.params=pContent +comment1.target=boolean\ isGreater(java.lang.Object) +comment1.text=\r\n\ Wenn\ festgestellt\ wird,\ dass\ das\ Objekt,\ von\ dem\ die\ Methode\ aufgerufen\r\n\ wird,\ bzgl.\ der\ gewuenschten\ Ordnungsrelation\ groesser\ als\ das\ Objekt\r\n\ pContent\ ist,\ wird\ true\ geliefert.\ Sonst\ wird\ false\ geliefert.\r\n\r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ das\ mit\ dem\ aufrufenden\ Objekt\ zu\ vergleichende\ Objekt\ vom\r\n\ \ \ \ \ \ \ \ \ \ Typ\ ContentType\r\n\ @return\ true,\ wenn\ das\ aufrufende\ Objekt\ groesser\ ist\ als\ das\ Objekt\r\n\ \ \ \ \ \ \ \ \ pContent,\ sonst\ false\r\n +comment2.params=pContent +comment2.target=boolean\ isEqual(java.lang.Object) +comment2.text=\r\n\ Wenn\ festgestellt\ wird,\ dass\ das\ Objekt,\ von\ dem\ die\ Methode\ aufgerufen\r\n\ wird,\ bzgl.\ der\ gewuenschten\ Ordnungsrelation\ gleich\ gross\ wie\ das\ Objekt\r\n\ pContent\ ist,\ wird\ true\ geliefert.\ Sonst\ wird\ false\ geliefert.\r\n\r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ das\ mit\ dem\ aufrufenden\ Objekt\ zu\ vergleichende\ Objekt\ vom\r\n\ \ \ \ \ \ \ \ \ \ Typ\ ContentType\r\n\ @return\ true,\ wenn\ das\ aufrufende\ Objekt\ gleich\ gross\ ist\ wie\ das\ Objekt\r\n\ \ \ \ \ \ \ \ \ pContent,\ sonst\ false\r\n +comment3.params=pContent +comment3.target=boolean\ isLess(java.lang.Object) +comment3.text=\r\n\ Wenn\ festgestellt\ wird,\ dass\ das\ Objekt,\ von\ dem\ die\ Methode\ aufgerufen\r\n\ wird,\ bzgl.\ der\ gewuenschten\ Ordnungsrelation\ kleiner\ als\ das\ Objekt\r\n\ pContent\ ist,\ wird\ true\ geliefert.\ Sonst\ wird\ false\ geliefert.\r\n\r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ das\ mit\ dem\ aufrufenden\ Objekt\ zu\ vergleichende\ Objekt\ vom\r\n\ \ \ \ \ \ \ \ \ \ Typ\ ContentType\r\n\ @return\ true,\ wenn\ das\ aufrufende\ Objekt\ kleiner\ ist\ als\ das\ Objekt\r\n\ \ \ \ \ \ \ \ \ pContent,\ sonst\ false\ \ \ \r\n +numComments=4 diff --git a/Langlaufsimulator/ComparableContent.java b/Langlaufsimulator/ComparableContent.java new file mode 100644 index 0000000..c07baa1 --- /dev/null +++ b/Langlaufsimulator/ComparableContent.java @@ -0,0 +1,60 @@ + /** + *

+ * Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018 + *

+ *

+ * Generisches Interface (Schnittstelle) ComparableContent + *

+ *

+ *

Das generische Interface ComparableContent legt die Methoden + * fest, ueber die Objekte verfuegen muessen, die in einen binaeren Suchbaum + * (BinarySearchTree) eingefuegt werden sollen. Die Ordnungsrelation wird in + * Klassen, die ComparableContent implementieren durch Ueberschreiben der drei + * implizit abstrakten Methoden isGreater, isEqual und isLess festgelegt. + *

+ *

+ * @author Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule + * @version Generisch_02 2014-03-01 + */ +public interface ComparableContent { + + /** + * Wenn festgestellt wird, dass das Objekt, von dem die Methode aufgerufen + * wird, bzgl. der gewuenschten Ordnungsrelation groesser als das Objekt + * pContent ist, wird true geliefert. Sonst wird false geliefert. + * + * @param pContent + * das mit dem aufrufenden Objekt zu vergleichende Objekt vom + * Typ ContentType + * @return true, wenn das aufrufende Objekt groesser ist als das Objekt + * pContent, sonst false + */ + public boolean isGreater(ContentType pContent); + + /** + * Wenn festgestellt wird, dass das Objekt, von dem die Methode aufgerufen + * wird, bzgl. der gewuenschten Ordnungsrelation gleich gross wie das Objekt + * pContent ist, wird true geliefert. Sonst wird false geliefert. + * + * @param pContent + * das mit dem aufrufenden Objekt zu vergleichende Objekt vom + * Typ ContentType + * @return true, wenn das aufrufende Objekt gleich gross ist wie das Objekt + * pContent, sonst false + */ + public boolean isEqual(ContentType pContent); + + /** + * Wenn festgestellt wird, dass das Objekt, von dem die Methode aufgerufen + * wird, bzgl. der gewuenschten Ordnungsrelation kleiner als das Objekt + * pContent ist, wird true geliefert. Sonst wird false geliefert. + * + * @param pContent + * das mit dem aufrufenden Objekt zu vergleichende Objekt vom + * Typ ContentType + * @return true, wenn das aufrufende Objekt kleiner ist als das Objekt + * pContent, sonst false + */ + public boolean isLess(ContentType pContent); + +} diff --git a/Langlaufsimulator/Competition.class b/Langlaufsimulator/Competition.class new file mode 100644 index 0000000..62701cc Binary files /dev/null and b/Langlaufsimulator/Competition.class differ diff --git a/Langlaufsimulator/Competition.ctxt b/Langlaufsimulator/Competition.ctxt new file mode 100644 index 0000000..ab66a25 --- /dev/null +++ b/Langlaufsimulator/Competition.ctxt @@ -0,0 +1,11 @@ +#BlueJ class context +comment0.target=Competition +comment0.text=\r\n\ Beschreiben\ Sie\ hier\ die\ Klasse\ Competition.\r\n\ \r\n\ @author\ (Ihr\ Name)\ \r\n\ @version\ (eine\ Versionsnummer\ oder\ ein\ Datum)\r\n +comment1.params= +comment1.target=Competition() +comment1.text=\r\n\ Konstruktor\ f\u00FCr\ Objekte\ der\ Klasse\ Competition\r\n +comment2.params=pName +comment2.target=void\ newRunner(java.lang.String) +comment3.params= +comment3.target=void\ simulate() +numComments=4 diff --git a/Langlaufsimulator/Competition.java b/Langlaufsimulator/Competition.java new file mode 100644 index 0000000..3dcf4d4 --- /dev/null +++ b/Langlaufsimulator/Competition.java @@ -0,0 +1,32 @@ + +/** + * Beschreiben Sie hier die Klasse Competition. + * + * @author (Ihr Name) + * @version (eine Versionsnummer oder ein Datum) + */ +public class Competition { + + private List runners; + + /** + * Konstruktor für Objekte der Klasse Competition + */ + public Competition() { + // ggf. Instanzvariable initialisieren + } + + public void newRunner(String pName){ + Athlete athlete = new Athlete(pName); + runners.toFirst(); + runners.insert(athlete); + } + + public void simulate(){ + + } + + // public Athlete top3(){ + + // } +} diff --git a/Langlaufsimulator/Dokumente/bluej/bluej-debuglog.txt b/Langlaufsimulator/Dokumente/bluej/bluej-debuglog.txt new file mode 100644 index 0000000..03666cf --- /dev/null +++ b/Langlaufsimulator/Dokumente/bluej/bluej-debuglog.txt @@ -0,0 +1,863 @@ +BlueJ run started: Thu Dec 03 10:34:26 CET 2020 +BlueJ version 4.2.2 +Java version 11.0.2 +JavaFX version 11.0.2+1 +Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation) +Running on: Windows 7 6.1 (amd64) +Java Home: C:\Program Files\BlueJ\jdk +---- +getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator +1606988070529: Listening for JDWP connection on address: javadebug +Connected to debug VM via dt_shmem transport... +java.io.FileNotFoundException while reading import cache: H:Dokumente\bluej\import-cache.xml (Das System kann die angegebene Datei nicht finden) +Communication with debug VM fully established. +Simple GUI Extension terminates +==== + +==== +BlueJ run started: Thu Dec 03 10:35:26 CET 2020 +BlueJ version 4.2.2 +Java version 11.0.2 +JavaFX version 11.0.2+1 +Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation) +Running on: Windows 7 6.1 (amd64) +Java Home: C:\Program Files\BlueJ\jdk +---- +getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator +1606988128452: Listening for JDWP connection on address: javadebug +Connected to debug VM via dt_shmem transport... +Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException + at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111) + at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508) + at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139) + at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.getAllEntities(ClassInfoFrontendBlueJ.java:32) + at de.upb.bluej.plus.subclasses.Subclasses.findAllClassNames(Subclasses.java:60) + at de.upb.bluej.plus.subclasses.Subclasses.updateTarget(Subclasses.java:156) + at de.upb.bluej.plus.subclasses.Subclasses$1.run(Subclasses.java:193) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException + at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111) + at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508) + at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139) + at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:142) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230) + at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Communication with debug VM fully established. +Simple GUI Extension terminates +==== + +==== +BlueJ run started: Thu Dec 03 10:35:53 CET 2020 +BlueJ version 4.2.2 +Java version 11.0.2 +JavaFX version 11.0.2+1 +Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation) +Running on: Windows 7 6.1 (amd64) +Java Home: C:\Program Files\BlueJ\jdk +---- +getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator +1606988155961: Listening for JDWP connection on address: javadebug +Connected to debug VM via dt_shmem transport... +Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException + at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111) + at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508) + at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139) + at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.getAllEntities(ClassInfoFrontendBlueJ.java:32) + at de.upb.bluej.plus.subclasses.Subclasses.findAllClassNames(Subclasses.java:60) + at de.upb.bluej.plus.subclasses.Subclasses.updateTarget(Subclasses.java:156) + at de.upb.bluej.plus.subclasses.Subclasses$1.run(Subclasses.java:193) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException + at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111) + at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508) + at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139) + at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:142) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230) + at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Communication with debug VM fully established. +ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location +java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location + at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101) + at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075) + at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48) + at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66) + at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964) + at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142) + at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673) + at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Dez. 03, 2020 10:51:34 VORM. javafx.scene.CssStyleHelper calculateValue +WARNING: Could not resolve '-fx-text-background-color' while resolving lookups for '-fx-text-fill' from rule '*.label' in stylesheet jar:file:/C:/Program%20Files/BlueJ/lib/javafx/lib/javafx.controls.jar!/com/sun/javafx/scene/control/skin/modena/modena.bss +Exception in thread "JavaFX Application Thread" java.lang.NullPointerException + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:221) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230) + at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Exception in thread "JavaFX Application Thread" java.lang.NullPointerException + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:221) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230) + at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Dez. 03, 2020 10:56:57 VORM. javafx.scene.CssStyleHelper calculateValue +WARNING: Could not resolve '-fx-text-background-color' while resolving lookups for '-fx-text-fill' from rule '*.label' in stylesheet jar:file:/C:/Program%20Files/BlueJ/lib/javafx/lib/javafx.controls.jar!/com/sun/javafx/scene/control/skin/modena/modena.bss +Simple GUI Extension terminates +==== + +==== +BlueJ run started: Thu Dec 03 11:00:47 CET 2020 +BlueJ version 4.2.2 +Java version 11.0.2 +JavaFX version 11.0.2+1 +Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation) +Running on: Windows 7 6.1 (amd64) +Java Home: C:\Program Files\BlueJ\jdk +---- +getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator +1606989650221: Listening for JDWP connection on address: javadebug +Connected to debug VM via dt_shmem transport... +Communication with debug VM fully established. +Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException + at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111) + at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508) + at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139) + at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.getAllEntities(ClassInfoFrontendBlueJ.java:32) + at de.upb.bluej.plus.subclasses.Subclasses.findAllClassNames(Subclasses.java:60) + at de.upb.bluej.plus.subclasses.Subclasses.updateTarget(Subclasses.java:156) + at de.upb.bluej.plus.subclasses.Subclasses$1.run(Subclasses.java:193) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException + at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111) + at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508) + at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139) + at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:142) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230) + at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Simple GUI Extension terminates +==== + +==== +BlueJ run started: Thu Dec 03 11:03:45 CET 2020 +BlueJ version 4.2.2 +Java version 11.0.2 +JavaFX version 11.0.2+1 +Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation) +Running on: Windows 7 6.1 (amd64) +Java Home: C:\Program Files\BlueJ\jdk +---- +getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator +1606989827405: Listening for JDWP connection on address: javadebug +Connected to debug VM via dt_shmem transport... +Communication with debug VM fully established. +Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException + at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111) + at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508) + at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139) + at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.getAllEntities(ClassInfoFrontendBlueJ.java:32) + at de.upb.bluej.plus.subclasses.Subclasses.findAllClassNames(Subclasses.java:60) + at de.upb.bluej.plus.subclasses.Subclasses.updateTarget(Subclasses.java:156) + at de.upb.bluej.plus.subclasses.Subclasses$1.run(Subclasses.java:193) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException + at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111) + at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508) + at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139) + at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:142) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230) + at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location +java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location + at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101) + at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075) + at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48) + at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66) + at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964) + at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142) + at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673) + at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location +java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location + at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101) + at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075) + at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48) + at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66) + at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964) + at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142) + at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673) + at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Simple GUI Extension terminates +==== + +==== +BlueJ run started: Thu Dec 03 11:04:51 CET 2020 +BlueJ version 4.2.2 +Java version 11.0.2 +JavaFX version 11.0.2+1 +Virtual machine: OpenJDK 64-Bit Server VM 11.0.2+9 (Oracle Corporation) +Running on: Windows 7 6.1 (amd64) +Java Home: C:\Program Files\BlueJ\jdk +---- +getExtensionsClass: jarFile=._CleanProjectExtension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +getExtensionsClass: jarFile=._GUI_Extension.jar Exception=zip END header not found +java.util.zip.ZipException: zip END header not found + at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1529) + at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1430) + at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1437) + at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1268) + at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1231) + at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:726) + at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) + at java.base/java.util.zip.ZipFile.(ZipFile.java:246) + at java.base/java.util.zip.ZipFile.(ZipFile.java:176) + at java.base/java.util.jar.JarFile.(JarFile.java:346) + at java.base/java.util.jar.JarFile.(JarFile.java:317) + at java.base/java.util.jar.JarFile.(JarFile.java:283) + at bluej.extmgr.ExtensionWrapper.getExtensionClass(ExtensionWrapper.java:128) + at bluej.extmgr.ExtensionWrapper.(ExtensionWrapper.java:94) + at bluej.extmgr.ExtensionsManager.loadDirectoryExtensions(ExtensionsManager.java:155) + at bluej.extmgr.ExtensionsManager.loadExtensions(ExtensionsManager.java:105) + at bluej.extmgr.ExtensionsManager.getInstance(ExtensionsManager.java:66) + at bluej.Main.lambda$new$2(Main.java:152) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Opening project: H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator +1606989893440: Listening for JDWP connection on address: javadebug +Connected to debug VM via dt_shmem transport... +Communication with debug VM fully established. +Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException + at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111) + at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508) + at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139) + at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.getAllEntities(ClassInfoFrontendBlueJ.java:32) + at de.upb.bluej.plus.subclasses.Subclasses.findAllClassNames(Subclasses.java:60) + at de.upb.bluej.plus.subclasses.Subclasses.updateTarget(Subclasses.java:156) + at de.upb.bluej.plus.subclasses.Subclasses$1.run(Subclasses.java:193) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Exception in thread "JavaFX Application Thread" java.util.NoSuchElementException + at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:894) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:127) + at de.upb.bluej.plus.ast.parser.ParseUtils.getTypeEntity(ParseUtils.java:111) + at de.upb.bluej.plus.ast.parser.EditorParser.getTparList(EditorParser.java:508) + at de.upb.bluej.plus.ast.parser.EditorParser.beginTypeBody(EditorParser.java:521) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeBody(JavaParser.java:824) + at de.upb.bluej.plus.ast.parser.JavaParser.parseTypeDef(JavaParser.java:811) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCUpart(JavaParser.java:658) + at de.upb.bluej.plus.ast.parser.JavaParser.parseCU(JavaParser.java:139) + at de.upb.bluej.plus.ast.parser.EditorParser.parseCU(EditorParser.java:127) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.parse(ClassInfoFrontendBlueJ.java:48) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.reparse(ClassInfoFrontendBlueJ.java:142) + at de.upb.bluej.plus.sourceedit.ClassInfoFrontendBlueJ.(ClassInfoFrontendBlueJ.java:77) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTargetPane(UmlEditor.java:128) + at de.upb.bluej.plus.umleditor2.UmlEditor.updateTarget(UmlEditor.java:230) + at de.upb.bluej.plus.umleditor2.UmlEditor$1.run(UmlEditor.java:192) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location +java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location + at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101) + at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075) + at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48) + at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66) + at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964) + at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142) + at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673) + at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location +java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location + at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101) + at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075) + at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48) + at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66) + at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964) + at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142) + at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673) + at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location +java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location + at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101) + at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075) + at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48) + at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66) + at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964) + at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142) + at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673) + at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +ExtensionWrapper.safePostGenGetMenuItem: Class=org.bluej.UMLextension.UMLExtension Exception=component must be showing on the screen to determine its location +java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location + at java.desktop/java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2101) + at java.desktop/java.awt.Component.getLocationOnScreen(Component.java:2075) + at org.bluej.UMLextension.MenuBuilder.notifyPostClassMenu(MenuBuilder.java:48) + at bluej.extmgr.ClassExtensionMenu.postMenuItem(ClassExtensionMenu.java:66) + at bluej.extensions.BlueJ.postMenuItem(BlueJ.java:964) + at bluej.extensions.ExtensionBridge.postMenuItem(ExtensionBridge.java:142) + at bluej.extmgr.ExtensionWrapper.safePostMenuItem(ExtensionWrapper.java:673) + at bluej.extmgr.FXMenuManager.lambda$menuWillBecomeVisible$5(FXMenuManager.java:196) + at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) + at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) + at java.desktop/java.awt.EventQueue$4$1.run(EventQueue.java:727) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) + at java.base/java.security.AccessController.doPrivileged(Native Method) + at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) + at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) + at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) + at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) + at java.base/java.lang.Thread.run(Thread.java:834) +Dez. 03, 2020 11:07:05 VORM. javafx.scene.CssStyleHelper calculateValue +WARNING: Could not resolve '-fx-text-background-color' while resolving lookups for '-fx-text-fill' from rule '*.label' in stylesheet jar:file:/C:/Program%20Files/BlueJ/lib/javafx/lib/javafx.controls.jar!/com/sun/javafx/scene/control/skin/modena/modena.bss +Dez. 03, 2020 11:07:16 VORM. javafx.scene.CssStyleHelper calculateValue +WARNING: Could not resolve '-fx-text-background-color' while resolving lookups for '-fx-text-fill' from rule '*.label' in stylesheet jar:file:/C:/Program%20Files/BlueJ/lib/javafx/lib/javafx.controls.jar!/com/sun/javafx/scene/control/skin/modena/modena.bss +Simple GUI Extension terminates diff --git a/Langlaufsimulator/Dokumente/bluej/bluej.properties b/Langlaufsimulator/Dokumente/bluej/bluej.properties new file mode 100644 index 0000000..404edc3 --- /dev/null +++ b/Langlaufsimulator/Dokumente/bluej/bluej.properties @@ -0,0 +1,14 @@ +#BlueJ-Eigenschaften. Einstellungen in dieser Datei haben Vorrang vor "bluej.defs" +#Thu Dec 03 11:10:42 CET 2020 +session.numeditors.stride=0 +bluej.uid=d7f88ba8-9f5a-449f-b60b-0388a539b6b8 +bluej.openPackage1=H\:\\Dokumente\\GitHub\\Langlaufsimulator\\Langlaufsimulator +bluej.editor.stride.sidebarShowing=true +bluej.startWithTextEval=false +bluej.recentProject0=H\:\\Dokumente\\GitHub\\Langlaufsimulator\\Langlaufsimulator +blackbox.uuid=15c55f30-6de2-43e6-a318-b9b25709c0b1 +bluej.editor.fontsize=13 +extensions.org.bluej.extensions.submitter.Submitter.settings.saslrealm= +bluej.terminal.y=16 +bluej.terminal.x=16 +session.numeditors.java=3 diff --git a/Langlaufsimulator/Dokumente/bluej/bluejplus.log b/Langlaufsimulator/Dokumente/bluej/bluejplus.log new file mode 100644 index 0000000..e438584 --- /dev/null +++ b/Langlaufsimulator/Dokumente/bluej/bluejplus.log @@ -0,0 +1,503 @@ +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusExtension.java:startup] Loading core version 0.8.1-SNAPSHOT +[BlueJ-Plus DEBUG JavaFX Application Thread @ DefaultBlueJPermissionHandler.java:loadPropertiesInto] Trying to load H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Dokumente\bluej\features.properties +[BlueJ-Plus DEBUG Thread-6 @ FileMonitorThread.java:run] FileMonitorThread started +[BlueJ-Plus DEBUG JavaFX Application Thread @ Provisioning.java:reload] State of provisioning is true +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module Provisioning +[BlueJ-Plus DEBUG JavaFX Application Thread @ Provisioning.java:reload] State of provisioning is true +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module Provisioning +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module Subclasses +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module Subclasses +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module UmlEditor +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module UmlEditor +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module CodeCompletion +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module CodeCompletion +[BlueJ-Plus DEBUG JavaFX Application Thread @ SnippetDefs.java:load] Snippet file does not exist. Loading defaults +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loading module Snippets +[BlueJ-Plus DEBUG JavaFX Application Thread @ SnippetDefs.java:load] Snippet file does not exist. Loading defaults +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusModuleProvider.java:add] Loaded module Snippets +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:onFrwChange] Found PkgMgrFrameWrapper for PkgMgrFrame(): Package: Project:Langlaufsimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:setupMenuBarHook] Installed MenuBar hook +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:setupObjectBenchHook] Installed ObjectBench hook +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:setupFXWindowHook] Installed FXWindow hook +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:updatePermissions] Updating permissions for PkgMgrFrame(): Package: Project:Langlaufsimulator +[BlueJ-Plus ERROR JavaFX Application Thread @ PkgMgrFrameMonitor.java:updateToolbar] Could not find bar in PkgMgrFrame(): Package: Project:Langlaufsimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:updatePermissions] Updating permissions for PkgMgrFrame(): Package: Project:Langlaufsimulator +[BlueJ-Plus ERROR JavaFX Application Thread @ PkgMgrFrameMonitor.java:updateToolbar] Could not find bar in PkgMgrFrame(): Package: Project:Langlaufsimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: List +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: List +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for List +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Queue +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Queue +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Queue +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Queue +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Queue +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: BinarySearchTree +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for BinarySearchTree +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: BinarySearchTree +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for BinarySearchTree +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for BinarySearchTree +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=316, length=11, text=Competition] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 316 327 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=402, length=9, text=newRunner] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 402 411 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=478, length=8, text=simulate] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 478 486 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ Subclasses.java:ensureSubClassesMatches] Adding custom target : ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: List$ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List$ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is List.ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is List +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List$ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is List.ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is List +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] BClass has parent. Values used instead are: Class name: List and subclass: ListNode +[BlueJ-Plus ERROR JavaFX Application Thread @ Subclasses.java:update] Class is a custom targetList$ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: List$ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List$ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is List.ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is List +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for List$ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] wrp is List.ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target is List +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] BClass has parent. Values used instead are: Class name: List and subclass: ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for List$ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJ4BClassBridge.java:toExtClass] BClass is BClass: INVALID +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .List$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\List.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] List +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken first LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2475, length=5, text=first] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken first 2475 2480 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken last LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2525, length=4, text=last] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken last 2525 2529 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken current LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2576, length=7, text=current] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken current 2576 2583 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken List LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2643, length=4, text=List] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken List 2643 2647 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isEmpty LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2921, length=7, text=isEmpty] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isEmpty 2921 2928 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken hasAccess LocatableToken [beginLine=, hiddenBefore=null, type=69, position=3229, length=9, text=hasAccess] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken hasAccess 3229 3238 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken next LocatableToken [beginLine=, hiddenBefore=null, type=69, position=3705, length=4, text=next] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken next 3705 3709 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken toFirst LocatableToken [beginLine=, hiddenBefore=null, type=69, position=3948, length=7, text=toFirst] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken toFirst 3948 3955 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken toLast LocatableToken [beginLine=, hiddenBefore=null, type=69, position=4173, length=6, text=toLast] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken toLast 4173 4179 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getContent LocatableToken [beginLine=, hiddenBefore=null, type=69, position=4581, length=10, text=getContent] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getContent 4581 4591 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setContent LocatableToken [beginLine=, hiddenBefore=null, type=69, position=5000, length=10, text=setContent] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setContent 5000 5010 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken insert LocatableToken [beginLine=, hiddenBefore=null, type=69, position=5814, length=6, text=insert] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken insert 5814 5820 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken append LocatableToken [beginLine=, hiddenBefore=null, type=69, position=7186, length=6, text=append] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken append 7186 7192 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken concat LocatableToken [beginLine=, hiddenBefore=null, type=69, position=8104, length=6, text=concat] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken concat 8104 8110 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken remove LocatableToken [beginLine=, hiddenBefore=null, type=69, position=9108, length=6, text=remove] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken remove 9108 9114 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getPrevious LocatableToken [beginLine=, hiddenBefore=null, type=69, position=10298, length=11, text=getPrevious] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getPrevious 10298 10309 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in List +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Racesimulator$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Racesimulator.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Racesimulator LocatableToken [beginLine=, hiddenBefore=null, type=69, position=323, length=13, text=Racesimulator] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Racesimulator 323 336 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .ComparableContent$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\ComparableContent.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isGreater LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1256, length=9, text=isGreater] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isGreater 1256 1265 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isEqual LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1785, length=7, text=isEqual] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isEqual 1785 1792 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isLess LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2310, length=6, text=isLess] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isLess 2310 2316 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Athlete$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Athlete.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken name LocatableToken [beginLine=, hiddenBefore=null, type=69, position=202, length=4, text=name] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken name 202 206 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken startTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=219, length=9, text=startTime] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken startTime 219 228 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken endTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=241, length=7, text=endTime] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken endTime 241 248 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Athlete LocatableToken [beginLine=, hiddenBefore=null, type=69, position=328, length=7, text=Athlete] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Athlete 328 335 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getName LocatableToken [beginLine=, hiddenBefore=null, type=69, position=399, length=7, text=getName] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getName 399 406 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getStartTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=456, length=12, text=getStartTime] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getStartTime 456 468 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getEndTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=523, length=10, text=getEndTime] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getEndTime 523 533 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getFinalTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=586, length=12, text=getFinalTime] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getFinalTime 586 598 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setStartTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=662, length=12, text=setStartTime] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setStartTime 662 674 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setEndTime LocatableToken [beginLine=, hiddenBefore=null, type=69, position=748, length=10, text=setEndTime] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setEndTime 748 758 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isGreater LocatableToken [beginLine=, hiddenBefore=null, type=69, position=830, length=9, text=isGreater] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isGreater 830 839 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isEqual LocatableToken [beginLine=, hiddenBefore=null, type=69, position=938, length=7, text=isEqual] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isEqual 938 945 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isLess LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1045, length=6, text=isLess] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isLess 1045 1051 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Queue$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Queue.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Queue +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken head LocatableToken [beginLine=, hiddenBefore=null, type=69, position=735, length=4, text=head] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken head 735 739 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken tail LocatableToken [beginLine=, hiddenBefore=null, type=69, position=760, length=4, text=tail] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken tail 760 764 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Queue LocatableToken [beginLine=, hiddenBefore=null, type=69, position=916, length=5, text=Queue] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Queue 916 921 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken isEmpty LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1170, length=7, text=isEmpty] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken isEmpty 1170 1177 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken enqueue LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1453, length=7, text=enqueue] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken enqueue 1453 1460 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken dequeue LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1833, length=7, text=dequeue] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken dequeue 1833 1840 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken front LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2269, length=5, text=front] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken front 2269 2274 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Queue +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .BinarySearchTree$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\BinarySearchTree.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in BinarySearchTree +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:updatePermissions] Updating permissions for PkgMgrFrame(): Package: Project:Langlaufsimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .List$ListNode in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\List.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] List$ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken contentObject LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1194, length=13, text=contentObject] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken contentObject 1194 1207 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken next LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1230, length=4, text=next] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken next 1230 1234 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken ListNode LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1397, length=8, text=ListNode] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken ListNode 1397 1405 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getContentObject LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1633, length=16, text=getContentObject] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getContentObject 1633 1649 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setContentObject LocatableToken [beginLine=, hiddenBefore=null, type=69, position=1837, length=16, text=setContentObject] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setContentObject 1837 1853 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken getNextNode LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2073, length=11, text=getNextNode] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken getNextNode 2073 2084 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken setNextNode LocatableToken [beginLine=, hiddenBefore=null, type=69, position=2298, length=11, text=setNextNode] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken setNextNode 2298 2309 +[BlueJ-Plus DEBUG JavaFX Application Thread @ PackageEditorWindowChangeMonitor.java:targetsSearchDeleted] Deletion swipe! +[BlueJ-Plus ERROR JavaFX Application Thread @ BlueJ4BClassBridge.java:toNativeTarget] no target for Queue +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Queue +[BlueJ-Plus ERROR JavaFX Application Thread @ SourceChangeEventEmitter.java:fireClassRemoved] Exception whilst handling event +java.lang.NullPointerException : null + at de.upb.bluej.plus.snippets.Snippets@bClassUpdate : 42 (Snippets.java) + at de.upb.bluej.plus.snippets.Snippets@classRemoved : 204 (Snippets.java) + at de.upb.bluej.extend.pkgeditor.SourceChangeEventEmitter@fireClassRemoved : 149 (SourceChangeEventEmitter.java) + at de.upb.bluej.extend.pkgeditor.PackageEditorMonitor$2@onChanged : 109 (PackageEditorMonitor.java) + at com.sun.javafx.collections.SetListenerHelper$Generic@fireValueChangedEvent : 327 (SetListenerHelper.java) + at com.sun.javafx.collections.SetListenerHelper@fireValueChangedEvent : 72 (SetListenerHelper.java) + at javafx.collections.FXCollections$SynchronizedObservableSet@lambda$new$0 : 1897 (FXCollections.java) + at javafx.collections.WeakSetChangeListener@onChanged : 88 (WeakSetChangeListener.java) + at com.sun.javafx.collections.SetListenerHelper$SingleChange@fireValueChangedEvent : 163 (SetListenerHelper.java) + at com.sun.javafx.collections.SetListenerHelper@fireValueChangedEvent : 72 (SetListenerHelper.java) + at com.sun.javafx.collections.ObservableSetWrapper@callObservers : 128 (ObservableSetWrapper.java) + at com.sun.javafx.collections.ObservableSetWrapper@access$100 : 39 (ObservableSetWrapper.java) + at com.sun.javafx.collections.ObservableSetWrapper$1@remove : 226 (ObservableSetWrapper.java) + at de.upb.bluej.extend.pkgeditor.PackageEditorWindowChangeMonitor@targetsSearchDeleted : 93 (PackageEditorWindowChangeMonitor.java) + at de.upb.bluej.extend.pkgeditor.PackageEditorWindowChangeMonitor@onChanged : 136 (PackageEditorWindowChangeMonitor.java) + at com.sun.javafx.collections.ListListenerHelper$Generic@fireValueChangedEvent : 329 (ListListenerHelper.java) + at com.sun.javafx.collections.ListListenerHelper@fireValueChangedEvent : 73 (ListListenerHelper.java) + at com.sun.javafx.collections.VetoableListDecorator@lambda$new$0 : 76 (VetoableListDecorator.java) + at com.sun.javafx.collections.ListListenerHelper$Generic@fireValueChangedEvent : 329 (ListListenerHelper.java) + at com.sun.javafx.collections.ListListenerHelper@fireValueChangedEvent : 73 (ListListenerHelper.java) + at javafx.collections.ObservableListBase@fireChange : 233 (ObservableListBase.java) + at javafx.collections.ListChangeBuilder@commit : 482 (ListChangeBuilder.java) + at javafx.collections.ListChangeBuilder@endChange : 541 (ListChangeBuilder.java) + at javafx.collections.ObservableListBase@endChange : 205 (ObservableListBase.java) + at javafx.collections.ModifiableObservableListBase@remove : 183 (ModifiableObservableListBase.java) + at com.sun.javafx.collections.VetoableListDecorator@remove : 332 (VetoableListDecorator.java) + at com.sun.javafx.collections.VetoableListDecorator@remove : 221 (VetoableListDecorator.java) + at bluej.pkgmgr.PackageEditor@graphChanged : 434 (PackageEditor.java) + at bluej.pkgmgr.Package@fireChangedEvent : 630 (Package.java) + at bluej.pkgmgr.Package@removeTarget : 1845 (Package.java) + at bluej.pkgmgr.target.ClassTarget@remove : 2581 (ClassTarget.java) + at bluej.pkgmgr.target.ClassTarget$RemoveAction@actionPerformed : 2282 (ClassTarget.java) + at bluej.pkgmgr.target.ClassTarget$RemoveAction@lambda$new$0 : 2272 (ClassTarget.java) + at com.sun.javafx.event.CompositeEventHandler@dispatchBubblingEvent : 86 (CompositeEventHandler.java) + at com.sun.javafx.event.EventHandlerManager@dispatchBubblingEvent : 238 (EventHandlerManager.java) + at com.sun.javafx.event.EventHandlerManager@dispatchBubblingEvent : 191 (EventHandlerManager.java) + at com.sun.javafx.event.BasicEventDispatcher@dispatchEvent : 58 (BasicEventDispatcher.java) + at com.sun.javafx.event.EventDispatchChainImpl@dispatchEvent : 114 (EventDispatchChainImpl.java) + at com.sun.javafx.event.EventUtil@fireEventImpl : 74 (EventUtil.java) + at com.sun.javafx.event.EventUtil@fireEvent : 49 (EventUtil.java) + at javafx.event.Event@fireEvent : 198 (Event.java) + at javafx.scene.control.MenuItem@fire : 465 (MenuItem.java) + at com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer@doSelect : 1380 (ContextMenuContent.java) + at com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer@lambda$createChildren$12 : 1333 (ContextMenuContent.java) + at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord@handleBubblingEvent : 218 (CompositeEventHandler.java) + at com.sun.javafx.event.CompositeEventHandler@dispatchBubblingEvent : 80 (CompositeEventHandler.java) + at com.sun.javafx.event.EventHandlerManager@dispatchBubblingEvent : 238 (EventHandlerManager.java) + at com.sun.javafx.event.EventHandlerManager@dispatchBubblingEvent : 191 (EventHandlerManager.java) + at com.sun.javafx.event.CompositeEventDispatcher@dispatchBubblingEvent : 59 (CompositeEventDispatcher.java) + at com.sun.javafx.event.BasicEventDispatcher@dispatchEvent : 58 (BasicEventDispatcher.java) + at com.sun.javafx.event.EventDispatchChainImpl@dispatchEvent : 114 (EventDispatchChainImpl.java) + at com.sun.javafx.event.BasicEventDispatcher@dispatchEvent : 56 (BasicEventDispatcher.java) + at com.sun.javafx.event.EventDispatchChainImpl@dispatchEvent : 114 (EventDispatchChainImpl.java) + at com.sun.javafx.event.BasicEventDispatcher@dispatchEvent : 56 (BasicEventDispatcher.java) + at com.sun.javafx.event.EventDispatchChainImpl@dispatchEvent : 114 (EventDispatchChainImpl.java) + at com.sun.javafx.event.BasicEventDispatcher@dispatchEvent : 56 (BasicEventDispatcher.java) + at com.sun.javafx.event.EventDispatchChainImpl@dispatchEvent : 114 (EventDispatchChainImpl.java) + at com.sun.javafx.event.EventUtil@fireEventImpl : 74 (EventUtil.java) + at com.sun.javafx.event.EventUtil@fireEvent : 54 (EventUtil.java) + at javafx.event.Event@fireEvent : 198 (Event.java) + at javafx.scene.Scene$MouseHandler@process : 3851 (Scene.java) + at javafx.scene.Scene$MouseHandler@access$1200 : 3579 (Scene.java) + at javafx.scene.Scene@processMouseEvent : 1849 (Scene.java) + at javafx.scene.Scene$ScenePeerListener@mouseEvent : 2588 (Scene.java) + at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification@run : 397 (GlassViewEventHandler.java) + at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification@run : 295 (GlassViewEventHandler.java) + at java.security.AccessController@doPrivileged : -2 (AccessController.java) + at com.sun.javafx.tk.quantum.GlassViewEventHandler@lambda$handleMouseEvent$2 : 434 (GlassViewEventHandler.java) + at com.sun.javafx.tk.quantum.QuantumToolkit@runWithoutRenderLock : 390 (QuantumToolkit.java) + at com.sun.javafx.tk.quantum.GlassViewEventHandler@handleMouseEvent : 433 (GlassViewEventHandler.java) + at com.sun.glass.ui.View@handleMouseEvent : 556 (View.java) + at com.sun.glass.ui.View@notifyMouse : 942 (View.java) + at com.sun.glass.ui.win.WinApplication@_runLoop : -2 (WinApplication.java) + at com.sun.glass.ui.win.WinApplication@lambda$runLoop$3 : 174 (WinApplication.java) + at java.lang.Thread@run : 834 (Thread.java) + +[BlueJ-Plus DEBUG JavaFX Application Thread @ PackageEditorWindowChangeMonitor.java:targetsSearchDeleted] Deletion swipe! +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Queue +[BlueJ-Plus ERROR JavaFX Application Thread @ SourceChangeEventEmitter.java:fireClassRemoved] Exception whilst handling event +java.lang.NullPointerException : null + at de.upb.bluej.plus.snippets.Snippets@bClassUpdate : 42 (Snippets.java) + at de.upb.bluej.plus.snippets.Snippets@classRemoved : 204 (Snippets.java) + at de.upb.bluej.extend.pkgeditor.SourceChangeEventEmitter@fireClassRemoved : 149 (SourceChangeEventEmitter.java) + at de.upb.bluej.extend.pkgeditor.FileMonitorThread@lambda$0 : 289 (FileMonitorThread.java) + at com.sun.javafx.application.PlatformImpl@lambda$runLater$10 : 428 (PlatformImpl.java) + at java.security.AccessController@doPrivileged : -2 (AccessController.java) + at com.sun.javafx.application.PlatformImpl@lambda$runLater$11 : 427 (PlatformImpl.java) + at com.sun.glass.ui.InvokeLaterDispatcher$Future@run : 96 (InvokeLaterDispatcher.java) + at com.sun.glass.ui.win.WinApplication@_runLoop : -2 (WinApplication.java) + at com.sun.glass.ui.win.WinApplication@lambda$runLoop$3 : 174 (WinApplication.java) + at java.lang.Thread@run : 834 (Thread.java) + +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=316, length=11, text=Competition] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 316 327 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=402, length=9, text=newRunner] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 402 411 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=505, length=8, text=simulate] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 505 513 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=316, length=11, text=Competition] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 316 327 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=402, length=9, text=newRunner] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 402 411 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=526, length=8, text=simulate] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 526 534 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=316, length=11, text=Competition] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 316 327 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=402, length=9, text=newRunner] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 402 411 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=526, length=8, text=simulate] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 526 534 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=244, length=11, text=Competition] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 244 255 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=330, length=9, text=newRunner] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 330 339 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=454, length=8, text=simulate] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 454 462 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken runners LocatableToken [beginLine=, hiddenBefore=null, type=69, position=187, length=7, text=runners] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken runners 187 194 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=278, length=11, text=Competition] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 278 289 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=364, length=9, text=newRunner] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 364 373 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=488, length=8, text=simulate] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 488 496 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken runners LocatableToken [beginLine=, hiddenBefore=null, type=69, position=187, length=7, text=runners] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken runners 187 194 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=278, length=11, text=Competition] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 278 289 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=364, length=9, text=newRunner] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 364 373 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=491, length=8, text=simulate] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 491 499 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken runners LocatableToken [beginLine=, hiddenBefore=null, type=69, position=187, length=7, text=runners] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken runners 187 194 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=278, length=11, text=Competition] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 278 289 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=364, length=9, text=newRunner] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 364 373 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=500, length=8, text=simulate] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 500 508 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ SafeBClass.java:fromBClass] Converting BClass. Package: , Class name: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Parent target called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgEditorTargetExtend.java:getParentTarget] Not a custom target BClass: Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:getAllEntities] +[BlueJ-Plus DEBUG JavaFX Application Thread @ UmlEditor.java:updateTargetPane] Trying to parse for [SafeBClass: .Competition$null in H:\Dokumente\GitHub\Langlaufsimulator\Langlaufsimulator\Competition.java] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken runners LocatableToken [beginLine=, hiddenBefore=null, type=69, position=187, length=7, text=runners] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken runners 187 194 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken Competition LocatableToken [beginLine=, hiddenBefore=null, type=69, position=278, length=11, text=Competition] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken Competition 278 289 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken newRunner LocatableToken [beginLine=, hiddenBefore=null, type=69, position=364, length=9, text=newRunner] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken newRunner 364 373 +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] nameToken simulate LocatableToken [beginLine=, hiddenBefore=null, type=69, position=518, length=8, text=simulate] +[BlueJ-Plus DEBUG JavaFX Application Thread @ ClassInfoFrontendBlueJ.java:reparse] identToken simulate 518 526 +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : exists in Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for BinarySearchTree +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for List +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdate] called for List$ListNode +[BlueJ-Plus DEBUG JavaFX Application Thread @ PkgMgrFrameMonitor.java:onFrwChange] Removed Wrapper for PkgMgrFrame(): empty +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in BinarySearchTree +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in ComparableContent +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in Competition +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in Racesimulator +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in Athlete +[BlueJ-Plus DEBUG JavaFX Application Thread @ Snippets.java:bClassUpdateStateSynchronized] Button state : absent in List +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusExtension.java:terminate] Terminating plugin +[BlueJ-Plus DEBUG JavaFX Application Thread @ BlueJExtend.java:teardown] terminating PluginBase +[BlueJ-Plus DEBUG JavaFX Application Thread @ PlusExtension.java:terminate] Plugin terminated +[BlueJ-Plus ERROR Thread-6 @ FileMonitorThread.java:run] java.lang.InterruptedException +[BlueJ-Plus DEBUG Thread-6 @ FileMonitorThread.java:run] FileMonitorThread terminated diff --git a/Langlaufsimulator/Dokumente/bluej/import-cache.xml b/Langlaufsimulator/Dokumente/bluej/import-cache.xml new file mode 100644 index 0000000..519e6d7 --- /dev/null +++ b/Langlaufsimulator/Dokumente/bluej/import-cache.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Langlaufsimulator/Dokumente/bluej/moe.properties b/Langlaufsimulator/Dokumente/bluej/moe.properties new file mode 100644 index 0000000..54251e8 --- /dev/null +++ b/Langlaufsimulator/Dokumente/bluej/moe.properties @@ -0,0 +1,2 @@ +#Moe-Editor-Eigenschaften. Einstellungen in dieser Datei haben Vorrang vor "moe.defs" +#Thu Dec 03 11:10:42 CET 2020 diff --git a/Langlaufsimulator/List$ListNode.class b/Langlaufsimulator/List$ListNode.class new file mode 100644 index 0000000..af1b608 Binary files /dev/null and b/Langlaufsimulator/List$ListNode.class differ diff --git a/Langlaufsimulator/List.class b/Langlaufsimulator/List.class new file mode 100644 index 0000000..bd63d48 Binary files /dev/null and b/Langlaufsimulator/List.class differ diff --git a/Langlaufsimulator/List.ctxt b/Langlaufsimulator/List.ctxt new file mode 100644 index 0000000..3bad4ea --- /dev/null +++ b/Langlaufsimulator/List.ctxt @@ -0,0 +1,43 @@ +#BlueJ class context +comment0.target=List +comment0.text=\r\n\

\r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\

\r\n\

\r\n\ Generische\ Klasse\ List\r\n\

\r\n\

\r\n\ Objekt\ der\ generischen\ Klasse\ List\ verwalten\ beliebig\ viele\ linear\r\n\ angeordnete\ Objekte\ vom\ Typ\ ContentType.\ Auf\ hoechstens\ ein\ Listenobjekt,\r\n\ aktuellesObjekt\ genannt,\ kann\ jeweils\ zugegriffen\ werden.\r\n\ Wenn\ eine\ Liste\ leer\ ist,\ vollstaendig\ durchlaufen\ wurde\ oder\ das\ aktuelle\r\n\ Objekt\ am\ Ende\ der\ Liste\ geloescht\ wurde,\ gibt\ es\ kein\ aktuelles\ Objekt.\r\n\ Das\ erste\ oder\ das\ letzte\ Objekt\ einer\ Liste\ koennen\ durch\ einen\ Auftrag\ zum\r\n\ aktuellen\ Objekt\ gemacht\ werden.\ Ausserdem\ kann\ das\ dem\ aktuellen\ Objekt\r\n\ folgende\ Listenobjekt\ zum\ neuen\ aktuellen\ Objekt\ werden.\ \r\n\ Das\ aktuelle\ Objekt\ kann\ gelesen,\ veraendert\ oder\ geloescht\ werden.\ Ausserdem\r\n\ kann\ vor\ dem\ aktuellen\ Objekt\ ein\ Listenobjekt\ eingefuegt\ werden.\r\n\

\r\n\ \r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ Generisch_06\ 2015-10-25\r\n +comment1.params= +comment1.target=List() +comment1.text=\r\n\ Eine\ leere\ Liste\ wird\ erzeugt.\r\n +comment10.params=pContent +comment10.target=void\ append(java.lang.Object) +comment10.text=\r\n\ Falls\ pContent\ gleich\ null\ ist,\ geschieht\ nichts.\r\n\ Ansonsten\ wird\ ein\ neues\ Objekt\ pContent\ am\ Ende\ der\ Liste\ eingefuegt.\r\n\ Das\ aktuelle\ Objekt\ bleibt\ unveraendert.\ \r\n\ Wenn\ die\ Liste\ leer\ ist,\ wird\ das\ Objekt\ pContent\ in\ die\ Liste\ eingefuegt\r\n\ und\ es\ gibt\ weiterhin\ kein\ aktuelles\ Objekt\ (hasAccess()\ \=\=\ false).\r\n\ \r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ \ \ das\ anzuhaengende\ Objekt\ vom\ Typ\ ContentType\r\n +comment11.params=pList +comment11.target=void\ concat(List) +comment11.text=\r\n\ Falls\ es\ sich\ bei\ der\ Liste\ und\ pList\ um\ dasselbe\ Objekt\ handelt,\r\n\ pList\ null\ oder\ eine\ leere\ Liste\ ist,\ geschieht\ nichts.\r\n\ Ansonsten\ wird\ die\ Liste\ pList\ an\ die\ aktuelle\ Liste\ angehaengt.\r\n\ Anschliessend\ wird\ pList\ eine\ leere\ Liste.\ Das\ aktuelle\ Objekt\ bleibt\r\n\ unveraendert.\ Insbesondere\ bleibt\ hasAccess\ identisch.\r\n\ \r\n\ @param\ pList\r\n\ \ \ \ \ \ \ \ \ \ \ \ die\ am\ Ende\ anzuhaengende\ Liste\ vom\ Typ\ List\r\n +comment12.params= +comment12.target=void\ remove() +comment12.text=\r\n\ Wenn\ die\ Liste\ leer\ ist\ oder\ es\ kein\ aktuelles\ Objekt\ gibt\ (hasAccess()\r\n\ \=\=\ false),\ geschieht\ nichts.\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true),\ wird\ das\r\n\ aktuelle\ Objekt\ geloescht\ und\ das\ Objekt\ hinter\ dem\ geloeschten\ Objekt\r\n\ wird\ zum\ aktuellen\ Objekt.\ \r\n\ Wird\ das\ Objekt,\ das\ am\ Ende\ der\ Liste\ steht,\ geloescht,\ gibt\ es\ kein\r\n\ aktuelles\ Objekt\ mehr.\r\n +comment13.params=pNode +comment13.target=List.ListNode\ getPrevious(List.ListNode) +comment13.text=\r\n\ Liefert\ den\ Vorgaengerknoten\ des\ Knotens\ pNode.\ Ist\ die\ Liste\ leer,\ pNode\r\n\ \=\=\ null,\ pNode\ nicht\ in\ der\ Liste\ oder\ pNode\ der\ erste\ Knoten\ der\ Liste,\r\n\ wird\ null\ zurueckgegeben.\r\n\r\n\ @param\ pNode\r\n\ \ \ \ \ \ \ \ \ der\ Knoten,\ dessen\ Vorgaenger\ zurueckgegeben\ werden\ soll\r\n\ @return\ der\ Vorgaenger\ des\ Knotens\ pNode\ oder\ null,\ falls\ die\ Liste\ leer\ ist,\r\n\ \ \ \ \ \ \ \ \ pNode\ \=\=\ null\ ist,\ pNode\ nicht\ in\ der\ Liste\ ist\ oder\ pNode\ der\ erste\ Knoten\r\n\ \ \ \ \ \ \ \ \ der\ Liste\ ist\r\n +comment2.params= +comment2.target=boolean\ isEmpty() +comment2.text=\r\n\ Die\ Anfrage\ liefert\ den\ Wert\ true,\ wenn\ die\ Liste\ keine\ Objekte\ enthaelt,\r\n\ sonst\ liefert\ sie\ den\ Wert\ false.\r\n\ \r\n\ @return\ true,\ wenn\ die\ Liste\ leer\ ist,\ sonst\ false\r\n +comment3.params= +comment3.target=boolean\ hasAccess() +comment3.text=\r\n\ Die\ Anfrage\ liefert\ den\ Wert\ true,\ wenn\ es\ ein\ aktuelles\ Objekt\ gibt,\r\n\ sonst\ liefert\ sie\ den\ Wert\ false.\r\n\ \r\n\ @return\ true,\ falls\ Zugriff\ moeglich,\ sonst\ false\r\n +comment4.params= +comment4.target=void\ next() +comment4.text=\r\n\ Falls\ die\ Liste\ nicht\ leer\ ist,\ es\ ein\ aktuelles\ Objekt\ gibt\ und\ dieses\r\n\ nicht\ das\ letzte\ Objekt\ der\ Liste\ ist,\ wird\ das\ dem\ aktuellen\ Objekt\ in\r\n\ der\ Liste\ folgende\ Objekt\ zum\ aktuellen\ Objekt,\ andernfalls\ gibt\ es\ nach\r\n\ Ausfuehrung\ des\ Auftrags\ kein\ aktuelles\ Objekt,\ d.h.\ hasAccess()\ liefert\r\n\ den\ Wert\ false.\r\n +comment5.params= +comment5.target=void\ toFirst() +comment5.text=\r\n\ Falls\ die\ Liste\ nicht\ leer\ ist,\ wird\ das\ erste\ Objekt\ der\ Liste\ aktuelles\r\n\ Objekt.\ Ist\ die\ Liste\ leer,\ geschieht\ nichts.\r\n +comment6.params= +comment6.target=void\ toLast() +comment6.text=\r\n\ Falls\ die\ Liste\ nicht\ leer\ ist,\ wird\ das\ letzte\ Objekt\ der\ Liste\r\n\ aktuelles\ Objekt.\ Ist\ die\ Liste\ leer,\ geschieht\ nichts.\r\n +comment7.params= +comment7.target=java.lang.Object\ getContent() +comment7.text=\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true),\ wird\ das\r\n\ aktuelle\ Objekt\ zurueckgegeben,\ andernfalls\ (hasAccess()\ \=\=\ false)\ gibt\r\n\ die\ Anfrage\ den\ Wert\ null\ zurueck.\r\n\ \r\n\ @return\ das\ aktuelle\ Objekt\ (vom\ Typ\ ContentType)\ oder\ null,\ wenn\ es\r\n\ \ \ \ \ \ \ \ \ kein\ aktuelles\ Objekt\ gibt\r\n +comment8.params=pContent +comment8.target=void\ setContent(java.lang.Object) +comment8.text=\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true)\ und\ pContent\r\n\ ungleich\ null\ ist,\ wird\ das\ aktuelle\ Objekt\ durch\ pContent\ ersetzt.\ Sonst\r\n\ geschieht\ nichts.\r\n\ \r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ \ \ das\ zu\ schreibende\ Objekt\ vom\ Typ\ ContentType\r\n +comment9.params=pContent +comment9.target=void\ insert(java.lang.Object) +comment9.text=\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true),\ wird\ ein\ neues\r\n\ Objekt\ vor\ dem\ aktuellen\ Objekt\ in\ die\ Liste\ eingefuegt.\ Das\ aktuelle\r\n\ Objekt\ bleibt\ unveraendert.\ \r\n\ Wenn\ die\ Liste\ leer\ ist,\ wird\ pContent\ in\ die\ Liste\ eingefuegt\ und\ es\r\n\ gibt\ weiterhin\ kein\ aktuelles\ Objekt\ (hasAccess()\ \=\=\ false).\ \r\n\ Falls\ es\ kein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ false)\ und\ die\ Liste\r\n\ nicht\ leer\ ist\ oder\ pContent\ gleich\ null\ ist,\ geschieht\ nichts.\r\n\ \r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ \ \ das\ einzufuegende\ Objekt\ vom\ Typ\ ContentType\r\n +numComments=14 diff --git a/Langlaufsimulator/List.java b/Langlaufsimulator/List.java new file mode 100644 index 0000000..8c82b92 --- /dev/null +++ b/Langlaufsimulator/List.java @@ -0,0 +1,345 @@ + /** + *

+ * Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018 + *

+ *

+ * Generische Klasse List + *

+ *

+ * Objekt der generischen Klasse List verwalten beliebig viele linear + * angeordnete Objekte vom Typ ContentType. Auf hoechstens ein Listenobjekt, + * aktuellesObjekt genannt, kann jeweils zugegriffen werden.
+ * Wenn eine Liste leer ist, vollstaendig durchlaufen wurde oder das aktuelle + * Objekt am Ende der Liste geloescht wurde, gibt es kein aktuelles Objekt.
+ * Das erste oder das letzte Objekt einer Liste koennen durch einen Auftrag zum + * aktuellen Objekt gemacht werden. Ausserdem kann das dem aktuellen Objekt + * folgende Listenobjekt zum neuen aktuellen Objekt werden.
+ * Das aktuelle Objekt kann gelesen, veraendert oder geloescht werden. Ausserdem + * kann vor dem aktuellen Objekt ein Listenobjekt eingefuegt werden. + *

+ * + * @author Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule + * @version Generisch_06 2015-10-25 + */ +public class List { + + /* --------- Anfang der privaten inneren Klasse -------------- */ + + private class ListNode { + + private ContentType contentObject; + private ListNode next; + + /** + * Ein neues Objekt wird erschaffen. Der Verweis ist leer. + * + * @param pContent das Inhaltsobjekt vom Typ ContentType + */ + private ListNode(ContentType pContent) { + contentObject = pContent; + next = null; + } + + /** + * Der Inhalt des Knotens wird zurueckgeliefert. + * + * @return das Inhaltsobjekt des Knotens + */ + public ContentType getContentObject() { + return contentObject; + } + + /** + * Der Inhalt dieses Kontens wird gesetzt. + * + * @param pContent das Inhaltsobjekt vom Typ ContentType + */ + public void setContentObject(ContentType pContent) { + contentObject = pContent; + } + + /** + * Der Nachfolgeknoten wird zurueckgeliefert. + * + * @return das Objekt, auf das der aktuelle Verweis zeigt + */ + public ListNode getNextNode() { + return this.next; + } + + /** + * Der Verweis wird auf das Objekt, das als Parameter uebergeben + * wird, gesetzt. + * + * @param pNext der Nachfolger des Knotens + */ + public void setNextNode(ListNode pNext) { + this.next = pNext; + } + + } + + /* ----------- Ende der privaten inneren Klasse -------------- */ + + // erstes Element der Liste + ListNode first; + + // letztes Element der Liste + ListNode last; + + // aktuelles Element der Liste + ListNode current; + + /** + * Eine leere Liste wird erzeugt. + */ + public List() { + first = null; + last = null; + current = null; + } + + /** + * Die Anfrage liefert den Wert true, wenn die Liste keine Objekte enthaelt, + * sonst liefert sie den Wert false. + * + * @return true, wenn die Liste leer ist, sonst false + */ + public boolean isEmpty() { + // Die Liste ist leer, wenn es kein erstes Element gibt. + return first == null; + } + + /** + * Die Anfrage liefert den Wert true, wenn es ein aktuelles Objekt gibt, + * sonst liefert sie den Wert false. + * + * @return true, falls Zugriff moeglich, sonst false + */ + public boolean hasAccess() { + // Es gibt keinen Zugriff, wenn current auf kein Element verweist. + return current != null; + } + + /** + * Falls die Liste nicht leer ist, es ein aktuelles Objekt gibt und dieses + * nicht das letzte Objekt der Liste ist, wird das dem aktuellen Objekt in + * der Liste folgende Objekt zum aktuellen Objekt, andernfalls gibt es nach + * Ausfuehrung des Auftrags kein aktuelles Objekt, d.h. hasAccess() liefert + * den Wert false. + */ + public void next() { + if (this.hasAccess()) { + current = current.getNextNode(); + } + } + + /** + * Falls die Liste nicht leer ist, wird das erste Objekt der Liste aktuelles + * Objekt. Ist die Liste leer, geschieht nichts. + */ + public void toFirst() { + if (!isEmpty()) { + current = first; + } + } + + /** + * Falls die Liste nicht leer ist, wird das letzte Objekt der Liste + * aktuelles Objekt. Ist die Liste leer, geschieht nichts. + */ + public void toLast() { + if (!isEmpty()) { + current = last; + } + } + + /** + * Falls es ein aktuelles Objekt gibt (hasAccess() == true), wird das + * aktuelle Objekt zurueckgegeben, andernfalls (hasAccess() == false) gibt + * die Anfrage den Wert null zurueck. + * + * @return das aktuelle Objekt (vom Typ ContentType) oder null, wenn es + * kein aktuelles Objekt gibt + */ + public ContentType getContent() { + if (this.hasAccess()) { + return current.getContentObject(); + } else { + return null; + } + } + + /** + * Falls es ein aktuelles Objekt gibt (hasAccess() == true) und pContent + * ungleich null ist, wird das aktuelle Objekt durch pContent ersetzt. Sonst + * geschieht nichts. + * + * @param pContent + * das zu schreibende Objekt vom Typ ContentType + */ + public void setContent(ContentType pContent) { + // Nichts tun, wenn es keinen Inhalt oder kein aktuelles Element gibt. + if (pContent != null && this.hasAccess()) { + current.setContentObject(pContent); + } + } + + /** + * Falls es ein aktuelles Objekt gibt (hasAccess() == true), wird ein neues + * Objekt vor dem aktuellen Objekt in die Liste eingefuegt. Das aktuelle + * Objekt bleibt unveraendert.
+ * Wenn die Liste leer ist, wird pContent in die Liste eingefuegt und es + * gibt weiterhin kein aktuelles Objekt (hasAccess() == false).
+ * Falls es kein aktuelles Objekt gibt (hasAccess() == false) und die Liste + * nicht leer ist oder pContent gleich null ist, geschieht nichts. + * + * @param pContent + * das einzufuegende Objekt vom Typ ContentType + */ + public void insert(ContentType pContent) { + if (pContent != null) { // Nichts tun, wenn es keinen Inhalt gibt. + if (this.hasAccess()) { // Fall: Es gibt ein aktuelles Element. + + // Neuen Knoten erstellen. + ListNode newNode = new ListNode(pContent); + + if (current != first) { // Fall: Nicht an erster Stelle einfuegen. + ListNode previous = this.getPrevious(current); + newNode.setNextNode(previous.getNextNode()); + previous.setNextNode(newNode); + } else { // Fall: An erster Stelle einfuegen. + newNode.setNextNode(first); + first = newNode; + } + + } else { //Fall: Es gibt kein aktuelles Element. + + if (this.isEmpty()) { // Fall: In leere Liste einfuegen. + + // Neuen Knoten erstellen. + ListNode newNode = new ListNode(pContent); + + first = newNode; + last = newNode; + } + + } + } + } + + /** + * Falls pContent gleich null ist, geschieht nichts.
+ * Ansonsten wird ein neues Objekt pContent am Ende der Liste eingefuegt. + * Das aktuelle Objekt bleibt unveraendert.
+ * Wenn die Liste leer ist, wird das Objekt pContent in die Liste eingefuegt + * und es gibt weiterhin kein aktuelles Objekt (hasAccess() == false). + * + * @param pContent + * das anzuhaengende Objekt vom Typ ContentType + */ + public void append(ContentType pContent) { + if (pContent != null) { // Nichts tun, wenn es keine Inhalt gibt. + + if (this.isEmpty()) { // Fall: An leere Liste anfuegen. + this.insert(pContent); + } else { // Fall: An nicht-leere Liste anfuegen. + + // Neuen Knoten erstellen. + ListNode newNode = new ListNode(pContent); + + last.setNextNode(newNode); + last = newNode; // Letzten Knoten aktualisieren. + } + + } + } + + /** + * Falls es sich bei der Liste und pList um dasselbe Objekt handelt, + * pList null oder eine leere Liste ist, geschieht nichts.
+ * Ansonsten wird die Liste pList an die aktuelle Liste angehaengt. + * Anschliessend wird pList eine leere Liste. Das aktuelle Objekt bleibt + * unveraendert. Insbesondere bleibt hasAccess identisch. + * + * @param pList + * die am Ende anzuhaengende Liste vom Typ List + */ + public void concat(List pList) { + if (pList != this && pList != null && !pList.isEmpty()) { // Nichts tun, + // wenn pList und this identisch, pList leer oder nicht existent. + + if (this.isEmpty()) { // Fall: An leere Liste anfuegen. + this.first = pList.first; + this.last = pList.last; + } else { // Fall: An nicht-leere Liste anfuegen. + this.last.setNextNode(pList.first); + this.last = pList.last; + } + + // Liste pList loeschen. + pList.first = null; + pList.last = null; + pList.current = null; + } + } + + /** + * Wenn die Liste leer ist oder es kein aktuelles Objekt gibt (hasAccess() + * == false), geschieht nichts.
+ * Falls es ein aktuelles Objekt gibt (hasAccess() == true), wird das + * aktuelle Objekt geloescht und das Objekt hinter dem geloeschten Objekt + * wird zum aktuellen Objekt.
+ * Wird das Objekt, das am Ende der Liste steht, geloescht, gibt es kein + * aktuelles Objekt mehr. + */ + public void remove() { + // Nichts tun, wenn es kein aktuelle Element gibt oder die Liste leer ist. + if (this.hasAccess() && !this.isEmpty()) { + + if (current == first) { + first = first.getNextNode(); + } else { + ListNode previous = this.getPrevious(current); + if (current == last) { + last = previous; + } + previous.setNextNode(current.getNextNode()); + } + + ListNode temp = current.getNextNode(); + current.setContentObject(null); + current.setNextNode(null); + current = temp; + + //Beim loeschen des letzten Elements last auf null setzen. + if (this.isEmpty()) { + last = null; + } + } + } + + /** + * Liefert den Vorgaengerknoten des Knotens pNode. Ist die Liste leer, pNode + * == null, pNode nicht in der Liste oder pNode der erste Knoten der Liste, + * wird null zurueckgegeben. + * + * @param pNode + * der Knoten, dessen Vorgaenger zurueckgegeben werden soll + * @return der Vorgaenger des Knotens pNode oder null, falls die Liste leer ist, + * pNode == null ist, pNode nicht in der Liste ist oder pNode der erste Knoten + * der Liste ist + */ + private ListNode getPrevious(ListNode pNode) { + if (pNode != null && pNode != first && !this.isEmpty()) { + ListNode temp = first; + while (temp != null && temp.getNextNode() != pNode) { + temp = temp.getNextNode(); + } + return temp; + } else { + return null; + } + } + +} diff --git a/Langlaufsimulator/README.TXT b/Langlaufsimulator/README.TXT new file mode 100644 index 0000000..0ad193f --- /dev/null +++ b/Langlaufsimulator/README.TXT @@ -0,0 +1,14 @@ +------------------------------------------------------------------------ +Dies ist die README-Datei des Projekts. Hier sollten Sie Ihr Projekt +beschreiben. +Erzählen Sie dem Leser (jemand, der nichts über dieses Projekt weiss), +alles, was er/sie wissen muss. Üblicherweise sollte der Kommentar +zumindest die folgenden Angaben umfassen: +------------------------------------------------------------------------ + +PROJEKTBEZEICHNUNG: +PROJEKTZWECK: +VERSION oder DATUM: +WIE IST DAS PROJEKT ZU STARTEN: +AUTOR(EN): +BENUTZERHINWEISE: diff --git a/Langlaufsimulator/Racesimulator.class b/Langlaufsimulator/Racesimulator.class new file mode 100644 index 0000000..373cb1c Binary files /dev/null and b/Langlaufsimulator/Racesimulator.class differ diff --git a/Langlaufsimulator/Racesimulator.ctxt b/Langlaufsimulator/Racesimulator.ctxt new file mode 100644 index 0000000..debc943 --- /dev/null +++ b/Langlaufsimulator/Racesimulator.ctxt @@ -0,0 +1,7 @@ +#BlueJ class context +comment0.target=Racesimulator +comment0.text=\r\n\ Beschreiben\ Sie\ hier\ die\ Klasse\ Racesimulator.\r\n\ \r\n\ @author\ (Ihr\ Name)\ \r\n\ @version\ (eine\ Versionsnummer\ oder\ ein\ Datum)\r\n +comment1.params= +comment1.target=Racesimulator() +comment1.text=\r\n\ Konstruktor\ f\u00FCr\ Objekte\ der\ Klasse\ Racesimulator\r\n +numComments=2 diff --git a/Langlaufsimulator/Racesimulator.java b/Langlaufsimulator/Racesimulator.java new file mode 100644 index 0000000..1cc9823 --- /dev/null +++ b/Langlaufsimulator/Racesimulator.java @@ -0,0 +1,25 @@ + + +/** + * Beschreiben Sie hier die Klasse Racesimulator. + * + * @author (Ihr Name) + * @version (eine Versionsnummer oder ein Datum) + */ +public class Racesimulator { + + // Attribute + // Implementieren sie hier die Attribute der Klasse + + /** + * Konstruktor für Objekte der Klasse Racesimulator + */ + public Racesimulator() { + // ggf. Instanzvariable initialisieren + } + + // public Athlete simulate(Athlete pAthlete){ + // Random + // } + +} diff --git a/Langlaufsimulator/package.bluej b/Langlaufsimulator/package.bluej new file mode 100644 index 0000000..0a19069 --- /dev/null +++ b/Langlaufsimulator/package.bluej @@ -0,0 +1,83 @@ +#BlueJ package file +dependency1.from=BinarySearchTree +dependency1.to=ComparableContent +dependency1.type=UsesDependency +dependency2.from=Competition +dependency2.to=List +dependency2.type=UsesDependency +dependency3.from=Competition +dependency3.to=Athlete +dependency3.type=UsesDependency +editor.fx.0.height=738 +editor.fx.0.width=816 +editor.fx.0.x=232 +editor.fx.0.y=82 +objectbench.height=138 +objectbench.width=1256 +package.divider.horizontal=0.6 +package.divider.vertical=0.8390677025527192 +package.editor.height=749 +package.editor.width=1132 +package.editor.x=0 +package.editor.y=0 +package.frame.height=1000 +package.frame.width=1296 +package.numDependencies=3 +package.numTargets=7 +package.showExtends=true +package.showUses=true +project.charset=UTF-8 +readme.height=58 +readme.name=@README +readme.width=47 +readme.x=10 +readme.y=10 +target1.height=50 +target1.name=Competition +target1.showInterface=false +target1.type=ClassTarget +target1.width=100 +target1.x=540 +target1.y=320 +target2.height=50 +target2.name=List$ListNode +target2.showInterface=false +target2.type=SubTargetClassRole +target2.width=200 +target2.x=250 +target2.y=210 +target3.height=50 +target3.name=List +target3.showInterface=false +target3.type=ClassTarget +target3.width=150 +target3.x=60 +target3.y=210 +target4.height=50 +target4.name=Racesimulator +target4.showInterface=false +target4.type=ClassTarget +target4.width=110 +target4.x=540 +target4.y=200 +target5.height=50 +target5.name=ComparableContent +target5.showInterface=false +target5.type=InterfaceTarget +target5.width=250 +target5.x=760 +target5.y=110 +target6.height=110 +target6.name=Athlete +target6.showInterface=false +target6.type=ClassTarget +target6.width=250 +target6.x=760 +target6.y=340 +target7.height=50 +target7.name=BinarySearchTree +target7.showInterface=false +target7.type=ClassTarget +target7.width=230 +target7.x=70 +target7.y=10