This is related to FFT 1D concurrency thresholds whereas all threads are already busy within FloatFFT_2D.realForward().
As a workaround, I explicitly set these thresholds to INFINITY to disable FFT 1D parallelism:
// JTransforms: disable FFT_1D parallelism:
Maybe JTransforms could automatically disable FFT 1D parallelism when FFT 2D are computed ...
I propose that the FloatFFT_2D constructor which instanciate FloatFFT_1D objects (row/columns) define a flag useThreads = false in order to disable concurrency in such cases ...