The key thing about contributing to open source projects is *contributing*. You can do that in many ways besides adding code or features.
In fact its rare that people contribute feature patches. It is more common that people contribute bug fixes, or round out the test suite, address dependency issues, or explore difficult configuration/deployment options on weakly supported operating systems.
The easiest way to get stuck in is submitting documentation updates.
I recently spotted some typos in the Prawn (Ruby PDF library) documentation that I hope to patch this weekend. Also the Ruby resque team recently issued a rallying cry for new contributers.
Not as familiar with the Java OSS projects, but they are bigger, and there are more opportunities to contribute.