Most likely your tenured space is not large enough. The jvm might not be smart enough to shrink other regions to allow you such a large continuous block. Note CMS doesn't defrag so you can get this problem with much smaller arrays.
For a collection that big you might consider using off heap memory.