}  if ( conserveSpace ) { addArg("-conserveSpace"); } if ( workHard ){ addArg("-workHard"); } if ( effort != null ) { addArg("-effort:" + effort);
	private void execFindbugs() throws BuildException {		findbugsEngine = (Java) getProject().createTask("java");		findbugsEngine.setTaskName( getTaskName() );		findbugsEngine.setFork( true );		findbugsEngine.setTimeout( new Long( timeout ) );		if ( workHard ){			jvmargs = jvmargs + " -Dfindbugs.workHard=true";		}		if ( debug )			jvmargs = jvmargs + " -Dfindbugs.debug=true";		if ( conserveSpace )			jvmargs = jvmargs + " -Dfindbugs.conserveSpace=true";		findbugsEngine.createJvmarg().setLine( jvmargs ); 		// Add JVM arguments for system properties		for (Iterator i = systemPropertyList.iterator(); i.hasNext(); ) {			SystemProperty systemProperty = (SystemProperty) i.next();			String jvmArg = "-D" + systemProperty.getName() + "=" + systemProperty.getValue();			findbugsEngine.createJvmarg().setValue(jvmArg);		}		if (homeDir != null) {			// Use findbugs.home to locate findbugs.jar and the standard			// plugins.  This is the usual means of initialization.			findbugsEngine.setJar( new File( homeDir + File.separator + "lib" +                                          File.separator + FINDBUGS_JAR ) );			addArg("-home");			addArg(homeDir.getPath());		} else {			// Use an explicitly specified classpath and list of plugin Jars			// to initialize.  This is useful for other tools which may have			// FindBugs installed using a non-standard directory layout.			findbugsEngine.setClasspath(classpath);			findbugsEngine.setClassname("edu.umd.cs.findbugs.FindBugs");			addArg("-pluginList");			addArg(pluginList.toString());		}				if (adjustExperimental) {			addArg("-adjustExperimental");		}		if ( sorted ) addArg("-sortByClass");		if ( outputFormat != null && !outputFormat.trim().equalsIgnoreCase("text") ) {			outputFormat = outputFormat.trim();			String outputArg = "-";			int colon = outputFormat.indexOf(':');			if (colon >= 0) {				outputArg += outputFormat.substring(0, colon).toLowerCase();				outputArg += ":";				outputArg += outputFormat.substring(colon + 1);			} else {				outputArg += outputFormat.toLowerCase();				if (stylesheet != null) {					outputArg += ":";					outputArg += stylesheet.trim();				}			}			addArg(outputArg);		}		if ( quietErrors ) addArg("-quiet");		if ( reportLevel != null ) addArg("-" + reportLevel.trim().toLowerCase());		if ( projectFile != null ) {			addArg("-project");			addArg(projectFile.getPath());		}		if ( excludeFile != null ) {			addArg("-exclude");			addArg(excludeFile.getPath());		}		if ( includeFile != null) {			addArg("-include");			addArg(includeFile.getPath());		}		if ( visitors != null) {			addArg("-visitors");			addArg(visitors);		}		if ( omitVisitors != null ) {			addArg("-omitVisitors");			addArg(omitVisitors);		}		if ( auxClasspath != null ) {			addArg("-auxclasspath");			addArg(auxClasspath.toString());		}		if ( sourcePath != null) {			addArg("-sourcepath");			addArg(sourcePath.toString());		}		if ( outputFileName != null ) {			addArg("-outputFile");			addArg(outputFileName);		}		if ( relaxed ) {			addArg("-relaxed");		}        		addArg("-exitcode");        Iterator itr = classLocations.iterator();        while ( itr.hasNext() ) {			addArg(itr.next().toString());      	} 		log("Running FindBugs...");		int rc = findbugsEngine.executeJava();		if ((rc & ExitCodes.ERROR_FLAG) != 0) {			throw new BuildException("Execution of findbugs failed.");		}		if ((rc & ExitCodes.MISSING_CLASS_FLAG) != 0) {			log("Classes needed for analysis were missing");		}		if (outputFileName != null) {			log("Output saved to " + outputFileName);		}    } 