In the decorateChunk method of BiomeDecorator, there's this little check.
if (this.currentWorld != null)
{
throw new RuntimeException("Already decorating!!");
}
This check isn't usually correct, but it causes a lot of trouble in complex world generation code. It's very natural for decoration of one chunk to set off decoration of another chunk, and this goes off even though everything is working just fine. The variable should really be passed to the method rather than being an instanceVar, and maybe that's why this check is in (to deal with re-entrant code).
I can manage this in my own code, but I have chronic problems with bugs from other mods which aren't really bugs because if this code wasn't there everything would work. For a long time my solution was simply to erase the currentWorld variable of ALL the biome decorators whenever I ran my procedure, which runs in a post-decoration event, after all the uses of currentWorld are done. This worked nearly perfectly, just to indicate how useless that check is. But, now I'm doing some things in ore generation, and erasing the variables isn't an option, because now some things are using it.
So, can Forge code edit out this check? If there's enough of a need for a check against improper re-entrance into the generate chunk routine, then maybe add in a check that's correct.