\section{Probleme}

\vspace{-.2cm}
In diesem Kapitel wird näher auf die Probleme eingegangen, die sich ergeben
haben, aus welchem Grund sie sich ergeben haben und wie sie schließlich behoben
wurden.

\vspace{-.2cm}
\subsection{Falsche Zeitangaben}

\begin{description}

\item[Beschreibung] Im Frontend wurden die Zeiten, wann eine
\Gls{podcast}episode zuletzt gehört wurde und wann ein \Gls{podcast} abonniert
worden ist, falsch angezeigt. Hierbei kann eine Aktion entweder zu weit in der
Vergangenheit oder sogar in der Zukunft liegen.
\item[Ursache] Die Bibliothek hat die Zeiten in der lokalen, statt der
universellen Zeit berechnet. Aufgrund der Differenz zwischen Zeitzonen kam es
hierbei zu größer werdenden Zeitabständen.
\item[Behebung] Die Bibliotheksfunktionen wurden so angepasst, dass sie die
Zeiten explizit nach der universellen Zeitzone (UTC) berechnet.

\end{description}


\subsection{AntennaPod Fehlermeldung}

\begin{description}

\item[Beschreibung] Beim Hochladen von \Gls{abo}änderungen gab AntennaPod einen Fehler aus.
\item[Ursache] Es wurde bei der Übertragung ein Parameter mit falschem Parameternamen gesendet.
Hierbei handelt es sich um den Parameter \texttt{updateURLs}.
\item[Behebung] \texttt{updateURLs} wurde umbenannt zu
\texttt{update\textunderscore urls}. Die
geschah durch das Hinzufügen von \texttt{@JsonProperty(value =
''update\textunderscore urls'')} in der \texttt{UpdateURLsWrapper} Klasse im
\texttt{util} Paket.

\end{description}

\subsection{Doppelte Speicherung von EpisodeActions}

\begin{description}

\item[Beschreibung] Beim speichern von \Gls{episode}Actions ergab sich in
manchen Fällen die Situation, dass \Gls{episode}Actions mehrfach gespeichert
worden sind. Jede \Gls{episode} besitzt pro Benutzer eine \Gls{episode}Action.
In diesem Fall gab es mehrere \Gls{episode}Actions pro Benutzer für je eine
\Gls{episode}.
\item[Ursache] Es werden alle \Gls{episode}Actions in der \Gls{db} gespeichert,
die neuer als die aktuellste \Gls{episode}Action in der \Gls{db} sind. Nach
einem Speichervorgang sollte die ältere \Gls{episode}Action gelöscht werden. Da
\Gls{spring} jedoch aus Effizienzgründen nach diesem Schema mehrere Daten
sammelt und erst dann abspeichert, wird nur einer der älteren Einträge gelöscht.
Dadurch werden im Durchschnitt mehr \Gls{episode}Actions gespeichert, als
\Gls{episode}Actions entfernt werden.
\item[Behebung] Die empfangenen \Gls{episode}Actions werden vor dem Speichern in
der \Gls{db} bereits nach den jeweils aktuellsten \Gls{episode}Actions für eine
\Gls{episode} aussortiert. Damit wird letztlich nur eine \Gls{episode}Action in
die \Gls{db} geschrieben und auch nur eine ältere \Gls{episode}Action zu der
\Gls{episode} gelöscht, womit jede \Gls{episode} für jeden User weiterhin nur
eine \Gls{episode}Action besitzt.

\end{description}

