String externalCheckReturnValues = System.getProperty("checkReturnValues"); if (externalCheckReturnValues != null) { String [] checks = externalCheckReturnValues.split("[|]"); for(int i = 0; i < checks.length; i++) { String [] parts = checks[i].split(":"); if (parts.length != 3) continue; Invoke in = new Invoke(parts[0], parts[1], parts[2], Invoke.INSTANCE, null); list.add(in); } }
		ArrayList<PatternElement> getPatternElementList() {		ArrayList<PatternElement> list = localPatternElementList.get();		if (list != null) return list;		list = new ArrayList<PatternElement>();		// Standard return check methods		list.add(new Invoke("/.*", "equals",		        "/\\(Ljava/lang/Object;\\)Z",		        Invoke.INSTANCE, null));		list.add(new Invoke("java.lang.String", "/.*",		        "/\\(.*\\)Ljava/lang/String;",		        Invoke.INSTANCE, null));		list.add(new Invoke("java.lang.StringBuffer", "toString",		        "()Ljava/lang/String;",		        Invoke.INSTANCE,		        null));		list.add(new Invoke("+java.lang.Thread", "<init>",		        "/.*",		        Invoke.CONSTRUCTOR,		        null));		list.add(new Invoke("+java.lang.Throwable", "<init>",		        "/.*",		        Invoke.CONSTRUCTOR,		        null));		list.add(new Invoke("java.security.MessageDigest",		        "digest", "([B)[B",		        Invoke.INSTANCE, null));		list.add(new Invoke("+java.net.InetAddress", "/.*", "/.*",		        Invoke.INSTANCE, null));		list.add(new Invoke("java.math.BigDecimal", "/.*", "/.*",		        Invoke.INSTANCE, null));		list.add(new Invoke("java.math.BigInteger", "/.*", "/.*",		        Invoke.INSTANCE, null));		list.add(new Invoke("+java.util.Enumeration", "hasMoreElements", "()Z", Invoke.INSTANCE, null));		list.add(new Invoke("+java.util.Iterator", "hasNext", "()Z", Invoke.INSTANCE, null));		list.add(new Invoke("java.io.File", "createNewFile", "()Z", Invoke.INSTANCE, null));		if (CHECK_ALL ||		        JavaVersion.getRuntimeVersion().isSameOrNewerThan(JavaVersion.JAVA_1_5)) {			// Add JDK 1.5 and later return check functions			list.add(new Invoke("+java.util.concurrent.locks.ReadWriteLock",			        "readLock",			        "()Ljava/util/concurrent/locks/Lock;",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.concurrent.locks.ReadWriteLock",			        "writeLock",			        "()Ljava/util/concurrent/locks/Lock;",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.concurrent.locks.Condition",			        "await",			        "(JLjava/util/concurrent/TimeUnit;)Z",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.concurrent.locks.Condition",			        "awaitUtil",			        "(Ljava/util/Date;)Z",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.concurrent.locks.Condition",			        "awaitNanos",			        "(J)Z",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.concurrent.Semaphore",			        "tryAcquire",			        "(JLjava/util/concurrent/TimeUnit;)Z",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.concurrent.Semaphore",			        "tryAcquire",			        "()Z",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.concurrent.locks.Lock",			        "tryLock",			        "(JLjava/util/concurrent/TimeUnit;)Z",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.concurrent.locks.Lock",			        "newCondition",			        "()Ljava/util/concurrent/locks/Condition;",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.concurrent.locks.Lock",			        "tryLock",			        "()Z",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.Queue",			        "offer",			        "(Ljava/lang/Object;)Z",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.concurrent.BlockingQueue",			        "offer",			        "(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Z",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.concurrent.BlockingQueue",			        "poll",			        "(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;",			        Invoke.INSTANCE,			        null));			list.add(new Invoke("+java.util.Queue",			        "poll",			        "()Ljava/lang/Object;",			        Invoke.INSTANCE,			        null));		}				localPatternElementList.set(list);		return list;	}