2. Was hat es mit dem 2GB Limit auf sich?

Vorab: Es ist kein Limit, sondern ein Bug.

AJ wurde zu einer Zeit programmiert, wo 64Bit Betriebssysteme noch nicht weit verbreitet waren und auch die Dateigrößen noch relativ klein waren (meist unter 1GB).

Das Problem ist daher die Umsetzung, wie AJ intern mit Zahlen wie bspw. Größenangaben umgeht. Diese werden an den meisten Stellen noch als Java Datentyp int behandelt, was einem Maximum von 2,147,483,647 Bytes entspricht (2GB).

Leider wird nur beim einlesen von Dateien (sharecheck) der eigentlich benötigte Datentyp long verwendet was einem Maximum von 9,223,372,036,854,775,807 Bytes entspricht.

Es reicht jedoch nicht, nur im Core den Datentyp von int auf long zu korrigieren. Die Größenangaben werden ebenfalls an die Server von AJ übermittelt, somit müss(t)en auch diese angepasst werden.