If containedUncompressedLen = 22.884.489 then the string space allocated is: 2 * (containedUncompressedLen + 256.000)
But why are you using Strings instead of byte arrays?