Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: HH am 13.04.07 - 12:12:48

Titel: Illegal circular Use / Script Bibliotheken
Beitrag von: HH am 13.04.07 - 12:12:48
Hallo zusammen,

ich möchte in einer Anwendung eine Script-Bibliothek (Name=EventsBackend) mit einer Klasse für Backend-Funktionen und eine weitere Script-Bibliothek (Name=EventsFrontend) mit einer Klasse für Frontend-Funktionen erstellen.

Die Frontend-Bibliothek soll Klassen aus der Backend-Bibliothek verwenden bzw. daraus abgeleitete Klassen enthalten. Dazu habe ich diese mit Use "EventsBackend" in den Options der Bibliothek EventsFrontend eingebunden.

Wenn ich nun versuche die Frontend-Bibliothek mit Use "EventsFrontend" in den Options einer Maske einzubinden, so erhalte ich die Fehlermeldung Illegal circular Use: EventsFrontend.

Das ganze hab ich nun soweit reduziert, dass die beiden Bibliotheken nun bis auf Option declare und der Use Anweisung in der Frontend-Bibliothek keinen weitern Code enthalten.

Auch die Maske enthält nur die Use Anweisung zum einbinden von EventsFrontend.

Cache.dsk hab ich ohne weiteren Erfolg gelöscht. Notes 6.5.5. Irgend welche Ideen???

Hubert
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: dirk_2909 am 13.04.07 - 12:38:18
In solchen Fällen hat es mir schon oft geholfen, LS neu zu kompilieren (über "Werkzeuge" )
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: HH am 13.04.07 - 12:42:30
Das hatte ich auch schon versucht, leider ohne Erfolg.

Hubert
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: Axel am 13.04.07 - 12:45:29
Fixup und compact auf die Datenbank.

Axel
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: WMotzet am 13.04.07 - 12:50:12
manchmal hilft/funktioniert das Neukompilieren über Werkzeuge nicht,
dann hilft nur alle Elemente die die Klasse nutzen  einzeln "neu zu kompilieren",
d.h. öffnen "ändern" (= "Blank" einfügen) und wieder speichern,
danach waren bei uns (Notes 6.5.x) diese Fehler wieder weg.
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: HH am 13.04.07 - 12:52:30
Sowohl fixup / compact als auch das erneute Speichern nach Änderung bringt nichts.

Hubert
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: WMotzet am 13.04.07 - 12:59:03
Und auch Notes komplett neu gestartet danach?
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: HH am 13.04.07 - 13:21:03
Natürlich auch das.

Hubert
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: Axel am 13.04.07 - 13:35:36
Schmeiss mal die Blibotheken und die ganzen Use-Statements raus, lass mal Script neu kompilieren und mach dann noch einen compact hinterher.

Anschließend erstellst du die Bibliotheken neu.


Axel
 
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: HH am 13.04.07 - 13:42:59
Soweit erst einmal Dank für euere Antworten. Bin jetzt bereits at home  8) und kann hier nur mit 7.0.2 testen. Bis spätestens Montag.

Hubert
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: koehlerbv am 14.04.07 - 00:09:37
Nach Deiner Beschreibung sieht ja alles korrekt aus, was Du gemacht hast, Hubert. Kann es aber sein, dass Du im Vorfeld mal ein "Circular use" verursacht hast? Das ist ggf. mit seinen "Ruinen" verdammt hartnäckig (und verbirgt sich dann nicht im Quellcode, sondern im tokenisierten Teil - m.E. ein Bug).

Passiert ist mir sowas auch schon. Helfen könnte (!) tatsächlich ein Löschen der Caches (neben der CACHE.NDK gehört hierzu auch die DESKTOP.DSK). Aber das hast Du ja schon durch. Ein Fixup oder Compact kann aber nichts bringen - das ist eine ganz andere "Spielwiese".

Tipp in solchen Fällen: Die Libs in .LSS-Files exportieren und anschliessend löschen. Dann in der richtigen Reihenfolge wieder importieren und neue Libs und die Bezüge jedes Mal (nach Import) neu kompilieren. Anschliessend das ganze Projekt rekompilieren (oft gar nicht mehr notwendig, aber es schafft zusätzliche Sicherheit).

Sollte der Fehler dann immer noch auftauchen, dann muss wirklich ein "circular use" vorhanden sein.

Bernhard
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: flaite am 14.04.07 - 10:05:26
Jemand sollte das mal bei Lotus auflösen.
Habs bei Bob Balaban angemeldet. Nummer 91 oder so:
http://www.bobzblog.com/tuxedoguy.nsf/dx/why-this-blog?opendocument&comments
In bestimmten anderen Programmiersprachen hat man mit so einem Nonsens nämlich keine Probleme, weil ein smarter Compiler solche zirkulären Referenzen auflöst.
Ich hab auch schon einmal das in LotusScript gesehen:
Es gab definitiv zirkuläre Referenzen in den ScriptLibraries. Die Libs luden sich aber nur ein paar Runden gegenseitig in den Speicher, ohne dass es dafür eine Erklärung gab, warum dieses Spielchen stoppte. Es lief halt nur sehr langsam an, wegen den paar Runden zirkulären Ladens.
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: ata am 15.04.07 - 22:10:29
... die Fehlermeldung kommt aber auch, wenn man die Lib beim Use falsch schreibt - es also die Lib nicht gibt...

Toni
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: koehlerbv am 16.04.07 - 00:21:16
Toni, Du könntest zum Held des Threads avancieren - an diese simple (und eigentlich allgemeine bekannte) Dumm-Fehlermeldung des Designers) hat bisher keiner gedacht!

Soweit ich mich erinnere, hat der R4-Designer noch geschimpft, dass er nicht weiss, was ich mit der "GibtEsNicht.Lib" meine. Seit R5 dann offensichtlich ein degression bug, über den die IBM-eignen LS-Entwickler doch eigentlich auch schon einmal gestolpert sein sollten. Vollkommen unverständlich.

Bernhard
Titel: Re: Illegal circular Use / Script Bibliotheken
Beitrag von: HH am 16.04.07 - 09:01:39
Guten Morgen!

Also, ich hab das alles noch einmal neu aufgesetzt und siehe da, es lief. Ein Schreibfehler war auszuschließen, so dass ich eher zu Bernhards Ursachen- / Lösungsansatz tendiere.

Herzlichen Dank für euere Antworten.

Hubert