if (cachedMethodGen.size() > 1000) cachedMethodGen.clear();
if (cachedMethodGen.size() > 500 && runtime.freeMemory() < runtime.totalMemory()/5) cachedMethodGen.clear();
		        protected MethodGen analyze(Method method) {			        if (method.getCode() == null)				        return null;			        MethodGen result = cachedMethodGen.get(method);			        			         if (result != null) {			        	// System.out.println("got cached value " + System.identityHashCode(result));			        	return result;			        }			         if (false) System.out.println("methodGen: " + jclass.getClassName() + "." 				        		+ method.getName() + " : " + method.getSignature() + " " + System.identityHashCode(method));				       			        if (false && jclass.getClassName().indexOf("edu.umd.cs.findbugs.xml.XMLOutputUtil") >= 0) {			        	try {			        		throw new RuntimeException("get methodGen for XMLOutputUtil");			        	}catch (RuntimeException e) {			        		e.printStackTrace(System.out);			        	}			        }			        			        result = new MethodGen(method, jclass.getClassName(), getConstantPoolGen());			        // TODO: Find a smarter way to do this.			        if (cachedMethodGen.size() > 1000) cachedMethodGen.clear();			        if (true) cachedMethodGen.put(method, result);			        // System.out.println("Returning " + System.identityHashCode(result));			        return result;		        }