While discussing another question I asked, @Aaron Digulla pointed out the following:
If you installed the Java SDK, there should be a \"src.zip\" file
Go to the preferences (Window -> Preferences) and type "JRE" in the search field.
Select "Installed JREs". Make sure that the Java Runtime uses the version of Java which you expect.
If it does, select it, click "Edit". The icon for "rt.jar" should have a little text symbol on top of it (it should look different than the dnsns.jar, for example).
If it doesn't, click "Restore Defaults". If that doesn't work, double check the path.
This should also solve your other problems.
To check whether a class contains debug symbols, decompile it with javap -v (see this question: Check if Java bytecode contains debug symbols)
Some Java implementations allow to ignore debug symbols as classes are loaded. This can cause "Unknown Source" for classes which contain symbols. I was sure that there was such an option for Sun's Java but I can't find it anymore.