Whitespace-Management und CF 6.1 Enterprise

Mischa Sameli, Geschäftsführer & Leiter Entwicklung

Nichts ist eben nicht immer nichts. Und macht auch nicht immer nichts. Whitespace-Management kümmert sich bei ColdFusion um die Bereinigung von unnötigen Leerzeichen. Nicht immer zur Freude von Programmierern, vor allem dann nicht, wenn die Funktion nicht aktiviert werden kann, wie bei der Enterprise-Version von CF 6.1 Enterprise.

Gleich im Voraus: in aktuellen Version von Adobe ColdFusion lässt sich auch in der Enterprise-Ausgabe das Whitespace-Management bequem über den ColdFusion-Administrator verwalten. Auf den Unterschied bei MX 6.1 bin ich erst heute aufmerksam geworden bei der Fehleranalyse eines seltsamen Problems: Während auf dem Entwicklungsserver und anderen Produktservern in einer E-Mail Zeilenschaltungen immer korrekt generiert worden sind, zeigte das Ergebnis bei einem Auftritt plötzlich unnötig viele Leerzeichen. Gerade bei E-Mail sind diese ziemlich offensichtlich im Gegensatz zu gerenderten Webseiten – folglich ein Ärgernis, das beseitigt gehört.

Da die wir von der gleichen Code-Basis ausgehen konnten, muss die Ursache fast zwingend in der Server-Konfiguration zu suchen sein. Und sie da: In der Entwicklungsumgebung für die entsprechende Applikation hatten wir das Whitespace-Management aktiviert.

Einstellungen im ColdFusion Administrator von MX6.1 Standard

Ein kurzer Vergleich zum Enterprise-Server brachte Erstaunliches zu Tage: Nicht nur, dass die entsprechende Option nicht gesetzt gewesen wäre, nein, sie war schlicht nicht vorhanden.

Keine Einstellung für Whitespace Management bei ColdFusion 6.1 Enterprise

Licht ins Dunkel brachte ein Kommentar zum Thema bei Christian Cantrell. In den Release Notes zum Updater 3 von JRun4 finden wir:

Whitespace management is supported in ColdFusion MX for J2EE on JRun 4, but it is disabled by default and you cannot set it in the ColdFusion MX Administrator. To enable whitespace management, shut down ColdFusion MX and change the setting of the first boolean value in the cf_root/WEB-INF/cfusion/lib/neo-runtime.xml to true:
A Boolean value of true enables whitespace management; a value of false disables it. After you have edited and saved the file, restart ColdFusion MX.

Immerhin gibt es eine Möglichkeit, Whitespace Management zu aktivieren. Allerdings nimmt man diese Anpassung schoin ein wenig mit ungutem Gefühl in Anlauf. In einem Konfigurationsfile einen nicht näher deklarierten Parameter anzupassen geht schon in Richtung russisches Roulette. Aber es funktioniert, und das ist die Hauptsache.

anzupassender Wert in der Datei neo-runtime.xml

Whitespace Management eher nicht aktivieren

Eine weitere Erkenntnis, die mit Sicherheit nicht neu ist, sei an dieser Stelle wieder einmal erwähnt: Auf das serverweite Whitespace Management von ColdFusion sollte man eigentlich besser komplett verzichten. Wenn man nicht mit Sicherheit die Kontrolle über solche Funktionen hat und auch nicht alle Deployment-Server selber administratieren kann, darf man sich nicht auf das Vorhandensein der Funktion verlassen.