As a programmer you certainly know the error of a stack overflow due to an obvious recursion. But there are certainly many weird and unusual ways to get your favourite language to spit that error out. Objectives: 1. Must cause a stack overflow which is clearly visible on the error output. 2. Not allowed to use an obvious recursion. Examples of invalid programs: // Invalid, direct obvious recursion. methodA(){ methodA(); } <!-- --> // Invalid, indirect, but obvious recursion. methodA(){ methodB(); } methodB(){ methodA(); } The most creative ways are the best as this a [tag:popularity-contest]. I.e, avoid boring obvious answers like this: throw new StackOverflowError(); // Valid, but very boring and downvote-deserving. Even though I accepted an answer now, adding more answers is still okay :)