import org.checkerframework.checker.tainting.qual.Untainted; class CallsCheck { public void testCall(String dirty, @Untainted String clean) { sink(dirty); //warn sink(""); sink(cleanMethod()); sink(publicMethod()); //warn sink(publicFinalMethod()); sink(privateDirty(dirty)); //warn sink(dirty.toLowerCase()); //warn sink(dirty.getClass().getName()); sink(dirty.replace("1", "2")); //warn sink(clean); sink(clean.replace("1", dirty)); //warn } private String privateDirty(String dirty) { return dirty; } public String publicMethod() { return "1"; } public final String publicFinalMethod() { return "1"; } private String cleanMethod() { return "null"; } public void sink(@Untainted String clean) { } }