091502CC8D7F487BA52A08145ED03720
  • Thomas Pollinger
  • 15.12.2017
  • DE/EN

Root Cause Analysis: "Length cannot be less than zero"

Man hat sich früher immer in der Schule gefragt, warum und wann brauche ich den Quatsch denn später mal im Leben. Wer zu dieser Zeit aufgepasst hat, kann sich glücklich schätzen, vorallem bei logischen und mathematischen Dingen aus dem Lehrstoff. Denn wie auch schon Mr. Spock zu sagen pflege: "Schätzen entspricht nicht meiner Natur." ;)


Regel 17

"Künstliche Intelligenz" ("KI") hat genausoviel mit Intelligenz zu tun wie "Naturidentische Aromastoffe" ("BRRH") mit natürlichem Geschmack. (Murphy)


Meldungen

Severity: Error
Component: Navigation
Category: Application
Source: Reddot.CMS.Rendering.Spots.Parser.CollectSpots (:0)
Message:
Locals: Project: 072D6659A806425BACA8D29F37FD6E7D; ProjectVariant: 6F9B7F0573194CA2B1B3A39104457096; Language(Page): CBA044C445384877B9A1EBEEC739E673; Page(ID/UUID): 573724; ContentClass: 94F28BB62819454698DC38DDE84732F2; RenderMode: Publish; RequestId: 5059982; 
System.ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length
   at System.String.Substring(Int32 startIndex, Int32 length)
   at Reddot.CMS.Rendering.Spots.Parser.CollectSpots()

Ursache

Die Ursache für diese Fehlermeldung ist recht einfach. Es wurde Substring angewendet, welcher innerhalb der Abfrage für den Parameter "length" einen negativen Wert erhält. Wenn jedoch, wie in diesem Fall, der IndexOf() einen -1 liefert, weil der gesuchte Wert nicht vorkommt, dann kommt es zu dieser Meldung im wsms.log

 ...
      <reddot:cms>
        <htmltext><%!! Context:CurrentPage.Element.GetElement(String:Elementname).Value.Substring(0,CurrentPage.Element.GetElement(String:Elementname).Value.IndexOf("\\")) !!%>
      </reddot:cms>
 ...

Lösung

Es muss dafür gesorgt werden, dass der o.g. Substring immer korrekt befüllt oder nun dann ausgeführt wird, wenn notwendig.


Ü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.