091502CC8D7F487BA52A08145ED03720
  • Thomas Pollinger
  • 12.07.2017
  • DE/EN

Root Cause Analysis: "EscapeLoader.OnGetObject ... Object reference not set to an instance of an object."

Vieles im Projektbau wird auf Basis von Testdaten gebaut. Jedoch sobald es in Produktion geht und echte Anwender dann endlich die Inhalte pflegen, kann es zu echt interessanten Verhalten im Web Site Management Server kommen.


Regel 4

Testdaten für die Entwicklung sind gut, spiegeln aber nicht das echte Arbeitsleben wieder. Daher immer die Anwender auch während der Entwicklung einbinden und testen lassen. ;)


Meldung

Severity: Error
Component: Navigation
Category: Application
Source: Reddot.CMS.Rendering.Objects.EscapeLoader.OnGetObject (:0)
Message:
Locals: Project: {GUID}; ProjectVariant: {GUID}; Language(Page): {GUID}; Page(ID/UUID): {ID}; ContentClass: {GUID}; RenderMode: {Preview|SmartEdit|Publish}; RequestId: {ID};
System.NullReferenceException: Object reference not set to an instance of an object.
   at Reddot.CMS.Rendering.Objects.EscapeLoader.OnGetObject(String[] objectArray, IObjectLoadManager objectLoadManager, IPageRenderingContext context)

Ursache

Für diese Meldung gibt es eine sehr einfache Ursache, wenn man den EscapeLoader z.B. wie folgt verwende und der Text leer ist.

<%!! Escape:EncodeHtml(String:<%textElement%>) !!%>

Lösung

Wir konnten zwei Lösungen ermitteln. Die erste wäre eine if-query Bedingung um den EscapeLoader setzen, wenn nicht 100% garantiert werden kann, dass immer ein Text vorhanden ist. Oder die Abfrage umbauen, sofern möglich, z.B. auf:

<%!! Context:CurrentPage.GetElementByName(String:textElement).GetHtml().EncodeHtml() !!%>

Alternativ kann man auch mit den "Conditional Blockmarkierungen" spielen ;).


Über den Autor:
Thomas Pollinger

... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.

Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.