java source analysis