Ankündigung

Einklappen
Keine Ankündigung bisher.

Exception bei historicState

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Exception bei historicState

    Hallo zusammen,

    eben bin ich im Log über folgende Exception gestolpert:
    Code:
    2014-04-28 13:00:50.066 INFO  o.o.model.script.Test rules[:53]- Steckdosen_Arbeiten_hinten_rechts_Schalten historic (30min): OFF
    	at org.eclipse.xtext.util.PolymorphicDispatcher.invoke(PolymorphicDispatcher.java:291)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at sun.reflect.GeneratedMethodAccessor49.invoke(Unknown Source)
    	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._featureCallOperation(XbaseInterpreter.java:713)
    	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:724)
    java.lang.NullPointerException: cannot invoke method public abstract org.openhab.core.types.State org.openhab.core.persistence.HistoricItem.getState() on null
    Der dazugehörige Code wurde seit Monaten nicht geändert, besteht einfach aus einer Log-Zeile die per Cron Träger aufgerufen wird:
    Code:
    logInfo("Test rules", "Steckdosen_Arbeiten_hinten_rechts_Schalten historic (30min): " + Steckdosen_Arbeiten_hinten_rechts_Schalten.historicState(now.minusMinutes(30)).state)
    Sehr merkwürdig finde ich vor allem, dass diese Zeile ja ausgeführt wurde, die Logmeldung steht ja vor der Exception. Noch merkwürdiger ist, dass es 30min später beim nächsten Aufruf keine Exception mehr gab...

    Was läuft da schief?

    #2
    Irgendwie ist das ganze sehr merkwürdig, seit ein paar Stunden kommt jeweils zur vollen Stunde die Exception und zur halben Stunde läuft die Regel ohne Probleme (der Trigger kommt alle 30min)

    Einen echten Reim kann ich mir nicht darauf machen, auch ein Neustart von openHAB hat nichts an dem Verhalten geändert.

    Kommentar


      #3
      Ein paar Tage später hat das ganze offenbar Selbstheilungskräfte entwickelt, diese Exception hab ich jetzt seit 2 Tagen nicht mehr gesehen. Warum ist mir allerdings rätselhaft

      Kommentar


        #4
        Nachdem ich diese Exception jetzt auch bei einem anderen Atem noch mal hatte vermute ich die Ursache darin, dass historische Werte für den Zeitpunkt zu dem sie ermittelt werden sollten noch nicht in der Datenbank waren.

        Das Verhalten halte ich nicht unbedingt für einen Fehler, da ich aber keine Möglichkeit kenne solche Exceptions in den Regeln abzufangen wäre ev. doch ein anderes Verhalten sinnvoller?

        Kommentar

        Lädt...
        X