Actually, there is a return statement, and it uses a really ugly side-effect, as you can see from the following stripped down example:
import java.util.*; import java.net.*; public class test { public Collection f(String arg) { List servers = new ArrayList(); try { servers = new ArrayList(); return Collections.unmodifiableCollection(servers); } finally { servers.add("finally"); } } public test(String[] args) { System.out.println(f(args[0])); } public static void main(String[] args) { test t = new test(args); } } There is an extraneous "new ArrayList()" above, which is also present in the live code, and that should be fixed. -- Noel --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]