Mehrfachdefinitionen von Event-Handlern toleriert
Informationen
- Kategorien: Kernel | Klassenformeln
- Version: 21.0.0.11226
- Veröffentlichungsdatum: Samstag, 12. November 2016
- Entwickler: Fischer
- Benötigt Datenbankänderung: Nein
- Betreff: Mehrfachdefinitionen von Event-Handlern werden als Warnung und nicht als Fehler gemeldet.
Beschreibung
Problem: Es existieren Projekte, bei denen identische Event-Handler (fälschlicherweise) mehrfach definiert sind. Diese bisher laufende Systeme würden nach einem Binäry-Update ohne Korrektur der Mehrfachdefinitionen nicht mehr funktionieren.
Ursache: Mehrfachdefinitionen von Event-Handlern wurden vor Revision 9018 ohne Warnung oder Fehlermeldung ignoriert.
Mehrfachdefinitionen von Funktionen führten dagegen schon immer zu einem Kompilier-Fehler.
Das Abbilden von Event-Handler auf Funktionen (ab Revision 9018) führte nun zwangsläufig auch zu Kompilier-Fehler bei Mehrfachdefinitionen von Event-Handlern.
Lösung: Mehrfachdefinitionen von Event-Handlern führen jetzt nur noch zu einer Warnung (warning 99, SupressedError). Bei allen anderen Funktionen führen Mehrfachdefinitionen weiterhin zu Kompilier-Fehler.
Hinweis: Obwohl Mehrfachdefinitionen von Event-Handlern jetzt toleriert werden ist dies eine mögliche Fehlerquelle. Änderungen an nur einer Definition (da die zweite Definition übersehen wird) führen zu verschiedenen Versionen des Event-Handler. Es wird aber immer nur ein Event-Handler ausgeführt und es ist nicht vorhersehbar, welche Version dies sein wird.
Mehrfachdefinitionen werden nur entdeckt, wenn alle Klassenformeln zusammen kompiliert werden. Und somit nicht beim lokalen Kompilieren einer Klassenformel im Editor.
Deshalb sollte die Log-Datei des kompletten Kompile-Laufs nach Änderungen überprüft werden. Sie liegt im Log-Verzeichnis des jeweiligen Anwenders, ...\user<UserName>\log\compile.csv. Hier sind alle Warnungen und Fehlermeldungen enthalten. Warnungen vom Typ 'warning 99, SupressedError' sind kritisch und ihre Ursache sollte auf jeden Fall korrigiert werden.