Merge pull request #12463 from github/java/update-mad-decls-after-triage-2023-03-09T10-41-58

Java: Add MaD declarations after triage
This commit is contained in:
Stephan Brandauer
2023-03-17 17:02:42 +01:00
committed by GitHub
396 changed files with 10551 additions and 1927 deletions

View File

@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["com.thoughtworks.xstream", "XStream", True, "fromXML", "(File)", "", "Argument[0]", "read-file", "ai-generated"]

View File

@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["hudson.remoting", "URLDeserializationHelper", True, "wrapIfRequired", "(URL)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]

View File

@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["io.netty.resolver", "SimpleNameResolver", False, "resolve", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]

View File

@@ -87,9 +87,7 @@ extensions:
- ["java.io", "OutputStream", True, "write", "(byte[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["java.io", "OutputStream", True, "write", "(int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["java.io", "Reader", True, "read", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["java.io", "Reader", True, "read", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["java.io", "StringReader", False, "StringReader", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["java.io", "Writer", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["java.io", "Writer", True, "write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- addsTo:
pack: codeql/java-all

View File

@@ -9,7 +9,9 @@ extensions:
pack: codeql/java-all
extensible: sinkModel
data:
- ["java.net", "DatagramSocket", True, "connect", "(SocketAddress)", "", "Argument[0]", "open-url", "ai-generated"]
- ["java.net", "URL", False, "openConnection", "", "", "Argument[-1]", "open-url", "manual"]
- ["java.net", "URL", False, "openConnection", "(Proxy)", "", "Argument[0]", "open-url", "ai-generated"]
- ["java.net", "URL", False, "openStream", "", "", "Argument[-1]", "open-url", "manual"]
- ["java.net", "URLClassLoader", False, "URLClassLoader", "(String,URL[],ClassLoader)", "", "Argument[1]", "open-url", "manual"]
- ["java.net", "URLClassLoader", False, "URLClassLoader", "(String,URL[],ClassLoader,URLStreamHandlerFactory)", "", "Argument[1]", "open-url", "manual"]
@@ -21,6 +23,11 @@ extensions:
pack: codeql/java-all
extensible: summaryModel
data:
- ["java.net", "InetAddress", True, "getByName", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]
- ["java.net", "InetSocketAddress", True, "createUnresolved", "(String,int)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]
- ["java.net", "InetSocketAddress", True, "InetSocketAddress", "(String,int)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"]
- ["java.net", "URI", False, "resolve", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]
- ["java.net", "URI", False, "resolve", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"]
- ["java.net", "URI", False, "URI", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["java.net", "URI", False, "create", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["java.net", "URI", False, "toASCIIString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
@@ -29,4 +36,6 @@ extensions:
- ["java.net", "URL", False, "URL", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["java.net", "URL", False, "toURI", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["java.net", "URL", False, "toExternalForm", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["java.net", "URL", False, "URL", "(URL,String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"]
- ["java.net", "URL", False, "URL", "(URL,String)", "", "Argument[1]", "Argument[-1]", "taint", "ai-generated"] # @atorralba: review for consistency
- ["java.net", "URLDecoder", False, "decode", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]

View File

@@ -12,7 +12,11 @@ extensions:
- ["java.nio.file", "Files", False, "createSymbolicLink", "", "", "Argument[0]", "create-file", "manual"]
- ["java.nio.file", "Files", False, "createTempDirectory", "(Path,String,FileAttribute[])", "", "Argument[0]", "create-file", "manual"]
- ["java.nio.file", "Files", False, "createTempFile", "(Path,String,String,FileAttribute[])", "", "Argument[0]", "create-file", "manual"]
- ["java.nio.file", "Files", False, "delete", "(Path)", "", "Argument[0]", "create-file", "ai-generated"] # should be delete-file
- ["java.nio.file", "Files", False, "deleteIfExists", "(Path)", "", "Argument[0]", "create-file", "ai-generated"] # should be delete-file
- ["java.nio.file", "Files", False, "lines", "(Path,Charset)", "", "Argument[0]", "read-file", "ai-generated"]
- ["java.nio.file", "Files", False, "move", "", "", "Argument[1]", "create-file", "manual"]
- ["java.nio.file", "Files", False, "newBufferedReader", "(Path,Charset)", "", "Argument[0]", "read-file", "ai-generated"]
- ["java.nio.file", "Files", False, "newBufferedWriter", "", "", "Argument[0]", "create-file", "manual"]
- ["java.nio.file", "Files", False, "newOutputStream", "", "", "Argument[0]", "create-file", "manual"]
- ["java.nio.file", "Files", False, "write", "", "", "Argument[0]", "create-file", "manual"]
@@ -24,7 +28,6 @@ extensions:
extensible: summaryModel
data:
- ["java.nio.file", "FileSystem", True, "getPath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["java.nio.file", "FileSystem", True, "getRootDirectories", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["java.nio.file", "Path", True, "getParent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["java.nio.file", "Path", True, "normalize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["java.nio.file", "Path", True, "resolve", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"]

View File

@@ -5,3 +5,8 @@ extensions:
data:
- ["javax.xml.transform.stream", "StreamSource", False, "StreamSource", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["javax.xml.transform.stream", "StreamSource", False, "getInputStream", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["javax.xml.transform.stream", "StreamResult", True, "StreamResult", "(File)", "", "Argument[0]", "create-file", "ai-generated"]

View File

@@ -3,5 +3,7 @@ extensions:
pack: codeql/java-all
extensible: summaryModel
data:
- ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "TarArchiveEntry", "(String,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"]
- ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "TarArchiveEntry", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"]
- ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "TarArchiveEntry", "(String,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"]
- ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "TarArchiveEntry", "(String,byte)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"]
- ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "setLinkName", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"]

View File

@@ -12,3 +12,8 @@ extensions:
- ["org.apache.commons.io", "IOUtils", True, "toByteArray", "(Reader,String)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["org.apache.commons.io", "IOUtils", True, "writeLines", "(Collection,String,Writer)", "", "Argument[0].Element", "Argument[2]", "taint", "manual"]
- ["org.apache.commons.io", "IOUtils", True, "writeLines", "(Collection,String,Writer)", "", "Argument[1]", "Argument[2]", "taint", "manual"]
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["org.apache.commons.io", "FileUtils", True, "openInputStream", "(File)", "", "Argument[0]", "read-file", "ai-generated"]

View File

@@ -0,0 +1,11 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(JellyContext,URL,URL)", "", "Argument[1]", "open-url", "ai-generated"]
- ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(JellyContext,URL,URL)", "", "Argument[2]", "open-url", "ai-generated"]
- ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(JellyContext,URL)", "", "Argument[1]", "open-url", "ai-generated"]
- ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(URL,URL)", "", "Argument[0]", "open-url", "ai-generated"]
- ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(URL,URL)", "", "Argument[1]", "open-url", "ai-generated"]
- ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(URL)", "", "Argument[0]", "open-url", "ai-generated"]

View File

@@ -0,0 +1,10 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["org.apache.tools.ant", "AntClassLoader", True, "addPathComponent", "(File)", "", "Argument[0]", "read-file", "ai-generated"]
- ["org.apache.tools.ant", "AntClassLoader", True, "AntClassLoader", "(ClassLoader,Project,Path,boolean)", "", "Argument[2]", "read-file", "ai-generated"]
- ["org.apache.tools.ant", "AntClassLoader", True, "AntClassLoader", "(Project,Path,boolean)", "", "Argument[1]", "read-file", "ai-generated"]
- ["org.apache.tools.ant", "AntClassLoader", True, "AntClassLoader", "(Project,Path)", "", "Argument[1]", "read-file", "ai-generated"]
- ["org.apache.tools.ant", "DirectoryScanner", True, "setBasedir", "(File)", "", "Argument[0]", "read-file", "ai-generated"]

View File

@@ -0,0 +1,11 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["org.apache.tools.ant.taskdefs", "Copy", True, "addFileset", "(FileSet)", "", "Argument[0]", "read-file", "ai-generated"]
- ["org.apache.tools.ant.taskdefs", "Copy", True, "setFile", "(File)", "", "Argument[0]", "read-file", "ai-generated"]
- ["org.apache.tools.ant.taskdefs", "Copy", True, "setTodir", "(File)", "", "Argument[0]", "create-file", "ai-generated"]
- ["org.apache.tools.ant.taskdefs", "Copy", True, "setTofile", "(File)", "", "Argument[0]", "create-file", "ai-generated"]
- ["org.apache.tools.ant.taskdefs", "Expand", True, "setDest", "(File)", "", "Argument[0]", "create-file", "ai-generated"]
- ["org.apache.tools.ant.taskdefs", "Expand", True, "setSrc", "(File)", "", "Argument[0]", "read-file", "ai-generated"]

View File

@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["org.apache.tools.zip", "ZipEntry", True, "ZipEntry", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"]

View File

@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: summaryModel
data:
- ["org.kohsuke.stapler.framework.adjunct", "AdjunctManager", True, "AdjunctManager", "(ServletContext,ClassLoader,String,long)", "", "Argument[2]", "Argument[-1].Field[org.kohsuke.stapler.framework.adjunct.AdjunctManager.rootURL]", "taint", "ai-generated"] # the class never accesses the URL, but the field is public

View File

@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["org.kohsuke.stapler.framework.io", "LargeText", True, "LargeText", "(File,Charset,boolean,boolean)", "", "Argument[0]", "read-file", "ai-generated"]

View File

@@ -0,0 +1,7 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["org.kohsuke.stapler", "HttpResponses", True, "redirectTo", "(String)", "", "Argument[0]", "url-redirect", "ai-generated"]
- ["org.kohsuke.stapler", "HttpResponses", True, "staticResource", "(URL)", "", "Argument[0]", "open-url", "ai-generated"]

View File

@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/java-all
extensible: sinkModel
data:
- ["org.openjdk.jmh.runner.options", "ChainedOptionsBuilder", True, "result", "(String)", "", "Argument[0]", "create-file", "ai-generated"]

View File

@@ -0,0 +1,26 @@
package generatedtest;
import org.apache.tools.zip.ZipEntry;
// Test case generated by GenerateFlowTestCase.ql
public class Test {
Object source() {
return null;
}
void sink(Object o) {}
public void test() throws Exception {
{
// "org.apache.tools.zip;ZipEntry;true;ZipEntry;(String);;Argument[0];Argument[-1];taint;ai-generated"
ZipEntry out = null;
String in = (String) source();
out = new ZipEntry(in);
sink(out); // $ hasTaintFlow
}
}
}

View File

@@ -0,0 +1 @@
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/apache-ant-1.10.13

View File

@@ -0,0 +1,2 @@
import java
import TestUtilities.InlineFlowTest

View File

@@ -26,6 +26,20 @@ public class Test {
out = new TarArchiveEntry(in, false);
sink(out); // $ hasTaintFlow
}
{
// "org.apache.commons.compress.archivers.tar;TarArchiveEntry;true;TarArchiveEntry;(String,byte);;Argument[0];Argument[-1];taint;ai-generated"
TarArchiveEntry out = null;
String in = (String) source();
out = new TarArchiveEntry(in, (byte) 0);
sink(out); // $ hasTaintFlow
}
{
// "org.apache.commons.compress.archivers.tar;TarArchiveEntry;true;setLinkName;(String);;Argument[0];Argument[-1];taint;ai-generated"
TarArchiveEntry out = null;
String in = (String) source();
out.setLinkName(in);
sink(out); // $ hasTaintFlow
}
}

View File

@@ -0,0 +1,28 @@
package generatedtest;
import hudson.remoting.URLDeserializationHelper;
import java.net.URL;
// Test case generated by GenerateFlowTestCase.ql
public class Test {
Object source() {
return null;
}
void sink(Object o) {
}
public void test() throws Exception {
{
// "hudson.remoting;URLDeserializationHelper;true;wrapIfRequired;(URL);;Argument[0];ReturnValue;taint;ai-generated"
URL out = null;
URL in = (URL) source();
out = URLDeserializationHelper.wrapIfRequired(in);
sink(out); // $ hasTaintFlow
}
}
}

View File

@@ -0,0 +1 @@
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/jenkins

View File

@@ -0,0 +1,2 @@
import java
import TestUtilities.InlineFlowTest

View File

@@ -0,0 +1,792 @@
package generatedtest;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.CharArrayReader;
import java.io.CharArrayWriter;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.File;
import java.io.FilterInputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.StringReader;
import java.io.Writer;
import java.net.URI;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.file.Path;
// Test case generated by GenerateFlowTestCase.ql
public class Test {
Object getThrowable_messageDefault(Object container) {
return null;
}
Object source() {
return null;
}
void sink(Object o) {}
public void test() throws Exception {
{
// "java.io;BufferedInputStream;false;BufferedInputStream;;;Argument[0];Argument[-1];taint;manual"
BufferedInputStream out = null;
InputStream in = (InputStream) source();
out = new BufferedInputStream(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;BufferedInputStream;false;BufferedInputStream;;;Argument[0];Argument[-1];taint;manual"
BufferedInputStream out = null;
InputStream in = (InputStream) source();
out = new BufferedInputStream(in, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;BufferedReader;false;BufferedReader;;;Argument[0];Argument[-1];taint;manual"
BufferedReader out = null;
Reader in = (Reader) source();
out = new BufferedReader(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;BufferedReader;false;BufferedReader;;;Argument[0];Argument[-1];taint;manual"
BufferedReader out = null;
Reader in = (Reader) source();
out = new BufferedReader(in, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;BufferedReader;true;readLine;;;Argument[-1];ReturnValue;taint;manual"
String out = null;
BufferedReader in = (BufferedReader) source();
out = in.readLine();
sink(out); // $ hasTaintFlow
}
{
// "java.io;ByteArrayInputStream;false;ByteArrayInputStream;;;Argument[0];Argument[-1];taint;manual"
ByteArrayInputStream out = null;
byte[] in = (byte[]) source();
out = new ByteArrayInputStream(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;ByteArrayInputStream;false;ByteArrayInputStream;;;Argument[0];Argument[-1];taint;manual"
ByteArrayInputStream out = null;
byte[] in = (byte[]) source();
out = new ByteArrayInputStream(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;ByteArrayOutputStream;false;toByteArray;;;Argument[-1];ReturnValue;taint;manual"
byte[] out = null;
ByteArrayOutputStream in = (ByteArrayOutputStream) source();
out = in.toByteArray();
sink(out); // $ hasTaintFlow
}
{
// "java.io;ByteArrayOutputStream;false;toString;;;Argument[-1];ReturnValue;taint;manual"
String out = null;
ByteArrayOutputStream in = (ByteArrayOutputStream) source();
out = in.toString((Charset) null);
sink(out); // $ hasTaintFlow
}
{
// "java.io;ByteArrayOutputStream;false;toString;;;Argument[-1];ReturnValue;taint;manual"
String out = null;
ByteArrayOutputStream in = (ByteArrayOutputStream) source();
out = in.toString((String) null);
sink(out); // $ hasTaintFlow
}
{
// "java.io;ByteArrayOutputStream;false;toString;;;Argument[-1];ReturnValue;taint;manual"
String out = null;
ByteArrayOutputStream in = (ByteArrayOutputStream) source();
out = in.toString();
sink(out); // $ hasTaintFlow
}
{
// "java.io;ByteArrayOutputStream;false;toString;;;Argument[-1];ReturnValue;taint;manual"
String out = null;
ByteArrayOutputStream in = (ByteArrayOutputStream) source();
out = in.toString(0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;ByteArrayOutputStream;false;writeTo;;;Argument[-1];Argument[0];taint;manual"
OutputStream out = null;
ByteArrayOutputStream in = (ByteArrayOutputStream) source();
in.writeTo(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;CharArrayReader;false;CharArrayReader;;;Argument[0];Argument[-1];taint;manual"
CharArrayReader out = null;
char[] in = (char[]) source();
out = new CharArrayReader(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;CharArrayReader;false;CharArrayReader;;;Argument[0];Argument[-1];taint;manual"
CharArrayReader out = null;
char[] in = (char[]) source();
out = new CharArrayReader(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;CharArrayWriter;true;toCharArray;;;Argument[-1];ReturnValue;taint;manual"
char[] out = null;
CharArrayWriter in = (CharArrayWriter) source();
out = in.toCharArray();
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
DataInput in = (DataInput) source();
in.readFully(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
DataInput in = (DataInput) source();
in.readFully(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
DataInputStream in = (DataInputStream) source();
in.readFully(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
DataInputStream in = (DataInputStream) source();
in.readFully(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
ObjectInputStream in = (ObjectInputStream) source();
in.readFully(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
ObjectInputStream in = (ObjectInputStream) source();
in.readFully(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readLine;();;Argument[-1];ReturnValue;taint;manual"
String out = null;
DataInput in = (DataInput) source();
out = in.readLine();
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readLine;();;Argument[-1];ReturnValue;taint;manual"
String out = null;
DataInputStream in = (DataInputStream) source();
out = in.readLine();
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readLine;();;Argument[-1];ReturnValue;taint;manual"
String out = null;
ObjectInputStream in = (ObjectInputStream) source();
out = in.readLine();
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readUTF;();;Argument[-1];ReturnValue;taint;manual"
String out = null;
DataInput in = (DataInput) source();
out = in.readUTF();
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readUTF;();;Argument[-1];ReturnValue;taint;manual"
String out = null;
DataInputStream in = (DataInputStream) source();
out = in.readUTF();
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInput;true;readUTF;();;Argument[-1];ReturnValue;taint;manual"
String out = null;
ObjectInputStream in = (ObjectInputStream) source();
out = in.readUTF();
sink(out); // $ hasTaintFlow
}
{
// "java.io;DataInputStream;false;DataInputStream;;;Argument[0];Argument[-1];taint;manual"
DataInputStream out = null;
InputStream in = (InputStream) source();
out = new DataInputStream(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual"
File out = null;
File in = (File) source();
out = new File(in, (String) null);
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual"
File out = null;
String in = (String) source();
out = new File(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual"
File out = null;
String in = (String) source();
out = new File(in, (String) null);
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual"
File out = null;
URI in = (URI) source();
out = new File(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;false;File;;;Argument[1];Argument[-1];taint;manual"
File out = null;
String in = (String) source();
out = new File((File) null, in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;false;File;;;Argument[1];Argument[-1];taint;manual"
File out = null;
String in = (String) source();
out = new File((String) null, in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;true;getAbsoluteFile;;;Argument[-1];ReturnValue;taint;manual"
File out = null;
File in = (File) source();
out = in.getAbsoluteFile();
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;true;getAbsolutePath;;;Argument[-1];ReturnValue;taint;manual"
String out = null;
File in = (File) source();
out = in.getAbsolutePath();
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;true;getCanonicalFile;;;Argument[-1];ReturnValue;taint;manual"
File out = null;
File in = (File) source();
out = in.getCanonicalFile();
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;true;getCanonicalPath;;;Argument[-1];ReturnValue;taint;manual"
String out = null;
File in = (File) source();
out = in.getCanonicalPath();
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;true;getName;();;Argument[-1];ReturnValue;taint;manual"
String out = null;
File in = (File) source();
out = in.getName();
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;true;toPath;;;Argument[-1];ReturnValue;taint;manual"
Path out = null;
File in = (File) source();
out = in.toPath();
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;true;toString;;;Argument[-1];ReturnValue;taint;manual"
String out = null;
File in = (File) source();
out = in.toString();
sink(out); // $ hasTaintFlow
}
{
// "java.io;File;true;toURI;;;Argument[-1];ReturnValue;taint;manual"
URI out = null;
File in = (File) source();
out = in.toURI();
sink(out); // $ hasTaintFlow
}
{
// "java.io;FilterOutputStream;true;FilterOutputStream;(OutputStream);;Argument[0];Argument[-1];taint;manual"
FilterOutputStream out = null;
OutputStream in = (OutputStream) source();
out = new FilterOutputStream(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;IOException;false;IOException;(String);;Argument[0];Argument[-1].SyntheticField[java.lang.Throwable.message];value;manual"
IOException out = null;
String in = (String) source();
out = new IOException(in);
sink(getThrowable_messageDefault(out)); // $ hasValueFlow
}
{
// "java.io;InputStream;true;read;(byte[]);;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
DataInputStream in = (DataInputStream) source();
in.read(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;read;(byte[]);;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
FilterInputStream in = (FilterInputStream) source();
in.read(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;read;(byte[]);;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
InputStream in = (InputStream) source();
in.read(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
BufferedInputStream in = (BufferedInputStream) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
ByteArrayInputStream in = (ByteArrayInputStream) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
DataInputStream in = (DataInputStream) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
FilterInputStream in = (FilterInputStream) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
InputStream in = (InputStream) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
ObjectInputStream in = (ObjectInputStream) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;readAllBytes;;;Argument[-1];ReturnValue;taint;manual"
byte[] out = null;
ByteArrayInputStream in = (ByteArrayInputStream) source();
out = in.readAllBytes();
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;readAllBytes;;;Argument[-1];ReturnValue;taint;manual"
byte[] out = null;
InputStream in = (InputStream) source();
out = in.readAllBytes();
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;readNBytes;(byte[],int,int);;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
ByteArrayInputStream in = (ByteArrayInputStream) source();
in.readNBytes(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;readNBytes;(byte[],int,int);;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
InputStream in = (InputStream) source();
in.readNBytes(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;readNBytes;(int);;Argument[-1];ReturnValue;taint;manual"
byte[] out = null;
InputStream in = (InputStream) source();
out = in.readNBytes(0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;transferTo;(OutputStream);;Argument[-1];Argument[0];taint;manual"
OutputStream out = null;
ByteArrayInputStream in = (ByteArrayInputStream) source();
in.transferTo(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStream;true;transferTo;(OutputStream);;Argument[-1];Argument[0];taint;manual"
OutputStream out = null;
InputStream in = (InputStream) source();
in.transferTo(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[-1];taint;manual"
InputStreamReader out = null;
InputStream in = (InputStream) source();
out = new InputStreamReader(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[-1];taint;manual"
InputStreamReader out = null;
InputStream in = (InputStream) source();
out = new InputStreamReader(in, (Charset) null);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[-1];taint;manual"
InputStreamReader out = null;
InputStream in = (InputStream) source();
out = new InputStreamReader(in, (CharsetDecoder) null);
sink(out); // $ hasTaintFlow
}
{
// "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[-1];taint;manual"
InputStreamReader out = null;
InputStream in = (InputStream) source();
out = new InputStreamReader(in, (String) null);
sink(out); // $ hasTaintFlow
}
{
// "java.io;ObjectInput;true;read;;;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
ObjectInput in = (ObjectInput) source();
in.read(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;ObjectInput;true;read;;;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
ObjectInput in = (ObjectInput) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;ObjectInput;true;read;;;Argument[-1];Argument[0];taint;manual"
byte[] out = null;
ObjectInputStream in = (ObjectInputStream) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;ObjectInputStream;false;ObjectInputStream;;;Argument[0];Argument[-1];taint;manual"
ObjectInputStream out = null;
InputStream in = (InputStream) source();
out = new ObjectInputStream(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[-1];taint;manual"
FilterOutputStream out = null;
byte[] in = (byte[]) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[-1];taint;manual"
ObjectOutputStream out = null;
byte[] in = (byte[]) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[-1];taint;manual"
OutputStream out = null;
byte[] in = (byte[]) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[-1];taint;manual"
PrintStream out = null;
byte[] in = (byte[]) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[-1];taint;manual"
ByteArrayOutputStream out = null;
byte[] in = (byte[]) source();
out.write(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[-1];taint;manual"
FilterOutputStream out = null;
byte[] in = (byte[]) source();
out.write(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[-1];taint;manual"
ObjectOutputStream out = null;
byte[] in = (byte[]) source();
out.write(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[-1];taint;manual"
OutputStream out = null;
byte[] in = (byte[]) source();
out.write(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[-1];taint;manual"
PrintStream out = null;
byte[] in = (byte[]) source();
out.write(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(int);;Argument[0];Argument[-1];taint;manual"
ByteArrayOutputStream out = null;
int in = (int) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(int);;Argument[0];Argument[-1];taint;manual"
FilterOutputStream out = null;
int in = (int) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(int);;Argument[0];Argument[-1];taint;manual"
ObjectOutputStream out = null;
int in = (int) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(int);;Argument[0];Argument[-1];taint;manual"
OutputStream out = null;
int in = (int) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;OutputStream;true;write;(int);;Argument[0];Argument[-1];taint;manual"
PrintStream out = null;
int in = (int) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual"
CharBuffer out = null;
CharArrayReader in = (CharArrayReader) source();
in.read(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual"
CharBuffer out = null;
InputStreamReader in = (InputStreamReader) source();
in.read(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual"
CharBuffer out = null;
Reader in = (Reader) source();
in.read(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual"
char[] out = null;
BufferedReader in = (BufferedReader) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual"
char[] out = null;
CharArrayReader in = (CharArrayReader) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual"
char[] out = null;
InputStreamReader in = (InputStreamReader) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual"
char[] out = null;
Reader in = (Reader) source();
in.read(out);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual"
char[] out = null;
Reader in = (Reader) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual"
char[] out = null;
StringReader in = (StringReader) source();
in.read(out, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;StringReader;false;StringReader;;;Argument[0];Argument[-1];taint;manual"
StringReader out = null;
String in = (String) source();
out = new StringReader(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
CharArrayWriter out = null;
String in = (String) source();
out.write(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
CharArrayWriter out = null;
char[] in = (char[]) source();
out.write(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
CharArrayWriter out = null;
int in = (int) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
PrintWriter out = null;
String in = (String) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
PrintWriter out = null;
String in = (String) source();
out.write(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
PrintWriter out = null;
char[] in = (char[]) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
PrintWriter out = null;
char[] in = (char[]) source();
out.write(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
PrintWriter out = null;
int in = (int) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
Writer out = null;
String in = (String) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
Writer out = null;
String in = (String) source();
out.write(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
Writer out = null;
char[] in = (char[]) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
Writer out = null;
char[] in = (char[]) source();
out.write(in, 0, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual"
Writer out = null;
int in = (int) source();
out.write(in);
sink(out); // $ hasTaintFlow
}
}
}

View File

@@ -0,0 +1,6 @@
extensions:
- addsTo:
pack: codeql/java-tests
extensible: summaryModel
data:
- ["generatedtest", "Test", False, "getThrowable_messageDefault", "(Object)", "", "Argument[0].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"]

View File

@@ -0,0 +1,2 @@
import java
import TestUtilities.InlineFlowTest

View File

@@ -1,5 +1,7 @@
package generatedtest;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.URI;
import java.net.URL;
import java.net.URLDecoder;
@@ -16,6 +18,27 @@ public class Test {
public void test() throws Exception {
{
// "java.net;InetAddress;true;getByName;(String);;Argument[0];ReturnValue;taint;ai-generated"
InetAddress out = null;
String in = (String) source();
out = InetAddress.getByName(in);
sink(out); // $ hasTaintFlow
}
{
// "java.net;InetSocketAddress;true;InetSocketAddress;(String,int);;Argument[0];Argument[-1];taint;ai-generated"
InetSocketAddress out = null;
String in = (String) source();
out = new InetSocketAddress(in, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.net;InetSocketAddress;true;createUnresolved;(String,int);;Argument[0];ReturnValue;taint;ai-generated"
InetSocketAddress out = null;
String in = (String) source();
out = InetSocketAddress.createUnresolved(in, 0);
sink(out); // $ hasTaintFlow
}
{
// "java.net;URI;false;URI;(String);;Argument[0];Argument[-1];taint;manual"
URI out = null;
@@ -30,6 +53,22 @@ public class Test {
out = URI.create(in);
sink(out); // $ hasTaintFlow
}
{
// "java.net;URI;false;resolve;(String);;Argument[0];ReturnValue;taint;ai-generated"
URI out = null;
String in = (String) source();
URI instance = null;
out = instance.resolve(in);
sink(out); // $ hasTaintFlow
}
{
// "java.net;URI;false;resolve;(URI);;Argument[0];ReturnValue;taint;ai-generated"
URI out = null;
URI in = (URI) source();
URI instance = null;
out = instance.resolve(in);
sink(out); // $ hasTaintFlow
}
{
// "java.net;URI;false;toASCIIString;;;Argument[-1];ReturnValue;taint;manual"
String out = null;
@@ -58,6 +97,20 @@ public class Test {
out = new URL(in);
sink(out); // $ hasTaintFlow
}
{
// "java.net;URL;false;URL;(URL,String);;Argument[0];Argument[-1];taint;ai-generated"
URL out = null;
URL in = (URL) source();
out = new URL(in, null);
sink(out); // $ hasTaintFlow
}
{
// "java.net;URL;false;URL;(URL,String);;Argument[1];Argument[-1];taint;ai-generated"
URL out = null;
String in = (String) source();
out = new URL(null, in);
sink(out); // $ hasTaintFlow
}
{
// "java.net;URL;false;toExternalForm;;;Argument[-1];ReturnValue;taint;manual"
String out = null;

View File

@@ -0,0 +1,124 @@
package generatedtest;
import java.io.File;
import java.net.URI;
import java.nio.file.FileSystem;
import java.nio.file.Path;
import java.nio.file.Paths;
// Test case generated by GenerateFlowTestCase.ql
public class Test {
Object source() {
return null;
}
void sink(Object o) {}
public void test() throws Exception {
{
// "java.nio.file;FileSystem;true;getPath;;;Argument[0];ReturnValue;taint;manual"
Path out = null;
String in = (String) source();
FileSystem instance = null;
out = instance.getPath(in, (String[]) null);
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Path;false;toFile;;;Argument[-1];ReturnValue;taint;manual"
File out = null;
Path in = (Path) source();
out = in.toFile();
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Path;true;getParent;;;Argument[-1];ReturnValue;taint;manual"
Path out = null;
Path in = (Path) source();
out = in.getParent();
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Path;true;normalize;;;Argument[-1];ReturnValue;taint;manual"
Path out = null;
Path in = (Path) source();
out = in.normalize();
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual"
Path out = null;
Path in = (Path) source();
Path instance = null;
out = instance.resolve(in);
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual"
Path out = null;
Path in = (Path) source();
out = in.resolve((Path) null);
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual"
Path out = null;
Path in = (Path) source();
out = in.resolve((String) null);
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual"
Path out = null;
String in = (String) source();
Path instance = null;
out = instance.resolve(in);
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Path;true;toAbsolutePath;;;Argument[-1];ReturnValue;taint;manual"
Path out = null;
Path in = (Path) source();
out = in.toAbsolutePath();
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Path;true;toString;;;Argument[-1];ReturnValue;taint;manual"
String out = null;
Path in = (Path) source();
out = in.toString();
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Path;true;toUri;;;Argument[-1];ReturnValue;taint;manual"
URI out = null;
Path in = (Path) source();
out = in.toUri();
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Paths;true;get;;;Argument[0];ReturnValue;taint;manual"
Path out = null;
String in = (String) source();
out = Paths.get(in, (String[]) null);
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Paths;true;get;;;Argument[0];ReturnValue;taint;manual"
Path out = null;
URI in = (URI) source();
out = Paths.get(in);
sink(out); // $ hasTaintFlow
}
{
// "java.nio.file;Paths;true;get;;;Argument[1].ArrayElement;ReturnValue;taint;manual"
Path out = null;
String[] in = (String[]) new String[] {(String) source()};
out = Paths.get((String) null, in);
sink(out); // $ hasTaintFlow
}
}
}

View File

@@ -0,0 +1,2 @@
import java
import TestUtilities.InlineFlowTest

View File

@@ -0,0 +1,28 @@
package generatedtest;
import io.netty.resolver.SimpleNameResolver;
import io.netty.util.concurrent.Future;
// Test case generated by GenerateFlowTestCase.ql
public class Test {
Object source() {
return null;
}
void sink(Object o) {}
public void test() throws Exception {
{
// "io.netty.resolver;SimpleNameResolver;false;resolve;(String);;Argument[0];ReturnValue;taint;ai-generated"
Future out = null;
String in = (String) source();
SimpleNameResolver instance = null;
out = instance.resolve(in);
sink(out); // $ hasTaintFlow
}
}
}

View File

@@ -0,0 +1 @@
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/netty-4.1.x

View File

@@ -0,0 +1,2 @@
import java
import TestUtilities.InlineFlowTest

View File

@@ -0,0 +1,26 @@
package generatedtest;
import org.kohsuke.stapler.framework.adjunct.AdjunctManager;
// Test case generated by GenerateFlowTestCase.ql
public class Test {
Object source() {
return null;
}
void sink(Object o) {}
public void test() throws Exception {
{
// "org.kohsuke.stapler.framework.adjunct;AdjunctManager;true;AdjunctManager;(ServletContext,ClassLoader,String,long);;Argument[2];Argument[-1].Field[org.kohsuke.stapler.framework.adjunct.AdjunctManager.rootURL];taint;ai-generated"
AdjunctManager out = null;
String in = (String) source();
out = new AdjunctManager(null, null, in, 0L);
sink(out.rootURL); // $ hasTaintFlow
}
}
}

View File

@@ -0,0 +1 @@
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/stapler-1.263:${testdir}/../../../stubs/javax-servlet-2.5:${testdir}/../../../stubs/apache-commons-jelly-1.0.1:${testdir}/../../../stubs/apache-commons-fileupload-1.4:${testdir}/../../../stubs/saxon-xqj-9.x:${testdir}/../../../stubs/apache-commons-beanutils:${testdir}/../../../stubs/dom4j-2.1.1:${testdir}/../../../stubs/apache-commons-lang:${testdir}/../../../stubs/jaxen-1.2.0

View File

@@ -0,0 +1,2 @@
import java
import TestUtilities.InlineFlowTest

View File

@@ -14,22 +14,108 @@ edges
| Test.java:95:14:95:34 | getHostName(...) : String | Test.java:99:12:99:33 | new URI(...) |
| Test.java:95:14:95:34 | getHostName(...) : String | Test.java:100:12:100:45 | new URI(...) |
| Test.java:95:14:95:34 | getHostName(...) : String | Test.java:101:12:101:54 | new URI(...) |
| mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:17:61:17:72 | source(...) : String |
| mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:19:41:19:52 | source(...) : String |
| mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:25:38:25:49 | source(...) : String |
| mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:27:36:27:47 | source(...) : String |
| mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:29:31:29:42 | source(...) : String |
| mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:31:33:31:44 | source(...) : String |
| mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:33:50:33:61 | source(...) : String |
| mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:35:54:35:65 | source(...) : String |
| mad/Test.java:17:61:17:72 | source(...) : String | mad/Test.java:17:52:17:72 | (...)... |
| mad/Test.java:19:41:19:52 | source(...) : String | mad/Test.java:19:32:19:52 | (...)... |
| mad/Test.java:25:38:25:49 | source(...) : String | mad/Test.java:25:31:25:49 | (...)... |
| mad/Test.java:27:36:27:47 | source(...) : String | mad/Test.java:27:29:27:47 | (...)... |
| mad/Test.java:29:31:29:42 | source(...) : String | mad/Test.java:29:24:29:42 | (...)... |
| mad/Test.java:31:33:31:44 | source(...) : String | mad/Test.java:31:24:31:44 | (...)... |
| mad/Test.java:33:50:33:61 | source(...) : String | mad/Test.java:33:41:33:61 | (...)... |
| mad/Test.java:35:54:35:65 | source(...) : String | mad/Test.java:35:45:35:65 | (...)... |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:33:61:33:68 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:35:41:35:48 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:37:56:37:63 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:39:46:39:53 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:41:38:41:45 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:43:36:43:43 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:45:31:45:38 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:47:33:47:40 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:49:27:49:34 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:50:27:50:34 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:51:34:51:41 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:53:40:53:47 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:54:48:54:55 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:55:47:55:54 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:57:40:57:47 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:59:38:59:45 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:61:33:61:40 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:63:33:63:40 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:65:41:65:48 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:67:42:67:49 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:69:37:69:44 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:71:29:71:36 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:73:37:73:44 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:75:28:75:35 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:77:33:77:40 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:79:40:79:47 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:81:40:81:47 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:82:40:82:47 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:84:38:84:45 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:86:28:86:35 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:87:28:87:35 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:88:28:88:35 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:90:34:90:41 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:91:34:91:41 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:93:33:93:40 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:95:42:95:49 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:97:50:97:57 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:99:54:99:61 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:104:37:104:44 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:106:74:106:81 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:108:68:108:75 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:110:68:110:75 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:112:30:112:37 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:117:30:117:37 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:122:33:122:40 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:124:27:124:34 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:126:28:126:35 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:128:29:128:36 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:133:27:133:34 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:135:26:135:33 | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:140:29:140:36 | source(...) : String |
| mad/Test.java:33:61:33:68 | source(...) : String | mad/Test.java:33:52:33:68 | (...)... |
| mad/Test.java:35:41:35:48 | source(...) : String | mad/Test.java:35:32:35:48 | (...)... |
| mad/Test.java:37:56:37:63 | source(...) : String | mad/Test.java:37:47:37:63 | (...)... |
| mad/Test.java:39:46:39:53 | source(...) : String | mad/Test.java:39:39:39:53 | (...)... |
| mad/Test.java:41:38:41:45 | source(...) : String | mad/Test.java:41:31:41:45 | (...)... |
| mad/Test.java:43:36:43:43 | source(...) : String | mad/Test.java:43:29:43:43 | (...)... |
| mad/Test.java:45:31:45:38 | source(...) : String | mad/Test.java:45:24:45:38 | (...)... |
| mad/Test.java:47:33:47:40 | source(...) : String | mad/Test.java:47:24:47:40 | (...)... |
| mad/Test.java:49:27:49:34 | source(...) : String | mad/Test.java:49:20:49:34 | (...)... |
| mad/Test.java:50:27:50:34 | source(...) : String | mad/Test.java:50:20:50:34 | (...)... |
| mad/Test.java:51:34:51:41 | source(...) : String | mad/Test.java:51:20:51:41 | (...)... |
| mad/Test.java:53:40:53:47 | source(...) : String | mad/Test.java:53:33:53:47 | (...)... |
| mad/Test.java:54:48:54:55 | source(...) : String | mad/Test.java:54:33:54:55 | (...)... |
| mad/Test.java:55:47:55:54 | source(...) : String | mad/Test.java:55:40:55:54 | (...)... |
| mad/Test.java:57:40:57:47 | source(...) : String | mad/Test.java:57:33:57:47 | (...)... |
| mad/Test.java:59:38:59:45 | source(...) : String | mad/Test.java:59:31:59:45 | (...)... |
| mad/Test.java:61:33:61:40 | source(...) : String | mad/Test.java:61:26:61:40 | (...)... |
| mad/Test.java:63:33:63:40 | source(...) : String | mad/Test.java:63:26:63:40 | (...)... |
| mad/Test.java:65:41:65:48 | source(...) : String | mad/Test.java:65:34:65:48 | (...)... |
| mad/Test.java:67:42:67:49 | source(...) : String | mad/Test.java:67:35:67:49 | (...)... |
| mad/Test.java:69:37:69:44 | source(...) : String | mad/Test.java:69:30:69:44 | (...)... |
| mad/Test.java:71:29:71:36 | source(...) : String | mad/Test.java:71:22:71:36 | (...)... |
| mad/Test.java:73:37:73:44 | source(...) : String | mad/Test.java:73:30:73:44 | (...)... |
| mad/Test.java:75:28:75:35 | source(...) : String | mad/Test.java:75:21:75:35 | (...)... |
| mad/Test.java:77:33:77:40 | source(...) : String | mad/Test.java:77:26:77:40 | (...)... |
| mad/Test.java:79:40:79:47 | source(...) : String | mad/Test.java:79:33:79:47 | (...)... |
| mad/Test.java:81:40:81:47 | source(...) : String | mad/Test.java:81:33:81:47 | (...)... |
| mad/Test.java:82:40:82:47 | source(...) : String | mad/Test.java:82:33:82:47 | (...)... |
| mad/Test.java:84:38:84:45 | source(...) : String | mad/Test.java:84:31:84:45 | (...)... |
| mad/Test.java:86:28:86:35 | source(...) : String | mad/Test.java:86:21:86:35 | (...)... |
| mad/Test.java:87:28:87:35 | source(...) : String | mad/Test.java:87:21:87:35 | (...)... |
| mad/Test.java:88:28:88:35 | source(...) : String | mad/Test.java:88:21:88:35 | (...)... |
| mad/Test.java:90:34:90:41 | source(...) : String | mad/Test.java:90:27:90:41 | (...)... |
| mad/Test.java:91:34:91:41 | source(...) : String | mad/Test.java:91:27:91:41 | (...)... |
| mad/Test.java:93:33:93:40 | source(...) : String | mad/Test.java:93:26:93:40 | (...)... |
| mad/Test.java:95:42:95:49 | source(...) : String | mad/Test.java:95:35:95:49 | (...)... |
| mad/Test.java:97:50:97:57 | source(...) : String | mad/Test.java:97:41:97:57 | (...)... |
| mad/Test.java:99:54:99:61 | source(...) : String | mad/Test.java:99:45:99:61 | (...)... |
| mad/Test.java:104:37:104:44 | source(...) : String | mad/Test.java:104:30:104:44 | (...)... |
| mad/Test.java:106:74:106:81 | source(...) : String | mad/Test.java:106:40:106:81 | (...)... |
| mad/Test.java:108:68:108:75 | source(...) : String | mad/Test.java:108:34:108:75 | (...)... |
| mad/Test.java:110:68:110:75 | source(...) : String | mad/Test.java:110:34:110:75 | (...)... |
| mad/Test.java:112:30:112:37 | source(...) : String | mad/Test.java:112:23:112:37 | (...)... |
| mad/Test.java:117:30:117:37 | source(...) : String | mad/Test.java:117:23:117:37 | (...)... |
| mad/Test.java:122:33:122:40 | source(...) : String | mad/Test.java:122:23:122:40 | (...)... |
| mad/Test.java:124:27:124:34 | source(...) : String | mad/Test.java:124:20:124:34 | (...)... |
| mad/Test.java:126:28:126:35 | source(...) : String | mad/Test.java:126:21:126:35 | (...)... |
| mad/Test.java:128:29:128:36 | source(...) : String | mad/Test.java:128:22:128:36 | (...)... |
| mad/Test.java:133:27:133:34 | source(...) : String | mad/Test.java:133:20:133:34 | (...)... |
| mad/Test.java:135:26:135:33 | source(...) : String | mad/Test.java:135:19:135:33 | (...)... |
| mad/Test.java:140:29:140:36 | source(...) : String | mad/Test.java:140:20:140:36 | (...)... |
nodes
| Test.java:19:18:19:38 | getHostName(...) : String | semmle.label | getHostName(...) : String |
| Test.java:24:20:24:23 | temp | semmle.label | temp |
@@ -50,23 +136,109 @@ nodes
| Test.java:99:12:99:33 | new URI(...) | semmle.label | new URI(...) |
| Test.java:100:12:100:45 | new URI(...) | semmle.label | new URI(...) |
| Test.java:101:12:101:54 | new URI(...) | semmle.label | new URI(...) |
| mad/Test.java:12:16:12:36 | getHostName(...) : String | semmle.label | getHostName(...) : String |
| mad/Test.java:17:52:17:72 | (...)... | semmle.label | (...)... |
| mad/Test.java:17:61:17:72 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:19:32:19:52 | (...)... | semmle.label | (...)... |
| mad/Test.java:19:41:19:52 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:25:31:25:49 | (...)... | semmle.label | (...)... |
| mad/Test.java:25:38:25:49 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:27:29:27:47 | (...)... | semmle.label | (...)... |
| mad/Test.java:27:36:27:47 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:29:24:29:42 | (...)... | semmle.label | (...)... |
| mad/Test.java:29:31:29:42 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:31:24:31:44 | (...)... | semmle.label | (...)... |
| mad/Test.java:31:33:31:44 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:33:41:33:61 | (...)... | semmle.label | (...)... |
| mad/Test.java:33:50:33:61 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:35:45:35:65 | (...)... | semmle.label | (...)... |
| mad/Test.java:35:54:35:65 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:28:16:28:36 | getHostName(...) : String | semmle.label | getHostName(...) : String |
| mad/Test.java:33:52:33:68 | (...)... | semmle.label | (...)... |
| mad/Test.java:33:61:33:68 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:35:32:35:48 | (...)... | semmle.label | (...)... |
| mad/Test.java:35:41:35:48 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:37:47:37:63 | (...)... | semmle.label | (...)... |
| mad/Test.java:37:56:37:63 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:39:39:39:53 | (...)... | semmle.label | (...)... |
| mad/Test.java:39:46:39:53 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:41:31:41:45 | (...)... | semmle.label | (...)... |
| mad/Test.java:41:38:41:45 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:43:29:43:43 | (...)... | semmle.label | (...)... |
| mad/Test.java:43:36:43:43 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:45:24:45:38 | (...)... | semmle.label | (...)... |
| mad/Test.java:45:31:45:38 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:47:24:47:40 | (...)... | semmle.label | (...)... |
| mad/Test.java:47:33:47:40 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:49:20:49:34 | (...)... | semmle.label | (...)... |
| mad/Test.java:49:27:49:34 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:50:20:50:34 | (...)... | semmle.label | (...)... |
| mad/Test.java:50:27:50:34 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:51:20:51:41 | (...)... | semmle.label | (...)... |
| mad/Test.java:51:34:51:41 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:53:33:53:47 | (...)... | semmle.label | (...)... |
| mad/Test.java:53:40:53:47 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:54:33:54:55 | (...)... | semmle.label | (...)... |
| mad/Test.java:54:48:54:55 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:55:40:55:54 | (...)... | semmle.label | (...)... |
| mad/Test.java:55:47:55:54 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:57:33:57:47 | (...)... | semmle.label | (...)... |
| mad/Test.java:57:40:57:47 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:59:31:59:45 | (...)... | semmle.label | (...)... |
| mad/Test.java:59:38:59:45 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:61:26:61:40 | (...)... | semmle.label | (...)... |
| mad/Test.java:61:33:61:40 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:63:26:63:40 | (...)... | semmle.label | (...)... |
| mad/Test.java:63:33:63:40 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:65:34:65:48 | (...)... | semmle.label | (...)... |
| mad/Test.java:65:41:65:48 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:67:35:67:49 | (...)... | semmle.label | (...)... |
| mad/Test.java:67:42:67:49 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:69:30:69:44 | (...)... | semmle.label | (...)... |
| mad/Test.java:69:37:69:44 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:71:22:71:36 | (...)... | semmle.label | (...)... |
| mad/Test.java:71:29:71:36 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:73:30:73:44 | (...)... | semmle.label | (...)... |
| mad/Test.java:73:37:73:44 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:75:21:75:35 | (...)... | semmle.label | (...)... |
| mad/Test.java:75:28:75:35 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:77:26:77:40 | (...)... | semmle.label | (...)... |
| mad/Test.java:77:33:77:40 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:79:33:79:47 | (...)... | semmle.label | (...)... |
| mad/Test.java:79:40:79:47 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:81:33:81:47 | (...)... | semmle.label | (...)... |
| mad/Test.java:81:40:81:47 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:82:33:82:47 | (...)... | semmle.label | (...)... |
| mad/Test.java:82:40:82:47 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:84:31:84:45 | (...)... | semmle.label | (...)... |
| mad/Test.java:84:38:84:45 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:86:21:86:35 | (...)... | semmle.label | (...)... |
| mad/Test.java:86:28:86:35 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:87:21:87:35 | (...)... | semmle.label | (...)... |
| mad/Test.java:87:28:87:35 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:88:21:88:35 | (...)... | semmle.label | (...)... |
| mad/Test.java:88:28:88:35 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:90:27:90:41 | (...)... | semmle.label | (...)... |
| mad/Test.java:90:34:90:41 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:91:27:91:41 | (...)... | semmle.label | (...)... |
| mad/Test.java:91:34:91:41 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:93:26:93:40 | (...)... | semmle.label | (...)... |
| mad/Test.java:93:33:93:40 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:95:35:95:49 | (...)... | semmle.label | (...)... |
| mad/Test.java:95:42:95:49 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:97:41:97:57 | (...)... | semmle.label | (...)... |
| mad/Test.java:97:50:97:57 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:99:45:99:61 | (...)... | semmle.label | (...)... |
| mad/Test.java:99:54:99:61 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:104:30:104:44 | (...)... | semmle.label | (...)... |
| mad/Test.java:104:37:104:44 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:106:40:106:81 | (...)... | semmle.label | (...)... |
| mad/Test.java:106:74:106:81 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:108:34:108:75 | (...)... | semmle.label | (...)... |
| mad/Test.java:108:68:108:75 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:110:34:110:75 | (...)... | semmle.label | (...)... |
| mad/Test.java:110:68:110:75 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:112:23:112:37 | (...)... | semmle.label | (...)... |
| mad/Test.java:112:30:112:37 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:117:23:117:37 | (...)... | semmle.label | (...)... |
| mad/Test.java:117:30:117:37 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:122:23:122:40 | (...)... | semmle.label | (...)... |
| mad/Test.java:122:33:122:40 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:124:20:124:34 | (...)... | semmle.label | (...)... |
| mad/Test.java:124:27:124:34 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:126:21:126:35 | (...)... | semmle.label | (...)... |
| mad/Test.java:126:28:126:35 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:128:22:128:36 | (...)... | semmle.label | (...)... |
| mad/Test.java:128:29:128:36 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:133:20:133:34 | (...)... | semmle.label | (...)... |
| mad/Test.java:133:27:133:34 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:135:19:135:33 | (...)... | semmle.label | (...)... |
| mad/Test.java:135:26:135:33 | source(...) : String | semmle.label | source(...) : String |
| mad/Test.java:140:20:140:36 | (...)... | semmle.label | (...)... |
| mad/Test.java:140:29:140:36 | source(...) : String | semmle.label | source(...) : String |
subpaths
#select
| Test.java:24:11:24:24 | new File(...) | Test.java:19:18:19:38 | getHostName(...) : String | Test.java:24:20:24:23 | temp | This path depends on a $@. | Test.java:19:18:19:38 | getHostName(...) | user-provided value |
@@ -80,11 +252,54 @@ subpaths
| Test.java:99:3:99:34 | new File(...) | Test.java:95:14:95:34 | getHostName(...) : String | Test.java:99:12:99:33 | new URI(...) | This path depends on a $@. | Test.java:95:14:95:34 | getHostName(...) | user-provided value |
| Test.java:100:3:100:46 | new File(...) | Test.java:95:14:95:34 | getHostName(...) : String | Test.java:100:12:100:45 | new URI(...) | This path depends on a $@. | Test.java:95:14:95:34 | getHostName(...) | user-provided value |
| Test.java:101:3:101:55 | new File(...) | Test.java:95:14:95:34 | getHostName(...) : String | Test.java:101:12:101:54 | new URI(...) | This path depends on a $@. | Test.java:95:14:95:34 | getHostName(...) | user-provided value |
| mad/Test.java:17:52:17:72 | (...)... | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:17:52:17:72 | (...)... | This path depends on a $@. | mad/Test.java:12:16:12:36 | getHostName(...) | user-provided value |
| mad/Test.java:19:32:19:52 | (...)... | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:19:32:19:52 | (...)... | This path depends on a $@. | mad/Test.java:12:16:12:36 | getHostName(...) | user-provided value |
| mad/Test.java:25:31:25:49 | (...)... | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:25:31:25:49 | (...)... | This path depends on a $@. | mad/Test.java:12:16:12:36 | getHostName(...) | user-provided value |
| mad/Test.java:27:29:27:47 | (...)... | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:27:29:27:47 | (...)... | This path depends on a $@. | mad/Test.java:12:16:12:36 | getHostName(...) | user-provided value |
| mad/Test.java:29:24:29:42 | (...)... | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:29:24:29:42 | (...)... | This path depends on a $@. | mad/Test.java:12:16:12:36 | getHostName(...) | user-provided value |
| mad/Test.java:31:9:31:45 | new FileReader(...) | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:31:24:31:44 | (...)... | This path depends on a $@. | mad/Test.java:12:16:12:36 | getHostName(...) | user-provided value |
| mad/Test.java:33:41:33:61 | (...)... | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:33:41:33:61 | (...)... | This path depends on a $@. | mad/Test.java:12:16:12:36 | getHostName(...) | user-provided value |
| mad/Test.java:35:45:35:65 | (...)... | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:35:45:35:65 | (...)... | This path depends on a $@. | mad/Test.java:12:16:12:36 | getHostName(...) | user-provided value |
| mad/Test.java:33:52:33:68 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:33:52:33:68 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:35:32:35:48 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:35:32:35:48 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:37:47:37:63 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:37:47:37:63 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:39:39:39:53 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:39:39:39:53 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:41:31:41:45 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:41:31:41:45 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:43:29:43:43 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:43:29:43:43 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:45:24:45:38 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:45:24:45:38 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:47:9:47:41 | new FileReader(...) | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:47:24:47:40 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:49:20:49:34 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:49:20:49:34 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:50:20:50:34 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:50:20:50:34 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:51:20:51:41 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:51:20:51:41 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:53:33:53:47 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:53:33:53:47 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:54:33:54:55 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:54:33:54:55 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:55:40:55:54 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:55:40:55:54 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:57:33:57:47 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:57:33:57:47 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:59:31:59:45 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:59:31:59:45 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:61:26:61:40 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:61:26:61:40 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:63:26:63:40 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:63:26:63:40 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:65:34:65:48 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:65:34:65:48 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:67:35:67:49 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:67:35:67:49 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:69:30:69:44 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:69:30:69:44 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:71:22:71:36 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:71:22:71:36 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:73:30:73:44 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:73:30:73:44 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:75:21:75:35 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:75:21:75:35 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:77:26:77:40 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:77:26:77:40 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:79:33:79:47 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:79:33:79:47 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:81:33:81:47 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:81:33:81:47 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:82:33:82:47 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:82:33:82:47 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:84:31:84:45 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:84:31:84:45 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:86:21:86:35 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:86:21:86:35 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:87:21:87:35 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:87:21:87:35 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:88:21:88:35 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:88:21:88:35 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:90:27:90:41 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:90:27:90:41 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:91:27:91:41 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:91:27:91:41 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:93:26:93:40 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:93:26:93:40 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:95:35:95:49 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:95:35:95:49 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:97:41:97:57 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:97:41:97:57 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:99:45:99:61 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:99:45:99:61 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:104:30:104:44 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:104:30:104:44 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:106:40:106:81 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:106:40:106:81 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:108:34:108:75 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:108:34:108:75 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:110:34:110:75 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:110:34:110:75 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:112:23:112:37 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:112:23:112:37 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:117:23:117:37 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:117:23:117:37 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:122:23:122:40 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:122:23:122:40 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:124:20:124:34 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:124:20:124:34 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:126:21:126:35 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:126:21:126:35 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:128:22:128:36 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:128:22:128:36 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:133:20:133:34 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:133:20:133:34 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:135:19:135:33 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:135:19:135:33 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |
| mad/Test.java:140:20:140:36 | (...)... | mad/Test.java:28:16:28:36 | getHostName(...) : String | mad/Test.java:140:20:140:36 | (...)... | This path depends on a $@. | mad/Test.java:28:16:28:36 | getHostName(...) | user-provided value |

View File

@@ -2,36 +2,141 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.URL;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import javax.xml.transform.stream.StreamResult;
import org.apache.commons.io.FileUtils;
import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.taskdefs.Copy;
import org.apache.tools.ant.taskdefs.Expand;
import org.apache.tools.ant.types.FileSet;
import org.codehaus.cargo.container.installer.ZipURLInstaller;
import org.kohsuke.stapler.framework.io.LargeText;
import org.openjdk.jmh.runner.options.ChainedOptionsBuilder;
public class Test {
public Object source(InetAddress address) {
private InetAddress address;
public Object source() {
return address.getHostName();
}
void test(InetAddress address) throws IOException {
void test() throws IOException {
// "java.lang;Module;true;getResourceAsStream;(String);;Argument[0];read-file;ai-generated"
getClass().getModule().getResourceAsStream((String) source(null));
getClass().getModule().getResourceAsStream((String) source());
// "java.lang;Class;false;getResource;(String);;Argument[0];read-file;ai-generated"
getClass().getResource((String) source(null));
getClass().getResource((String) source());
// "java.lang;ClassLoader;true;getSystemResourceAsStream;(String);;Argument[0];read-file;ai-generated"
ClassLoader.getSystemResource((String) source(null));
ClassLoader.getSystemResourceAsStream((String) source());
// "java.io;File;true;createTempFile;(String,String,File);;Argument[2];create-file;ai-generated"
File.createTempFile(";", (String) source(null));
File.createTempFile(";", ";", (File) source());
// "java.io;File;true;renameTo;(File);;Argument[0];create-file;ai-generated"
new File("").renameTo((File) source(null));
new File("").renameTo((File) source());
// "java.io;FileInputStream;true;FileInputStream;(File);;Argument[0];read-file;ai-generated"
new FileInputStream((File) source(null));
new FileInputStream((File) source());
// "java.io;FileReader;true;FileReader;(File);;Argument[0];read-file;ai-generated"
new FileReader((File) source(null));
new FileReader((File) source());
// "java.io;FileReader;true;FileReader;(String);;Argument[0];read-file;ai-generated"
new FileReader((String) source(null));
new FileReader((String) source());
// "java.nio.file;Files;false;copy;;;Argument[0];read-file;manual"
Files.copy((Path) source(), (Path) null);
Files.copy((Path) source(), (OutputStream) null);
Files.copy((InputStream) source(), null);
// "java.nio.file;Files;false;copy;;;Argument[1];create-file;manual"
Files.copy((Path) null, (Path) source());
Files.copy((Path) null, (OutputStream) source());
Files.copy((InputStream) null, (Path) source());
// "java.nio.file;Files;false;createDirectories;;;Argument[0];create-file;manual"
Files.createDirectories((Path) source());
// "java.nio.file;Files;false;createDirectory;;;Argument[0];create-file;manual"
Files.createDirectory((Path) source());
// "java.nio.file;Files;false;createFile;;;Argument[0];create-file;manual"
Files.createFile((Path) source());
// "java.nio.file;Files;false;createLink;;;Argument[0];create-file;manual"
Files.createLink((Path) source(), null);
// "java.nio.file;Files;false;createSymbolicLink;;;Argument[0];create-file;manual"
Files.createSymbolicLink((Path) source(), null);
// "java.nio.file;Files;false;createTempDirectory;(Path,String,FileAttribute[]);;Argument[0];create-file;manual"
Files.createTempDirectory((Path) source(), null);
// "java.nio.file;Files;false;createTempFile;(Path,String,String,FileAttribute[]);;Argument[0];create-file;manual"
Files.createTempFile((Path) source(), null, null);
// "java.nio.file;Files;false;delete;(Path);;Argument[0];delete-file;ai-generated"
Files.delete((Path) source());
// "java.nio.file;Files;false;deleteIfExists;(Path);;Argument[0];delete-file;ai-generated"
Files.deleteIfExists((Path) source());
// "java.nio.file;Files;false;lines;(Path,Charset);;Argument[0];read-file;ai-generated"
Files.lines((Path) source(), null);
// "java.nio.file;Files;false;move;;;Argument[1];create-file;manual"
Files.move(null, (Path) source());
// "java.nio.file;Files;false;newBufferedReader;(Path,Charset);;Argument[0];read-file;ai-generated"
Files.newBufferedReader((Path) source(), null);
// "java.nio.file;Files;false;newBufferedWriter;;;Argument[0];create-file;manual"
Files.newBufferedWriter((Path) source());
Files.newBufferedWriter((Path) source(), (Charset) null);
// "java.nio.file;Files;false;newOutputStream;;;Argument[0];create-file;manual"
Files.newOutputStream((Path) source());
// "java.nio.file;Files;false;write;;;Argument[0];create-file;manual"
Files.write((Path) source(), (byte[]) null);
Files.write((Path) source(), (Iterable<CharSequence>) null);
Files.write((Path) source(), (Iterable<CharSequence>) null, (Charset) null);
// "java.nio.file;Files;false;writeString;;;Argument[0];create-file;manual"
Files.writeString((Path) source(), (CharSequence) null);
Files.writeString((Path) source(), (CharSequence) null, (Charset) null);
// "javax.xml.transform.stream;StreamResult";true;"StreamResult;(File);;Argument[0];create-file;ai-generated"
new StreamResult((File) source());
// "org.apache.commons.io;FileUtils;true;openInputStream;(File);;Argument[0];read-file;ai-generated"
FileUtils.openInputStream((File) source());
// "org.codehaus.cargo.container.installer;ZipURLInstaller;true;ZipURLInstaller;(URL,String,String);;Argument[1];create-file;ai-generated"
new ZipURLInstaller((URL) null, (String) source(null), "");
new ZipURLInstaller((URL) null, (String) source(), "");
// "org.codehaus.cargo.container.installer;ZipURLInstaller;true;ZipURLInstaller;(URL,String,String);;Argument[2];create-file;ai-generated"
new ZipURLInstaller((URL) null, "", (String) source(null));
new ZipURLInstaller((URL) null, "", (String) source());
}
void test(AntClassLoader acl) {
// "org.apache.tools.ant;AntClassLoader;true;addPathComponent;(File);;Argument[0];read-file;ai-generated"
acl.addPathComponent((File) source());
// "org.apache.tools.ant;AntClassLoader;true;AntClassLoader;(ClassLoader,Project,Path,boolean);;Argument[2];read-file;ai-generated"
new AntClassLoader(null, null, (org.apache.tools.ant.types.Path) source(), false);
// "org.apache.tools.ant;AntClassLoader;true;AntClassLoader;(Project,Path,boolean);;Argument[1];read-file;ai-generated"
new AntClassLoader(null, (org.apache.tools.ant.types.Path) source(), false);
// "org.apache.tools.ant;AntClassLoader;true;AntClassLoader;(Project,Path);;Argument[1];read-file;ai-generated"
new AntClassLoader(null, (org.apache.tools.ant.types.Path) source());
// "org.kohsuke.stapler.framework.io;LargeText;true;LargeText;(File,Charset,boolean,boolean);;Argument[0];read-file;ai-generated"
new LargeText((File) source(), null, false, false);
}
void test(DirectoryScanner ds) {
// "org.apache.tools.ant;DirectoryScanner;true;setBasedir;(File);;Argument[0];read-file;ai-generated"
ds.setBasedir((File) source());
}
void test(Copy cp) {
// "org.apache.tools.ant.taskdefs;Copy;true;addFileset;(FileSet);;Argument[0];read-file;ai-generated"
cp.addFileset((FileSet) source());
// "org.apache.tools.ant.taskdefs;Copy;true;setFile;(File);;Argument[0];read-file;ai-generated"
cp.setFile((File) source());
// "org.apache.tools.ant.taskdefs;Copy;true;setTodir;(File);;Argument[0];create-file;ai-generated"
cp.setTodir((File) source());
// "org.apache.tools.ant.taskdefs;Copy;true;setTofile;(File);;Argument[0];create-file;ai-generated"
cp.setTofile((File) source());
}
void test(Expand ex) {
// "org.apache.tools.ant.taskdefs;Expand;true;setDest;(File);;Argument[0];create-file;ai-generated"
ex.setDest((File) source());
// "org.apache.tools.ant.taskdefs;Expand;true;setSrc;(File);;Argument[0];read-file;ai-generated"
ex.setSrc((File) source());
}
void test(ChainedOptionsBuilder cob) {
// "org.openjdk.jmh.runner.options;ChainedOptionsBuilder;true;result;(String);;Argument[0];create-file;ai-generated"
cob.result((String) source());
}
}

View File

@@ -1 +1 @@
// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/servlet-api-2.4:${testdir}/../../../../../stubs/apache-commons-io-2.6:${testdir}/../../../../../stubs/cargo
// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/servlet-api-2.4:${testdir}/../../../../../stubs/apache-commons-io-2.6:${testdir}/../../../../../stubs/cargo:${testdir}/../../../../../stubs/apache-ant-1.10.13:${testdir}/../../../../../stubs/stapler-1.263:${testdir}/../../../../../stubs/javax-servlet-2.5:${testdir}/../../../../../stubs/apache-commons-jelly-1.0.1:${testdir}/../../../../../stubs/apache-commons-fileupload-1.4:${testdir}/../../../../../stubs/saxon-xqj-9.x:${testdir}/../../../../../stubs/apache-commons-beanutils:${testdir}/../../../../../stubs/dom4j-2.1.1:${testdir}/../../../../../stubs/apache-commons-lang:${testdir}/../../../../../stubs/jaxen-1.2.0:${testdir}/../../../../../stubs/jmh-1.3.6

View File

@@ -4,7 +4,10 @@ edges
| HttpsUrlsTest.java:24:13:24:57 | new URL(...) : URL | HttpsUrlsTest.java:28:50:28:50 | u |
| HttpsUrlsTest.java:24:21:24:56 | ... + ... : String | HttpsUrlsTest.java:24:13:24:57 | new URL(...) : URL |
| HttpsUrlsTest.java:36:23:36:28 | "http" : String | HttpsUrlsTest.java:41:50:41:50 | u |
| HttpsUrlsTest.java:49:23:49:31 | "http://" : String | HttpsUrlsTest.java:51:64:51:98 | ... + ... : String |
| HttpsUrlsTest.java:49:23:49:31 | "http://" : String | HttpsUrlsTest.java:55:50:55:50 | u |
| HttpsUrlsTest.java:51:13:51:99 | new URL(...) : URL | HttpsUrlsTest.java:55:50:55:50 | u |
| HttpsUrlsTest.java:51:64:51:98 | ... + ... : String | HttpsUrlsTest.java:51:13:51:99 | new URL(...) : URL |
| HttpsUrlsTest.java:87:23:87:28 | "http" : String | HttpsUrlsTest.java:92:50:92:50 | u |
nodes
| HttpsUrlsTest.java:23:23:23:31 | "http://" : String | semmle.label | "http://" : String |
@@ -14,6 +17,8 @@ nodes
| HttpsUrlsTest.java:36:23:36:28 | "http" : String | semmle.label | "http" : String |
| HttpsUrlsTest.java:41:50:41:50 | u | semmle.label | u |
| HttpsUrlsTest.java:49:23:49:31 | "http://" : String | semmle.label | "http://" : String |
| HttpsUrlsTest.java:51:13:51:99 | new URL(...) : URL | semmle.label | new URL(...) : URL |
| HttpsUrlsTest.java:51:64:51:98 | ... + ... : String | semmle.label | ... + ... : String |
| HttpsUrlsTest.java:55:50:55:50 | u | semmle.label | u |
| HttpsUrlsTest.java:87:23:87:28 | "http" : String | semmle.label | "http" : String |
| HttpsUrlsTest.java:92:50:92:50 | u | semmle.label | u |

View File

@@ -4,6 +4,8 @@ edges
| UrlRedirect.java:36:58:36:89 | getParameter(...) : String | UrlRedirect.java:36:25:36:89 | ... + ... |
| UrlRedirect.java:45:28:45:39 | input : String | UrlRedirect.java:46:10:46:14 | input : String |
| UrlRedirect.java:46:10:46:14 | input : String | UrlRedirect.java:46:10:46:40 | replaceAll(...) : String |
| mad/Test.java:9:16:9:41 | getParameter(...) : String | mad/Test.java:14:31:14:38 | source(...) : String |
| mad/Test.java:14:31:14:38 | source(...) : String | mad/Test.java:14:22:14:38 | (...)... |
nodes
| UrlRedirect.java:23:25:23:54 | getParameter(...) | semmle.label | getParameter(...) |
| UrlRedirect.java:32:25:32:67 | weakCleanup(...) | semmle.label | weakCleanup(...) |
@@ -15,6 +17,9 @@ nodes
| UrlRedirect.java:45:28:45:39 | input : String | semmle.label | input : String |
| UrlRedirect.java:46:10:46:14 | input : String | semmle.label | input : String |
| UrlRedirect.java:46:10:46:40 | replaceAll(...) : String | semmle.label | replaceAll(...) : String |
| mad/Test.java:9:16:9:41 | getParameter(...) : String | semmle.label | getParameter(...) : String |
| mad/Test.java:14:22:14:38 | (...)... | semmle.label | (...)... |
| mad/Test.java:14:31:14:38 | source(...) : String | semmle.label | source(...) : String |
subpaths
| UrlRedirect.java:32:37:32:66 | getParameter(...) : String | UrlRedirect.java:45:28:45:39 | input : String | UrlRedirect.java:46:10:46:40 | replaceAll(...) : String | UrlRedirect.java:32:25:32:67 | weakCleanup(...) |
#select
@@ -23,3 +28,4 @@ subpaths
| UrlRedirect.java:36:25:36:89 | ... + ... | UrlRedirect.java:36:58:36:89 | getParameter(...) : String | UrlRedirect.java:36:25:36:89 | ... + ... | Untrusted URL redirection depends on a $@. | UrlRedirect.java:36:58:36:89 | getParameter(...) | user-provided value |
| UrlRedirect.java:39:34:39:63 | getParameter(...) | UrlRedirect.java:39:34:39:63 | getParameter(...) | UrlRedirect.java:39:34:39:63 | getParameter(...) | Untrusted URL redirection depends on a $@. | UrlRedirect.java:39:34:39:63 | getParameter(...) | user-provided value |
| UrlRedirect.java:42:43:42:72 | getParameter(...) | UrlRedirect.java:42:43:42:72 | getParameter(...) | UrlRedirect.java:42:43:42:72 | getParameter(...) | Untrusted URL redirection depends on a $@. | UrlRedirect.java:42:43:42:72 | getParameter(...) | user-provided value |
| mad/Test.java:14:22:14:38 | (...)... | mad/Test.java:9:16:9:41 | getParameter(...) : String | mad/Test.java:14:22:14:38 | (...)... | Untrusted URL redirection depends on a $@. | mad/Test.java:9:16:9:41 | getParameter(...) | user-provided value |

View File

@@ -0,0 +1,16 @@
import javax.servlet.http.HttpServletRequest;
import org.kohsuke.stapler.HttpResponses;
public class Test {
private static HttpServletRequest request;
public static Object source() {
return request.getParameter(null);
}
public void test(HttpResponses r) {
// "org.kohsuke.stapler;HttpResponses;true;redirectTo;(String);;Argument[0];open-url;ai-generated"
r.redirectTo((String) source());
}
}

View File

@@ -1 +1 @@
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/servlet-api-2.4
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/servlet-api-2.4:${testdir}/../../../../../stubs/stapler-1.263:${testdir}/../../../../../stubs/javax-servlet-2.5:${testdir}/../../../../../stubs/apache-commons-jelly-1.0.1:${testdir}/../../../../../stubs/apache-commons-fileupload-1.4:${testdir}/../../../../../stubs/saxon-xqj-9.x:${testdir}/../../../../../stubs/apache-commons-beanutils:${testdir}/../../../../../stubs/dom4j-2.1.1:${testdir}/../../../../../stubs/apache-commons-lang:${testdir}/../../../../../stubs/jaxen-1.2.0

View File

@@ -1,22 +1,77 @@
import java.net.DatagramSocket;
import java.net.Proxy;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.URL;
import java.net.URLClassLoader;
import javax.servlet.http.HttpServletRequest;
import javafx.scene.web.WebEngine;
import org.apache.commons.jelly.JellyContext;
import org.codehaus.cargo.container.installer.ZipURLInstaller;
import org.kohsuke.stapler.HttpResponses;
public class Test {
public static Object source(HttpServletRequest request) {
private static HttpServletRequest request;
public static Object source() {
return request.getParameter(null);
}
public void test(DatagramSocket socket) throws Exception {
// "java.net;DatagramSocket;true;connect;(SocketAddress);;Argument[0];open-url;ai-generated"
socket.connect((SocketAddress) source()); // $ SSRF
}
public void test(URL url) throws Exception {
// "java.net;URL;false;openConnection;(Proxy);:Argument[-1]:open-url;manual"
((URL) source()).openConnection(); // $ SSRF
// "java.net;URL;false;openConnection;(Proxy);:Argument[0]:open-url;ai-generated"
url.openConnection((Proxy) source()); // $ SSRF
// "java.net;URL;false;openStream;;:Argument[-1]:open-url;manual"
((URL) source()).openStream(); // $ SSRF
}
public void test(URLClassLoader cl) throws Exception {
// "java.net;URLClassLoader;false;URLClassLoader;(String,URL[],ClassLoader);;Argument[1];open-url;manual"
new URLClassLoader("", (URL[]) source(), null); // $ SSRF
// "java.net;URLClassLoader;false;URLClassLoader;(String,URL[],ClassLoader,URLStreamHandlerFactory);;Argument[1];open-url;manual"
new URLClassLoader("", (URL[]) source(), null, null); // $ SSRF
// "java.net;URLClassLoader;false;URLClassLoader;(URL[]);;Argument[0];open-url;manual"
new URLClassLoader((URL[]) source()); // $ SSRF
// "java.net;URLClassLoader;false;URLClassLoader;(URL[],ClassLoader);;Argument[0];open-url;manual"
new URLClassLoader((URL[]) source(), null); // $ SSRF
// "java.net;URLClassLoader;false;URLClassLoader;(URL[],ClassLoader,URLStreamHandlerFactory);;Argument[0];open-url;manual"
new URLClassLoader((URL[]) source(), null, null); // $ SSRF
// "java.net;URLClassLoader;false;newInstance;;;Argument[0];open-url;manual"
URLClassLoader.newInstance((URL[]) source()); // $ SSRF
// "org.apache.commons.jelly;JellyContext;true;JellyContext;(JellyContext,URL,URL);;Argument[1];open-url;ai-generated"
new JellyContext(null, (URL) source(), null); // $ SSRF
// "org.apache.commons.jelly;JellyContext;true;JellyContext;(JellyContext,URL,URL);;Argument[2];open-url;ai-generated"
new JellyContext(null, null, (URL) source()); // $ SSRF
// "org.apache.commons.jelly;JellyContext;true;JellyContext;(JellyContext,URL);;Argument[1];open-url;ai-generated"
new JellyContext((JellyContext) null, (URL) source()); // $ SSRF
// "org.apache.commons.jelly;JellyContext;true;JellyContext;(URL,URL);;Argument[0];open-url;ai-generated"
new JellyContext((URL) source(), null); // $ SSRF
// "org.apache.commons.jelly;JellyContext;true;JellyContext;(URL,URL);;Argument[1];open-url;ai-generated"
new JellyContext((URL) null, (URL) source()); // $ SSRF
// "org.apache.commons.jelly;JellyContext;true;JellyContext;(URL);;Argument[0];open-url;ai-generated"
new JellyContext((URL) source()); // $ SSRF
}
public void test(WebEngine webEngine) {
// "javafx.scene.web;WebEngine;false;load;(String);;Argument[0];open-url;ai-generated"
webEngine.load((String) source(null)); // $ SSRF
webEngine.load((String) source()); // $ SSRF
}
public void test() {
public void test(ZipURLInstaller zui) {
// "org.codehaus.cargo.container.installer;ZipURLInstaller;true;ZipURLInstaller;(URL,String,String);;Argument[0];open-url:ai-generated"
new ZipURLInstaller((URL) source(null), "", ""); // $ SSRF
new ZipURLInstaller((URL) source(), "", ""); // $ SSRF
}
public void test(HttpResponses r) {
// "org.kohsuke.stapler;HttpResponses;true;staticResource;(URL);;Argument[0];open-url;ai-generated"
r.staticResource((URL) source()); // $ SSRF
}
}

View File

@@ -1,2 +1 @@
//semmle-extractor-options: --javac-args -source 11 -target 11 -cp ${testdir}/../../../stubs/springframework-5.3.8:${testdir}/../../../stubs/javax-ws-rs-api-2.1.1:${testdir}/../../../stubs/javax-ws-rs-api-3.0.0:${testdir}/../../../stubs/apache-http-4.4.13/:${testdir}/../../../stubs/servlet-api-2.4/:${testdir}/../../../stubs/projectreactor-3.4.3/:${testdir}/../../../stubs/postgresql-42.3.3/:${testdir}/../../../stubs/HikariCP-3.4.5/:${testdir}/../../../stubs/spring-jdbc-5.3.8/:${testdir}/../../../stubs/jdbi3-core-3.27.2/:${testdir}/../../../stubs/cargo:${testdir}/../../../stubs/javafx-web
//semmle-extractor-options: --javac-args -source 11 -target 11 -cp ${testdir}/../../../stubs/springframework-5.3.8:${testdir}/../../../stubs/javax-ws-rs-api-2.1.1:${testdir}/../../../stubs/javax-ws-rs-api-3.0.0:${testdir}/../../../stubs/apache-http-4.4.13/:${testdir}/../../../stubs/projectreactor-3.4.3/:${testdir}/../../../stubs/postgresql-42.3.3/:${testdir}/../../../stubs/HikariCP-3.4.5/:${testdir}/../../../stubs/spring-jdbc-5.3.8/:${testdir}/../../../stubs/jdbi3-core-3.27.2/:${testdir}/../../../stubs/cargo:${testdir}/../../../stubs/javafx-web:${testdir}/../../../stubs/apache-commons-jelly-1.0.1:${testdir}/../../../stubs/dom4j-2.1.1:${testdir}/../../../stubs/jaxen-1.2.0:${testdir}/../../../stubs/stapler-1.263:${testdir}/../../../stubs/javax-servlet-2.5:${testdir}/../../../stubs/apache-commons-fileupload-1.4:${testdir}/../../../stubs/saxon-xqj-9.x:${testdir}/../../../stubs/apache-commons-beanutils:${testdir}/../../../stubs/apache-commons-lang

View File

@@ -0,0 +1,70 @@
// Generated automatically from org.apache.tools.ant.AntClassLoader for testing purposes
package org.apache.tools.ant;
import java.io.Closeable;
import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.util.Enumeration;
import java.util.jar.Manifest;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.SubBuildListener;
import org.apache.tools.ant.types.Path;
public class AntClassLoader extends ClassLoader implements Closeable, SubBuildListener
{
protected Class<? extends Object> defineClassFromData(File p0, byte[] p1, String p2){ return null; }
protected Class<? extends Object> loadClass(String p0, boolean p1){ return null; }
protected Enumeration<URL> findResources(String p0){ return null; }
protected Enumeration<URL> findResources(String p0, boolean p1){ return null; }
protected URL findResource(String p0){ return null; }
protected URL getResourceURL(File p0, String p1){ return null; }
protected boolean isInPath(File p0){ return false; }
protected void addPathFile(File p0){}
protected void definePackage(File p0, String p1){}
protected void definePackage(File p0, String p1, Manifest p2){}
protected void log(String p0, int p1){}
public AntClassLoader(){}
public AntClassLoader(ClassLoader p0, Project p1, Path p2){}
public AntClassLoader(ClassLoader p0, Project p1, Path p2, boolean p3){}
public AntClassLoader(ClassLoader p0, boolean p1){}
public AntClassLoader(Project p0, Path p1){}
public AntClassLoader(Project p0, Path p1, boolean p2){}
public Class<? extends Object> findClass(String p0){ return null; }
public Class<? extends Object> forceLoadClass(String p0){ return null; }
public Class<? extends Object> forceLoadSystemClass(String p0){ return null; }
public ClassLoader getConfiguredParent(){ return null; }
public Enumeration<URL> getNamedResources(String p0){ return null; }
public Enumeration<URL> getResources(String p0){ return null; }
public InputStream getResourceAsStream(String p0){ return null; }
public String getClasspath(){ return null; }
public String toString(){ return null; }
public URL getResource(String p0){ return null; }
public static AntClassLoader newAntClassLoader(ClassLoader p0, Project p1, Path p2, boolean p3){ return null; }
public static void initializeClass(Class<? extends Object> p0){}
public void addJavaLibraries(){}
public void addLoaderPackageRoot(String p0){}
public void addPathComponent(File p0){}
public void addPathElement(String p0){}
public void addSystemPackageRoot(String p0){}
public void buildFinished(BuildEvent p0){}
public void buildStarted(BuildEvent p0){}
public void cleanup(){}
public void close(){}
public void messageLogged(BuildEvent p0){}
public void resetThreadContextLoader(){}
public void setClassPath(Path p0){}
public void setIsolated(boolean p0){}
public void setParent(ClassLoader p0){}
public void setParentFirst(boolean p0){}
public void setProject(Project p0){}
public void setThreadContextLoader(){}
public void subBuildFinished(BuildEvent p0){}
public void subBuildStarted(BuildEvent p0){}
public void targetFinished(BuildEvent p0){}
public void targetStarted(BuildEvent p0){}
public void taskFinished(BuildEvent p0){}
public void taskStarted(BuildEvent p0){}
}

View File

@@ -0,0 +1,54 @@
// Generated automatically from org.apache.tools.ant.BuildEvent for testing purposes
package org.apache.tools.ant;
import java.util.EventObject;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Target;
import org.apache.tools.ant.Task;
public class BuildEvent extends EventObject {
protected BuildEvent() {
super(null);
}
public BuildEvent(Project p0) {
super(null);
}
public BuildEvent(Target p0) {
super(null);
}
public BuildEvent(Task p0) {
super(null);
}
public Project getProject() {
return null;
}
public String getMessage() {
return null;
}
public Target getTarget() {
return null;
}
public Task getTask() {
return null;
}
public Throwable getException() {
return null;
}
public int getPriority() {
return 0;
}
public void setException(Throwable p0) {}
public void setMessage(String p0, int p1) {}
}

View File

@@ -0,0 +1,22 @@
// Generated automatically from org.apache.tools.ant.BuildException for testing purposes
package org.apache.tools.ant;
import org.apache.tools.ant.Location;
public class BuildException extends RuntimeException
{
public BuildException(){}
public BuildException(String p0){}
public BuildException(String p0, Location p1){}
public BuildException(String p0, Object... p1){}
public BuildException(String p0, Throwable p1){}
public BuildException(String p0, Throwable p1, Location p2){}
public BuildException(Throwable p0){}
public BuildException(Throwable p0, Location p1){}
public Location getLocation(){ return null; }
public String toString(){ return null; }
public Throwable getException(){ return null; }
public static BuildException of(Throwable p0){ return null; }
public void setLocation(Location p0){}
}

View File

@@ -0,0 +1,17 @@
// Generated automatically from org.apache.tools.ant.BuildListener for testing purposes
package org.apache.tools.ant;
import java.util.EventListener;
import org.apache.tools.ant.BuildEvent;
public interface BuildListener extends EventListener
{
void buildFinished(BuildEvent p0);
void buildStarted(BuildEvent p0);
void messageLogged(BuildEvent p0);
void targetFinished(BuildEvent p0);
void targetStarted(BuildEvent p0);
void taskFinished(BuildEvent p0);
void taskStarted(BuildEvent p0);
}

View File

@@ -0,0 +1,80 @@
// Generated automatically from org.apache.tools.ant.DirectoryScanner for testing purposes
package org.apache.tools.ant;
import java.io.File;
import java.util.Vector;
import org.apache.tools.ant.FileScanner;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceFactory;
import org.apache.tools.ant.types.selectors.FileSelector;
import org.apache.tools.ant.types.selectors.SelectorScanner;
public class DirectoryScanner implements FileScanner, ResourceFactory, SelectorScanner
{
protected File basedir = null;
protected FileSelector[] selectors = null;
protected String[] excludes = null;
protected String[] includes = null;
protected Vector<String> dirsDeselected = null;
protected Vector<String> dirsExcluded = null;
protected Vector<String> dirsIncluded = null;
protected Vector<String> dirsNotIncluded = null;
protected Vector<String> filesDeselected = null;
protected Vector<String> filesExcluded = null;
protected Vector<String> filesIncluded = null;
protected Vector<String> filesNotIncluded = null;
protected boolean couldHoldIncluded(String p0){ return false; }
protected boolean errorOnMissingDir = false;
protected boolean everythingIncluded = false;
protected boolean haveSlowResults = false;
protected boolean isCaseSensitive = false;
protected boolean isExcluded(String p0){ return false; }
protected boolean isIncluded(String p0){ return false; }
protected boolean isSelected(String p0, File p1){ return false; }
protected static String[] DEFAULTEXCLUDES = null;
protected static boolean match(String p0, String p1, boolean p2){ return false; }
protected static boolean matchPath(String p0, String p1){ return false; }
protected static boolean matchPath(String p0, String p1, boolean p2){ return false; }
protected static boolean matchPatternStart(String p0, String p1){ return false; }
protected static boolean matchPatternStart(String p0, String p1, boolean p2){ return false; }
protected void clearResults(){}
protected void scandir(File p0, String p1, boolean p2){}
protected void slowScan(){}
public DirectoryScanner(){}
public File getBasedir(){ return null; }
public Resource getResource(String p0){ return null; }
public String[] getDeselectedDirectories(){ return null; }
public String[] getDeselectedFiles(){ return null; }
public String[] getExcludedDirectories(){ return null; }
public String[] getExcludedFiles(){ return null; }
public String[] getIncludedDirectories(){ return null; }
public String[] getIncludedFiles(){ return null; }
public String[] getNotFollowedSymlinks(){ return null; }
public String[] getNotIncludedDirectories(){ return null; }
public String[] getNotIncludedFiles(){ return null; }
public boolean isCaseSensitive(){ return false; }
public boolean isEverythingIncluded(){ return false; }
public boolean isFollowSymlinks(){ return false; }
public int getIncludedDirsCount(){ return 0; }
public int getIncludedFilesCount(){ return 0; }
public static String DOES_NOT_EXIST_POSTFIX = null;
public static String[] getDefaultExcludes(){ return null; }
public static boolean addDefaultExclude(String p0){ return false; }
public static boolean match(String p0, String p1){ return false; }
public static boolean removeDefaultExclude(String p0){ return false; }
public static int MAX_LEVELS_OF_SYMLINKS = 0;
public static void resetDefaultExcludes(){}
public void addDefaultExcludes(){}
public void addExcludes(String[] p0){}
public void scan(){}
public void setBasedir(File p0){}
public void setBasedir(String p0){}
public void setCaseSensitive(boolean p0){}
public void setErrorOnMissingDir(boolean p0){}
public void setExcludes(String[] p0){}
public void setFollowSymlinks(boolean p0){}
public void setIncludes(String[] p0){}
public void setMaxLevelsOfSymlinks(int p0){}
public void setSelectors(FileSelector[] p0){}
}

View File

@@ -0,0 +1,11 @@
// Generated automatically from org.apache.tools.ant.Executor for testing purposes
package org.apache.tools.ant;
import org.apache.tools.ant.Project;
public interface Executor
{
Executor getSubProjectExecutor();
void executeTargets(Project p0, String[] p1);
}

View File

@@ -0,0 +1,23 @@
// Generated automatically from org.apache.tools.ant.FileScanner for testing purposes
package org.apache.tools.ant;
import java.io.File;
public interface FileScanner
{
File getBasedir();
String[] getExcludedDirectories();
String[] getExcludedFiles();
String[] getIncludedDirectories();
String[] getIncludedFiles();
String[] getNotIncludedDirectories();
String[] getNotIncludedFiles();
void addDefaultExcludes();
void scan();
void setBasedir(File p0);
void setBasedir(String p0);
void setCaseSensitive(boolean p0);
void setExcludes(String[] p0);
void setIncludes(String[] p0);
}

View File

@@ -0,0 +1,21 @@
// Generated automatically from org.apache.tools.ant.Location for testing purposes
package org.apache.tools.ant;
import java.io.Serializable;
import org.xml.sax.Locator;
public class Location implements Serializable
{
protected Location() {}
public Location(Locator p0){}
public Location(String p0){}
public Location(String p0, int p1, int p2){}
public String getFileName(){ return null; }
public String toString(){ return null; }
public boolean equals(Object p0){ return false; }
public int getColumnNumber(){ return 0; }
public int getLineNumber(){ return 0; }
public int hashCode(){ return 0; }
public static Location UNKNOWN_LOCATION = null;
}

View File

@@ -0,0 +1,157 @@
// Generated automatically from org.apache.tools.ant.Project for testing purposes
package org.apache.tools.ant;
import java.io.File;
import java.io.InputStream;
import java.util.Hashtable;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.BuildListener;
import org.apache.tools.ant.Executor;
import org.apache.tools.ant.Target;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.input.InputHandler;
import org.apache.tools.ant.types.FilterSet;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceFactory;
public class Project implements ResourceFactory
{
protected void fireMessageLogged(Project p0, String p1, Throwable p2, int p3){}
protected void fireMessageLogged(Project p0, String p1, int p2){}
protected void fireMessageLogged(Target p0, String p1, Throwable p2, int p3){}
protected void fireMessageLogged(Target p0, String p1, int p2){}
protected void fireMessageLogged(Task p0, String p1, Throwable p2, int p3){}
protected void fireMessageLogged(Task p0, String p1, int p2){}
protected void fireTargetFinished(Target p0, Throwable p1){}
protected void fireTargetStarted(Target p0){}
protected void fireTaskFinished(Task p0, Throwable p1){}
protected void fireTaskStarted(Task p0){}
public <T> T getReference(String p0){ return null; }
public AntClassLoader createClassLoader(ClassLoader p0, Path p1){ return null; }
public AntClassLoader createClassLoader(Path p0){ return null; }
public ClassLoader getCoreLoader(){ return null; }
public Executor getExecutor(){ return null; }
public File getBaseDir(){ return null; }
public File resolveFile(String p0){ return null; }
public File resolveFile(String p0, File p1){ return null; }
public FilterSet getGlobalFilterSet(){ return null; }
public Hashtable<String, Class<? extends Object>> getDataTypeDefinitions(){ return null; }
public Hashtable<String, Class<? extends Object>> getTaskDefinitions(){ return null; }
public Hashtable<String, Object> getInheritedProperties(){ return null; }
public Hashtable<String, Object> getProperties(){ return null; }
public Hashtable<String, Object> getReferences(){ return null; }
public Hashtable<String, Object> getUserProperties(){ return null; }
public Hashtable<String, String> getFilters(){ return null; }
public Hashtable<String, Target> getTargets(){ return null; }
public InputHandler getInputHandler(){ return null; }
public InputStream getDefaultInputStream(){ return null; }
public Map<String, Class<? extends Object>> getCopyOfDataTypeDefinitions(){ return null; }
public Map<String, Class<? extends Object>> getCopyOfTaskDefinitions(){ return null; }
public Map<String, Object> getCopyOfReferences(){ return null; }
public Map<String, Target> getCopyOfTargets(){ return null; }
public Object createDataType(String p0){ return null; }
public Project createSubProject(){ return null; }
public Project(){}
public Resource getResource(String p0){ return null; }
public Set<String> getPropertyNames(){ return null; }
public String getDefaultTarget(){ return null; }
public String getDescription(){ return null; }
public String getElementName(Object p0){ return null; }
public String getName(){ return null; }
public String getProperty(String p0){ return null; }
public String getUserProperty(String p0){ return null; }
public String replaceProperties(String p0){ return null; }
public Task createTask(String p0){ return null; }
public Task getThreadTask(Thread p0){ return null; }
public Vector<BuildListener> getBuildListeners(){ return null; }
public boolean hasReference(String p0){ return false; }
public boolean isKeepGoingMode(){ return false; }
public final Vector<Target> topoSort(String p0, Hashtable<String, Target> p1){ return null; }
public final Vector<Target> topoSort(String p0, Hashtable<String, Target> p1, boolean p2){ return null; }
public final Vector<Target> topoSort(String[] p0, Hashtable<String, Target> p1, boolean p2){ return null; }
public final void setProjectReference(Object p0){}
public int defaultInput(byte[] p0, int p1, int p2){ return 0; }
public int demuxInput(byte[] p0, int p1, int p2){ return 0; }
public static Project getProject(Object p0){ return null; }
public static String JAVA_1_0 = null;
public static String JAVA_1_1 = null;
public static String JAVA_1_2 = null;
public static String JAVA_1_3 = null;
public static String JAVA_1_4 = null;
public static String TOKEN_END = null;
public static String TOKEN_START = null;
public static String getJavaVersion(){ return null; }
public static String translatePath(String p0){ return null; }
public static boolean toBoolean(String p0){ return false; }
public static int MSG_DEBUG = 0;
public static int MSG_ERR = 0;
public static int MSG_INFO = 0;
public static int MSG_VERBOSE = 0;
public static int MSG_WARN = 0;
public void addBuildListener(BuildListener p0){}
public void addDataTypeDefinition(String p0, Class<? extends Object> p1){}
public void addFilter(String p0, String p1){}
public void addIdReference(String p0, Object p1){}
public void addOrReplaceTarget(String p0, Target p1){}
public void addOrReplaceTarget(Target p0){}
public void addReference(String p0, Object p1){}
public void addTarget(String p0, Target p1){}
public void addTarget(Target p0){}
public void addTaskDefinition(String p0, Class<? extends Object> p1){}
public void checkTaskClass(Class<? extends Object> p0){}
public void copyFile(File p0, File p1){}
public void copyFile(File p0, File p1, boolean p2){}
public void copyFile(File p0, File p1, boolean p2, boolean p3){}
public void copyFile(File p0, File p1, boolean p2, boolean p3, boolean p4){}
public void copyFile(String p0, String p1){}
public void copyFile(String p0, String p1, boolean p2){}
public void copyFile(String p0, String p1, boolean p2, boolean p3){}
public void copyFile(String p0, String p1, boolean p2, boolean p3, boolean p4){}
public void copyInheritedProperties(Project p0){}
public void copyUserProperties(Project p0){}
public void demuxFlush(String p0, boolean p1){}
public void demuxOutput(String p0, boolean p1){}
public void executeSortedTargets(Vector<Target> p0){}
public void executeTarget(String p0){}
public void executeTargets(Vector<String> p0){}
public void fireBuildFinished(Throwable p0){}
public void fireBuildStarted(){}
public void fireSubBuildFinished(Throwable p0){}
public void fireSubBuildStarted(){}
public void inheritIDReferences(Project p0){}
public void init(){}
public void initProperties(){}
public void initSubProject(Project p0){}
public void log(String p0){}
public void log(String p0, Throwable p1, int p2){}
public void log(String p0, int p1){}
public void log(Target p0, String p1, Throwable p2, int p3){}
public void log(Target p0, String p1, int p2){}
public void log(Task p0, String p1, Throwable p2, int p3){}
public void log(Task p0, String p1, int p2){}
public void registerThreadTask(Thread p0, Task p1){}
public void removeBuildListener(BuildListener p0){}
public void setBaseDir(File p0){}
public void setBasedir(String p0){}
public void setCoreLoader(ClassLoader p0){}
public void setDefault(String p0){}
public void setDefaultInputStream(InputStream p0){}
public void setDefaultTarget(String p0){}
public void setDescription(String p0){}
public void setExecutor(Executor p0){}
public void setFileLastModified(File p0, long p1){}
public void setInheritedProperty(String p0, String p1){}
public void setInputHandler(InputHandler p0){}
public void setJavaVersionProperty(){}
public void setKeepGoingMode(boolean p0){}
public void setName(String p0){}
public void setNewProperty(String p0, String p1){}
public void setProperty(String p0, String p1){}
public void setSystemProperties(){}
public void setUserProperty(String p0, String p1){}
}

View File

@@ -0,0 +1,23 @@
// Generated automatically from org.apache.tools.ant.ProjectComponent for testing purposes
package org.apache.tools.ant;
import org.apache.tools.ant.Location;
import org.apache.tools.ant.Project;
abstract public class ProjectComponent implements Cloneable
{
protected Location location = null;
protected Project project = null;
protected String description = null;
public Location getLocation(){ return null; }
public Object clone(){ return null; }
public Project getProject(){ return null; }
public ProjectComponent(){}
public String getDescription(){ return null; }
public void log(String p0){}
public void log(String p0, int p1){}
public void setDescription(String p0){}
public void setLocation(Location p0){}
public void setProject(Project p0){}
}

View File

@@ -0,0 +1,39 @@
// Generated automatically from org.apache.tools.ant.RuntimeConfigurable for testing purposes
package org.apache.tools.ant;
import java.io.Serializable;
import java.util.Enumeration;
import java.util.Hashtable;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.UnknownElement;
import org.xml.sax.AttributeList;
public class RuntimeConfigurable implements Serializable
{
protected RuntimeConfigurable() {}
public AttributeList getAttributes(){ return null; }
public Enumeration<RuntimeConfigurable> getChildren(){ return null; }
public Hashtable<String, Object> getAttributeMap(){ return null; }
public Object getProxy(){ return null; }
public RuntimeConfigurable(Object p0, String p1){}
public String getElementTag(){ return null; }
public String getId(){ return null; }
public String getPolyType(){ return null; }
public StringBuffer getText(){ return null; }
public boolean isEnabled(UnknownElement p0){ return false; }
public void addChild(RuntimeConfigurable p0){}
public void addText(String p0){}
public void addText(char[] p0, int p1, int p2){}
public void applyPreSet(RuntimeConfigurable p0){}
public void maybeConfigure(Project p0){}
public void maybeConfigure(Project p0, boolean p1){}
public void reconfigure(Project p0){}
public void removeAttribute(String p0){}
public void setAttribute(String p0, Object p1){}
public void setAttribute(String p0, String p1){}
public void setAttributes(AttributeList p0){}
public void setElementTag(String p0){}
public void setPolyType(String p0){}
public void setProxy(Object p0){}
}

View File

@@ -0,0 +1,12 @@
// Generated automatically from org.apache.tools.ant.SubBuildListener for testing purposes
package org.apache.tools.ant;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.BuildListener;
public interface SubBuildListener extends BuildListener
{
void subBuildFinished(BuildEvent p0);
void subBuildStarted(BuildEvent p0);
}

View File

@@ -0,0 +1,43 @@
// Generated automatically from org.apache.tools.ant.Target for testing purposes
package org.apache.tools.ant;
import java.util.Enumeration;
import java.util.List;
import org.apache.tools.ant.Location;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.RuntimeConfigurable;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.TaskContainer;
import org.apache.tools.ant.taskdefs.condition.Condition;
public class Target implements TaskContainer
{
public Enumeration<String> getDependencies(){ return null; }
public Location getLocation(){ return null; }
public Project getProject(){ return null; }
public String getDescription(){ return null; }
public String getIf(){ return null; }
public String getName(){ return null; }
public String getUnless(){ return null; }
public String toString(){ return null; }
public Target(){}
public Target(Target p0){}
public Task[] getTasks(){ return null; }
public boolean dependsOn(String p0){ return false; }
public final void performTasks(){}
public static List<String> parseDepends(String p0, String p1, String p2){ return null; }
public void addDataType(RuntimeConfigurable p0){}
public void addDependency(String p0){}
public void addTask(Task p0){}
public void execute(){}
public void setDepends(String p0){}
public void setDescription(String p0){}
public void setIf(Condition p0){}
public void setIf(String p0){}
public void setLocation(Location p0){}
public void setName(String p0){}
public void setProject(Project p0){}
public void setUnless(Condition p0){}
public void setUnless(String p0){}
}

View File

@@ -0,0 +1,41 @@
// Generated automatically from org.apache.tools.ant.Task for testing purposes
package org.apache.tools.ant;
import org.apache.tools.ant.ProjectComponent;
import org.apache.tools.ant.RuntimeConfigurable;
import org.apache.tools.ant.Target;
abstract public class Task extends ProjectComponent
{
protected RuntimeConfigurable getWrapper(){ return null; }
protected RuntimeConfigurable wrapper = null;
protected String taskName = null;
protected String taskType = null;
protected Target target = null;
protected final boolean isInvalid(){ return false; }
protected int handleInput(byte[] p0, int p1, int p2){ return 0; }
protected void handleErrorFlush(String p0){}
protected void handleErrorOutput(String p0){}
protected void handleFlush(String p0){}
protected void handleOutput(String p0){}
public RuntimeConfigurable getRuntimeConfigurableWrapper(){ return null; }
public String getTaskName(){ return null; }
public String getTaskType(){ return null; }
public Target getOwningTarget(){ return null; }
public Task(){}
public final void bindToOwner(Task p0){}
public final void perform(){}
public void execute(){}
public void init(){}
public void log(String p0){}
public void log(String p0, Throwable p1, int p2){}
public void log(String p0, int p1){}
public void log(Throwable p0, int p1){}
public void maybeConfigure(){}
public void reconfigure(){}
public void setOwningTarget(Target p0){}
public void setRuntimeConfigurableWrapper(RuntimeConfigurable p0){}
public void setTaskName(String p0){}
public void setTaskType(String p0){}
}

View File

@@ -0,0 +1,10 @@
// Generated automatically from org.apache.tools.ant.TaskContainer for testing purposes
package org.apache.tools.ant;
import org.apache.tools.ant.Task;
public interface TaskContainer
{
void addTask(Task p0);
}

View File

@@ -0,0 +1,43 @@
// Generated automatically from org.apache.tools.ant.UnknownElement for testing purposes
package org.apache.tools.ant;
import java.util.List;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.RuntimeConfigurable;
import org.apache.tools.ant.Task;
public class UnknownElement extends Task
{
protected UnknownElement() {}
protected BuildException getNotFoundException(String p0, String p1){ return null; }
protected Object makeObject(UnknownElement p0, RuntimeConfigurable p1){ return null; }
protected String getComponentName(){ return null; }
protected Task makeTask(UnknownElement p0, RuntimeConfigurable p1){ return null; }
protected int handleInput(byte[] p0, int p1, int p2){ return 0; }
protected void handleChildren(Object p0, RuntimeConfigurable p1){}
protected void handleErrorFlush(String p0){}
protected void handleErrorOutput(String p0){}
protected void handleFlush(String p0){}
protected void handleOutput(String p0){}
public List<UnknownElement> getChildren(){ return null; }
public Object getRealThing(){ return null; }
public RuntimeConfigurable getWrapper(){ return null; }
public String getNamespace(){ return null; }
public String getQName(){ return null; }
public String getTag(){ return null; }
public String getTaskName(){ return null; }
public Task getTask(){ return null; }
public UnknownElement copy(Project p0){ return null; }
public UnknownElement(String p0){}
public boolean similar(Object p0){ return false; }
public void addChild(UnknownElement p0){}
public void applyPreSet(UnknownElement p0){}
public void configure(Object p0){}
public void execute(){}
public void maybeConfigure(){}
public void setNamespace(String p0){}
public void setQName(String p0){}
public void setRealThing(Object p0){}
}

View File

@@ -0,0 +1,45 @@
// Generated automatically from org.apache.tools.ant.filters.BaseFilterReader for testing purposes
package org.apache.tools.ant.filters;
import java.io.FilterReader;
import java.io.Reader;
import org.apache.tools.ant.Project;
abstract public class BaseFilterReader extends FilterReader {
protected final Project getProject() {
return null;
}
protected final String readFully() {
return null;
}
protected final String readLine() {
return null;
}
protected final boolean getInitialized() {
return false;
}
protected final void setInitialized(boolean p0) {}
public BaseFilterReader() {
super(null);
}
public BaseFilterReader(Reader p0) {
super(null);
}
public final int read(char[] p0, int p1, int p2) {
return 0;
}
public final long skip(long p0) {
return 0;
}
public final void setProject(Project p0) {}
}

View File

@@ -0,0 +1,16 @@
// Generated automatically from org.apache.tools.ant.filters.BaseParamFilterReader for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseFilterReader;
import org.apache.tools.ant.types.Parameter;
import org.apache.tools.ant.types.Parameterizable;
abstract public class BaseParamFilterReader extends BaseFilterReader implements Parameterizable
{
protected final Parameter[] getParameters(){ return null; }
public BaseParamFilterReader(){}
public BaseParamFilterReader(Reader p0){}
public final void setParameters(Parameter... p0){}
}

View File

@@ -0,0 +1,10 @@
// Generated automatically from org.apache.tools.ant.filters.ChainableReader for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
public interface ChainableReader
{
Reader chain(Reader p0);
}

View File

@@ -0,0 +1,15 @@
// Generated automatically from org.apache.tools.ant.filters.ClassConstants for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
public class ClassConstants extends BaseFilterReader implements ChainableReader
{
public ClassConstants(){}
public ClassConstants(Reader p0){}
public Reader chain(Reader p0){ return null; }
public int read(){ return 0; }
}

View File

@@ -0,0 +1,15 @@
// Generated automatically from org.apache.tools.ant.filters.EscapeUnicode for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseParamFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
public class EscapeUnicode extends BaseParamFilterReader implements ChainableReader
{
public EscapeUnicode(){}
public EscapeUnicode(Reader p0){}
public final Reader chain(Reader p0){ return null; }
public final int read(){ return 0; }
}

View File

@@ -0,0 +1,17 @@
// Generated automatically from org.apache.tools.ant.filters.ExpandProperties for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
import org.apache.tools.ant.types.PropertySet;
public class ExpandProperties extends BaseFilterReader implements ChainableReader
{
public ExpandProperties(){}
public ExpandProperties(Reader p0){}
public Reader chain(Reader p0){ return null; }
public int read(){ return 0; }
public void add(PropertySet p0){}
}

View File

@@ -0,0 +1,17 @@
// Generated automatically from org.apache.tools.ant.filters.HeadFilter for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseParamFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
public class HeadFilter extends BaseParamFilterReader implements ChainableReader
{
public HeadFilter(){}
public HeadFilter(Reader p0){}
public Reader chain(Reader p0){ return null; }
public int read(){ return 0; }
public void setLines(long p0){}
public void setSkip(long p0){}
}

View File

@@ -0,0 +1,26 @@
// Generated automatically from org.apache.tools.ant.filters.LineContains for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseParamFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
public class LineContains extends BaseParamFilterReader implements ChainableReader
{
public LineContains(){}
public LineContains(Reader p0){}
public Reader chain(Reader p0){ return null; }
public boolean isMatchAny(){ return false; }
public boolean isNegated(){ return false; }
public int read(){ return 0; }
public void addConfiguredContains(LineContains.Contains p0){}
public void setMatchAny(boolean p0){}
public void setNegate(boolean p0){}
static public class Contains
{
public Contains(){}
public final String getValue(){ return null; }
public final void setValue(String p0){}
}
}

View File

@@ -0,0 +1,21 @@
// Generated automatically from org.apache.tools.ant.filters.LineContainsRegExp for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseParamFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
import org.apache.tools.ant.types.RegularExpression;
public class LineContainsRegExp extends BaseParamFilterReader implements ChainableReader
{
public LineContainsRegExp(){}
public LineContainsRegExp(Reader p0){}
public Reader chain(Reader p0){ return null; }
public boolean isNegated(){ return false; }
public int read(){ return 0; }
public void addConfiguredRegexp(RegularExpression p0){}
public void setCaseSensitive(boolean p0){}
public void setNegate(boolean p0){}
public void setRegexp(String p0){}
}

View File

@@ -0,0 +1,16 @@
// Generated automatically from org.apache.tools.ant.filters.PrefixLines for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseParamFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
public class PrefixLines extends BaseParamFilterReader implements ChainableReader
{
public PrefixLines(){}
public PrefixLines(Reader p0){}
public Reader chain(Reader p0){ return null; }
public int read(){ return 0; }
public void setPrefix(String p0){}
}

View File

@@ -0,0 +1,28 @@
// Generated automatically from org.apache.tools.ant.filters.ReplaceTokens for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseParamFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
import org.apache.tools.ant.types.Resource;
public class ReplaceTokens extends BaseParamFilterReader implements ChainableReader
{
public Reader chain(Reader p0){ return null; }
public ReplaceTokens(){}
public ReplaceTokens(Reader p0){}
public int read(){ return 0; }
public void addConfiguredToken(ReplaceTokens.Token p0){}
public void setBeginToken(String p0){}
public void setEndToken(String p0){}
public void setPropertiesResource(Resource p0){}
static public class Token
{
public Token(){}
public final String getKey(){ return null; }
public final String getValue(){ return null; }
public final void setKey(String p0){}
public final void setValue(String p0){}
}
}

View File

@@ -0,0 +1,15 @@
// Generated automatically from org.apache.tools.ant.filters.StripJavaComments for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
public class StripJavaComments extends BaseFilterReader implements ChainableReader
{
public Reader chain(Reader p0){ return null; }
public StripJavaComments(){}
public StripJavaComments(Reader p0){}
public int read(){ return 0; }
}

View File

@@ -0,0 +1,16 @@
// Generated automatically from org.apache.tools.ant.filters.StripLineBreaks for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseParamFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
public class StripLineBreaks extends BaseParamFilterReader implements ChainableReader
{
public Reader chain(Reader p0){ return null; }
public StripLineBreaks(){}
public StripLineBreaks(Reader p0){}
public int read(){ return 0; }
public void setLineBreaks(String p0){}
}

View File

@@ -0,0 +1,23 @@
// Generated automatically from org.apache.tools.ant.filters.StripLineComments for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseParamFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
public class StripLineComments extends BaseParamFilterReader implements ChainableReader
{
public Reader chain(Reader p0){ return null; }
public StripLineComments(){}
public StripLineComments(Reader p0){}
public int read(){ return 0; }
public void addConfiguredComment(StripLineComments.Comment p0){}
static public class Comment
{
public Comment(){}
public final String getValue(){ return null; }
public final void setValue(String p0){}
public void addText(String p0){}
}
}

View File

@@ -0,0 +1,16 @@
// Generated automatically from org.apache.tools.ant.filters.SuffixLines for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseParamFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
public class SuffixLines extends BaseParamFilterReader implements ChainableReader
{
public Reader chain(Reader p0){ return null; }
public SuffixLines(){}
public SuffixLines(Reader p0){}
public int read(){ return 0; }
public void setSuffix(String p0){}
}

View File

@@ -0,0 +1,16 @@
// Generated automatically from org.apache.tools.ant.filters.TabsToSpaces for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseParamFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
public class TabsToSpaces extends BaseParamFilterReader implements ChainableReader
{
public Reader chain(Reader p0){ return null; }
public TabsToSpaces(){}
public TabsToSpaces(Reader p0){}
public int read(){ return 0; }
public void setTablength(int p0){}
}

View File

@@ -0,0 +1,17 @@
// Generated automatically from org.apache.tools.ant.filters.TailFilter for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.filters.BaseParamFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
public class TailFilter extends BaseParamFilterReader implements ChainableReader
{
public Reader chain(Reader p0){ return null; }
public TailFilter(){}
public TailFilter(Reader p0){}
public int read(){ return 0; }
public void setLines(long p0){}
public void setSkip(long p0){}
}

View File

@@ -0,0 +1,97 @@
// Generated automatically from org.apache.tools.ant.filters.TokenFilter for testing purposes
package org.apache.tools.ant.filters;
import java.io.Reader;
import org.apache.tools.ant.ProjectComponent;
import org.apache.tools.ant.filters.BaseFilterReader;
import org.apache.tools.ant.filters.ChainableReader;
import org.apache.tools.ant.util.LineTokenizer;
import org.apache.tools.ant.util.Tokenizer;
public class TokenFilter extends BaseFilterReader implements ChainableReader
{
abstract static public class ChainableReaderFilter extends ProjectComponent implements ChainableReader, TokenFilter.Filter
{
public ChainableReaderFilter(){}
public Reader chain(Reader p0){ return null; }
public void setByLine(boolean p0){}
}
public TokenFilter(){}
public TokenFilter(Reader p0){}
public final Reader chain(Reader p0){ return null; }
public int read(){ return 0; }
public static String resolveBackSlash(String p0){ return null; }
public static int convertRegexOptions(String p0){ return 0; }
public void add(TokenFilter.Filter p0){}
public void add(Tokenizer p0){}
public void addContainsRegex(TokenFilter.ContainsRegex p0){}
public void addContainsString(TokenFilter.ContainsString p0){}
public void addDeleteCharacters(TokenFilter.DeleteCharacters p0){}
public void addFileTokenizer(TokenFilter.FileTokenizer p0){}
public void addIgnoreBlank(TokenFilter.IgnoreBlank p0){}
public void addLineTokenizer(LineTokenizer p0){}
public void addReplaceRegex(TokenFilter.ReplaceRegex p0){}
public void addReplaceString(TokenFilter.ReplaceString p0){}
public void addStringTokenizer(TokenFilter.StringTokenizer p0){}
public void addTrim(TokenFilter.Trim p0){}
public void setDelimOutput(String p0){}
static public class ContainsRegex extends TokenFilter.ChainableReaderFilter
{
public ContainsRegex(){}
public String filter(String p0){ return null; }
public void setFlags(String p0){}
public void setPattern(String p0){}
public void setReplace(String p0){}
}
static public class ContainsString extends ProjectComponent implements TokenFilter.Filter
{
public ContainsString(){}
public String filter(String p0){ return null; }
public void setContains(String p0){}
}
static public class DeleteCharacters extends ProjectComponent implements ChainableReader, TokenFilter.Filter
{
public DeleteCharacters(){}
public Reader chain(Reader p0){ return null; }
public String filter(String p0){ return null; }
public void setChars(String p0){}
}
static public class FileTokenizer extends org.apache.tools.ant.util.FileTokenizer
{
public FileTokenizer(){}
}
static public class IgnoreBlank extends TokenFilter.ChainableReaderFilter
{
public IgnoreBlank(){}
public String filter(String p0){ return null; }
}
static public class ReplaceRegex extends TokenFilter.ChainableReaderFilter
{
public ReplaceRegex(){}
public String filter(String p0){ return null; }
public void setFlags(String p0){}
public void setPattern(String p0){}
public void setReplace(String p0){}
}
static public class ReplaceString extends TokenFilter.ChainableReaderFilter
{
public ReplaceString(){}
public String filter(String p0){ return null; }
public void setFrom(String p0){}
public void setTo(String p0){}
}
static public class StringTokenizer extends org.apache.tools.ant.util.StringTokenizer
{
public StringTokenizer(){}
}
static public class Trim extends TokenFilter.ChainableReaderFilter
{
public String filter(String p0){ return null; }
public Trim(){}
}
static public interface Filter
{
String filter(String p0);
}
}

View File

@@ -0,0 +1,10 @@
// Generated automatically from org.apache.tools.ant.input.InputHandler for testing purposes
package org.apache.tools.ant.input;
import org.apache.tools.ant.input.InputRequest;
public interface InputHandler
{
void handleInput(InputRequest p0);
}

View File

@@ -0,0 +1,16 @@
// Generated automatically from org.apache.tools.ant.input.InputRequest for testing purposes
package org.apache.tools.ant.input;
public class InputRequest
{
protected InputRequest() {}
public InputRequest(String p0){}
public String getDefaultValue(){ return null; }
public String getInput(){ return null; }
public String getPrompt(){ return null; }
public boolean isInputValid(){ return false; }
public void setDefaultValue(String p0){}
public void setInput(String p0){}
}

View File

@@ -0,0 +1,79 @@
// Generated automatically from org.apache.tools.ant.taskdefs.Copy for testing purposes
package org.apache.tools.ant.taskdefs;
import java.io.File;
import java.util.Hashtable;
import java.util.Map;
import java.util.Vector;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.FilterChain;
import org.apache.tools.ant.types.FilterSet;
import org.apache.tools.ant.types.Mapper;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection;
import org.apache.tools.ant.util.FileNameMapper;
import org.apache.tools.ant.util.FileUtils;
public class Copy extends Task
{
protected File destDir = null;
protected File destFile = null;
protected File file = null;
protected FileUtils fileUtils = null;
protected FileUtils getFileUtils(){ return null; }
protected Hashtable<File, File> completeDirMap = null;
protected Hashtable<String, String[]> dirCopyMap = null;
protected Hashtable<String, String[]> fileCopyMap = null;
protected Map<Resource, String[]> buildMap(Resource[] p0, File p1, FileNameMapper p2){ return null; }
protected Map<Resource, String[]> scan(Resource[] p0, File p1){ return null; }
protected Mapper mapperElement = null;
protected Vector<FilterChain> getFilterChains(){ return null; }
protected Vector<FilterSet> getFilterSets(){ return null; }
protected Vector<ResourceCollection> filesets = null;
protected Vector<ResourceCollection> rcs = null;
protected boolean failonerror = false;
protected boolean filtering = false;
protected boolean flatten = false;
protected boolean forceOverwrite = false;
protected boolean includeEmpty = false;
protected boolean preserveLastModified = false;
protected boolean supportsNonFileResources(){ return false; }
protected int verbosity = 0;
protected void buildMap(File p0, File p1, String[] p2, FileNameMapper p3, Hashtable<String, String[]> p4){}
protected void doFileOperations(){}
protected void doResourceOperations(Map<Resource, String[]> p0){}
protected void scan(File p0, File p1, String[] p2, String[] p3){}
protected void validateAttributes(){}
public Copy(){}
public FilterChain createFilterChain(){ return null; }
public FilterSet createFilterSet(){ return null; }
public Mapper createMapper(){ return null; }
public String getEncoding(){ return null; }
public String getOutputEncoding(){ return null; }
public boolean getForce(){ return false; }
public boolean getPreserveLastModified(){ return false; }
public boolean isEnableMultipleMapping(){ return false; }
public void add(FileNameMapper p0){}
public void add(ResourceCollection p0){}
public void addFileset(FileSet p0){}
public void execute(){}
public void setEnableMultipleMappings(boolean p0){}
public void setEncoding(String p0){}
public void setFailOnError(boolean p0){}
public void setFile(File p0){}
public void setFiltering(boolean p0){}
public void setFlatten(boolean p0){}
public void setForce(boolean p0){}
public void setGranularity(long p0){}
public void setIncludeEmptyDirs(boolean p0){}
public void setOutputEncoding(String p0){}
public void setOverwrite(boolean p0){}
public void setPreserveLastModified(String p0){}
public void setPreserveLastModified(boolean p0){}
public void setQuiet(boolean p0){}
public void setTodir(File p0){}
public void setTofile(File p0){}
public void setVerbose(boolean p0){}
}

View File

@@ -0,0 +1,47 @@
// Generated automatically from org.apache.tools.ant.taskdefs.Expand for testing purposes
package org.apache.tools.ant.taskdefs;
import java.io.File;
import java.io.InputStream;
import java.util.Date;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.Mapper;
import org.apache.tools.ant.types.PatternSet;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection;
import org.apache.tools.ant.util.FileNameMapper;
import org.apache.tools.ant.util.FileUtils;
public class Expand extends Task
{
protected Expand(String p0){}
protected FileNameMapper getMapper(){ return null; }
protected void expandFile(FileUtils p0, File p1, File p2){}
protected void expandResource(Resource p0, File p1){}
protected void extractFile(FileUtils p0, File p1, File p2, InputStream p3, String p4, Date p5, boolean p6, FileNameMapper p7){}
protected void internalSetEncoding(String p0){}
protected void internalSetScanForUnicodeExtraFields(boolean p0){}
public Boolean getAllowFilesToEscapeDest(){ return null; }
public Expand(){}
public Mapper createMapper(){ return null; }
public String getEncoding(){ return null; }
public boolean getFailOnEmptyArchive(){ return false; }
public boolean getScanForUnicodeExtraFields(){ return false; }
public static String ERROR_MULTIPLE_MAPPERS = null;
public static String NATIVE_ENCODING = null;
public void add(FileNameMapper p0){}
public void add(ResourceCollection p0){}
public void addFileset(FileSet p0){}
public void addPatternset(PatternSet p0){}
public void execute(){}
public void setAllowFilesToEscapeDest(boolean p0){}
public void setDest(File p0){}
public void setEncoding(String p0){}
public void setFailOnEmptyArchive(boolean p0){}
public void setOverwrite(boolean p0){}
public void setScanForUnicodeExtraFields(boolean p0){}
public void setSrc(File p0){}
public void setStripAbsolutePathSpec(boolean p0){}
}

View File

@@ -0,0 +1,9 @@
// Generated automatically from org.apache.tools.ant.taskdefs.condition.Condition for testing purposes
package org.apache.tools.ant.taskdefs.condition;
public interface Condition
{
boolean eval();
}

View File

@@ -0,0 +1,115 @@
// Generated automatically from org.apache.tools.ant.types.AbstractFileSet for testing purposes
package org.apache.tools.ant.types;
import java.io.File;
import java.util.Enumeration;
import java.util.Stack;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.FileScanner;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.DataType;
import org.apache.tools.ant.types.PatternSet;
import org.apache.tools.ant.types.Reference;
import org.apache.tools.ant.types.selectors.AndSelector;
import org.apache.tools.ant.types.selectors.ContainsRegexpSelector;
import org.apache.tools.ant.types.selectors.ContainsSelector;
import org.apache.tools.ant.types.selectors.DateSelector;
import org.apache.tools.ant.types.selectors.DependSelector;
import org.apache.tools.ant.types.selectors.DepthSelector;
import org.apache.tools.ant.types.selectors.DifferentSelector;
import org.apache.tools.ant.types.selectors.ExecutableSelector;
import org.apache.tools.ant.types.selectors.ExtendSelector;
import org.apache.tools.ant.types.selectors.FileSelector;
import org.apache.tools.ant.types.selectors.FilenameSelector;
import org.apache.tools.ant.types.selectors.MajoritySelector;
import org.apache.tools.ant.types.selectors.NoneSelector;
import org.apache.tools.ant.types.selectors.NotSelector;
import org.apache.tools.ant.types.selectors.OrSelector;
import org.apache.tools.ant.types.selectors.OwnedBySelector;
import org.apache.tools.ant.types.selectors.PosixGroupSelector;
import org.apache.tools.ant.types.selectors.PosixPermissionsSelector;
import org.apache.tools.ant.types.selectors.PresentSelector;
import org.apache.tools.ant.types.selectors.ReadableSelector;
import org.apache.tools.ant.types.selectors.SelectSelector;
import org.apache.tools.ant.types.selectors.SelectorContainer;
import org.apache.tools.ant.types.selectors.SizeSelector;
import org.apache.tools.ant.types.selectors.SymlinkSelector;
import org.apache.tools.ant.types.selectors.TypeSelector;
import org.apache.tools.ant.types.selectors.WritableSelector;
import org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector;
abstract public class AbstractFileSet extends DataType implements Cloneable, SelectorContainer
{
protected AbstractFileSet getRef(Project p0){ return null; }
protected AbstractFileSet(AbstractFileSet p0){}
protected void dieOnCircularReference(Stack<Object> p0, Project p1){}
public AbstractFileSet(){}
public DirectoryScanner getDirectoryScanner(){ return null; }
public DirectoryScanner getDirectoryScanner(Project p0){ return null; }
public Enumeration<FileSelector> selectorElements(){ return null; }
public File getDir(){ return null; }
public File getDir(Project p0){ return null; }
public FileSelector[] getSelectors(Project p0){ return null; }
public Object clone(){ return null; }
public PatternSet createPatternSet(){ return null; }
public PatternSet mergePatterns(Project p0){ return null; }
public PatternSet.NameEntry createExclude(){ return null; }
public PatternSet.NameEntry createExcludesFile(){ return null; }
public PatternSet.NameEntry createInclude(){ return null; }
public PatternSet.NameEntry createIncludesFile(){ return null; }
public String toString(){ return null; }
public String[] mergeExcludes(Project p0){ return null; }
public String[] mergeIncludes(Project p0){ return null; }
public boolean getDefaultexcludes(){ return false; }
public boolean getErrorOnMissingDir(){ return false; }
public boolean hasPatterns(){ return false; }
public boolean hasSelectors(){ return false; }
public boolean isCaseSensitive(){ return false; }
public boolean isFollowSymlinks(){ return false; }
public int getMaxLevelsOfSymlinks(){ return 0; }
public int selectorCount(){ return 0; }
public void add(FileSelector p0){}
public void addAnd(AndSelector p0){}
public void addContains(ContainsSelector p0){}
public void addContainsRegexp(ContainsRegexpSelector p0){}
public void addCustom(ExtendSelector p0){}
public void addDate(DateSelector p0){}
public void addDepend(DependSelector p0){}
public void addDepth(DepthSelector p0){}
public void addDifferent(DifferentSelector p0){}
public void addExecutable(ExecutableSelector p0){}
public void addFilename(FilenameSelector p0){}
public void addMajority(MajoritySelector p0){}
public void addModified(ModifiedSelector p0){}
public void addNone(NoneSelector p0){}
public void addNot(NotSelector p0){}
public void addOr(OrSelector p0){}
public void addOwnedBy(OwnedBySelector p0){}
public void addPosixGroup(PosixGroupSelector p0){}
public void addPosixPermissions(PosixPermissionsSelector p0){}
public void addPresent(PresentSelector p0){}
public void addReadable(ReadableSelector p0){}
public void addSelector(SelectSelector p0){}
public void addSize(SizeSelector p0){}
public void addSymlink(SymlinkSelector p0){}
public void addType(TypeSelector p0){}
public void addWritable(WritableSelector p0){}
public void appendExcludes(String[] p0){}
public void appendIncludes(String[] p0){}
public void appendSelector(FileSelector p0){}
public void setCaseSensitive(boolean p0){}
public void setDefaultexcludes(boolean p0){}
public void setDir(File p0){}
public void setErrorOnMissingDir(boolean p0){}
public void setExcludes(String p0){}
public void setExcludesfile(File p0){}
public void setFile(File p0){}
public void setFollowSymlinks(boolean p0){}
public void setIncludes(String p0){}
public void setIncludesfile(File p0){}
public void setMaxLevelsOfSymlinks(int p0){}
public void setRefid(Reference p0){}
public void setupDirectoryScanner(FileScanner p0){}
public void setupDirectoryScanner(FileScanner p0, Project p1){}
}

View File

@@ -0,0 +1,25 @@
// Generated automatically from org.apache.tools.ant.types.AntFilterReader for testing purposes
package org.apache.tools.ant.types;
import java.util.Stack;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.DataType;
import org.apache.tools.ant.types.Parameter;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference;
public class AntFilterReader extends DataType
{
protected void dieOnCircularReference(Stack<Object> p0, Project p1){}
public AntFilterReader(){}
public Parameter[] getParams(){ return null; }
public Path createClasspath(){ return null; }
public Path getClasspath(){ return null; }
public String getClassName(){ return null; }
public void addParam(Parameter p0){}
public void setClassName(String p0){}
public void setClasspath(Path p0){}
public void setClasspathRef(Reference p0){}
public void setRefid(Reference p0){}
}

View File

@@ -0,0 +1,19 @@
// Generated automatically from org.apache.tools.ant.types.Comparison for testing purposes
package org.apache.tools.ant.types;
import org.apache.tools.ant.types.EnumeratedAttribute;
public class Comparison extends EnumeratedAttribute
{
public Comparison(){}
public Comparison(String p0){}
public String[] getValues(){ return null; }
public boolean evaluate(int p0){ return false; }
public static Comparison EQUAL = null;
public static Comparison GREATER = null;
public static Comparison GREATER_EQUAL = null;
public static Comparison LESS = null;
public static Comparison LESS_EQUAL = null;
public static Comparison NOT_EQUAL = null;
}

View File

@@ -0,0 +1,39 @@
// Generated automatically from org.apache.tools.ant.types.DataType for testing purposes
package org.apache.tools.ant.types;
import java.util.Stack;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectComponent;
import org.apache.tools.ant.types.Reference;
abstract public class DataType extends ProjectComponent implements Cloneable
{
protected <T> T getCheckedRef(){ return null; }
protected <T> T getCheckedRef(Project p0){ return null; }
protected <T> T getCheckedRef(java.lang.Class<T> p0){ return null; }
protected <T> T getCheckedRef(java.lang.Class<T> p0, String p1){ return null; }
protected <T> T getCheckedRef(java.lang.Class<T> p0, String p1, Project p2){ return null; }
protected BuildException circularReference(){ return null; }
protected BuildException noChildrenAllowed(){ return null; }
protected BuildException tooManyAttributes(){ return null; }
protected Reference ref = null;
protected String getDataTypeName(){ return null; }
protected boolean checked = false;
protected boolean isChecked(){ return false; }
protected void checkAttributesAllowed(){}
protected void checkChildrenAllowed(){}
protected void dieOnCircularReference(){}
protected void dieOnCircularReference(Project p0){}
protected void dieOnCircularReference(Stack<Object> p0, Project p1){}
protected void setChecked(boolean p0){}
public DataType(){}
public Object clone(){ return null; }
public Reference getRefid(){ return null; }
public String toString(){ return null; }
public boolean isReference(){ return false; }
public static void invokeCircularReferenceCheck(DataType p0, Stack<Object> p1, Project p2){}
public static void pushAndInvokeCircularReferenceCheck(DataType p0, Stack<Object> p1, Project p2){}
public void setRefid(Reference p0){}
}

View File

@@ -0,0 +1,21 @@
// Generated automatically from org.apache.tools.ant.types.DirSet for testing purposes
package org.apache.tools.ant.types;
import java.util.Iterator;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.AbstractFileSet;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection;
public class DirSet extends AbstractFileSet implements ResourceCollection
{
protected AbstractFileSet getRef(Project p0){ return null; }
protected DirSet(DirSet p0){}
public DirSet(){}
public Iterator<Resource> iterator(){ return null; }
public Object clone(){ return null; }
public String toString(){ return null; }
public boolean isFilesystemOnly(){ return false; }
public int size(){ return 0; }
}

View File

@@ -0,0 +1,18 @@
// Generated automatically from org.apache.tools.ant.types.EnumeratedAttribute for testing purposes
package org.apache.tools.ant.types;
abstract public class EnumeratedAttribute
{
protected EnumeratedAttribute(){}
protected String value = null;
public String toString(){ return null; }
public abstract String[] getValues();
public final String getValue(){ return null; }
public final boolean containsValue(String p0){ return false; }
public final int getIndex(){ return 0; }
public final int indexOfValue(String p0){ return 0; }
public static EnumeratedAttribute getInstance(Class<? extends EnumeratedAttribute> p0, String p1){ return null; }
public void setValue(String p0){}
}

View File

@@ -0,0 +1,32 @@
// Generated automatically from org.apache.tools.ant.types.FileList for testing purposes
package org.apache.tools.ant.types;
import java.io.File;
import java.util.Iterator;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.DataType;
import org.apache.tools.ant.types.Reference;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection;
public class FileList extends DataType implements ResourceCollection
{
protected FileList(FileList p0){}
public File getDir(Project p0){ return null; }
public FileList(){}
public Iterator<Resource> iterator(){ return null; }
public String[] getFiles(Project p0){ return null; }
public boolean isFilesystemOnly(){ return false; }
public int size(){ return 0; }
public void addConfiguredFile(FileList.FileName p0){}
public void setDir(File p0){}
public void setFiles(String p0){}
public void setRefid(Reference p0){}
static public class FileName
{
public FileName(){}
public String getName(){ return null; }
public void setName(String p0){}
}
}

View File

@@ -0,0 +1,20 @@
// Generated automatically from org.apache.tools.ant.types.FileSet for testing purposes
package org.apache.tools.ant.types;
import java.util.Iterator;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.AbstractFileSet;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection;
public class FileSet extends AbstractFileSet implements ResourceCollection
{
protected AbstractFileSet getRef(Project p0){ return null; }
protected FileSet(FileSet p0){}
public FileSet(){}
public Iterator<Resource> iterator(){ return null; }
public Object clone(){ return null; }
public boolean isFilesystemOnly(){ return false; }
public int size(){ return 0; }
}

View File

@@ -0,0 +1,57 @@
// Generated automatically from org.apache.tools.ant.types.FilterChain for testing purposes
package org.apache.tools.ant.types;
import java.util.Stack;
import java.util.Vector;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.filters.ChainableReader;
import org.apache.tools.ant.filters.ClassConstants;
import org.apache.tools.ant.filters.EscapeUnicode;
import org.apache.tools.ant.filters.ExpandProperties;
import org.apache.tools.ant.filters.HeadFilter;
import org.apache.tools.ant.filters.LineContains;
import org.apache.tools.ant.filters.LineContainsRegExp;
import org.apache.tools.ant.filters.PrefixLines;
import org.apache.tools.ant.filters.ReplaceTokens;
import org.apache.tools.ant.filters.StripJavaComments;
import org.apache.tools.ant.filters.StripLineBreaks;
import org.apache.tools.ant.filters.StripLineComments;
import org.apache.tools.ant.filters.SuffixLines;
import org.apache.tools.ant.filters.TabsToSpaces;
import org.apache.tools.ant.filters.TailFilter;
import org.apache.tools.ant.filters.TokenFilter;
import org.apache.tools.ant.types.AntFilterReader;
import org.apache.tools.ant.types.DataType;
import org.apache.tools.ant.types.Reference;
public class FilterChain extends DataType
{
protected void dieOnCircularReference(Stack<Object> p0, Project p1){}
public FilterChain(){}
public Vector<Object> getFilterReaders(){ return null; }
public void add(ChainableReader p0){}
public void addClassConstants(ClassConstants p0){}
public void addContainsRegex(TokenFilter.ContainsRegex p0){}
public void addDeleteCharacters(TokenFilter.DeleteCharacters p0){}
public void addEscapeUnicode(EscapeUnicode p0){}
public void addExpandProperties(ExpandProperties p0){}
public void addFilterReader(AntFilterReader p0){}
public void addHeadFilter(HeadFilter p0){}
public void addIgnoreBlank(TokenFilter.IgnoreBlank p0){}
public void addLineContains(LineContains p0){}
public void addLineContainsRegExp(LineContainsRegExp p0){}
public void addPrefixLines(PrefixLines p0){}
public void addReplaceRegex(TokenFilter.ReplaceRegex p0){}
public void addReplaceString(TokenFilter.ReplaceString p0){}
public void addReplaceTokens(ReplaceTokens p0){}
public void addStripJavaComments(StripJavaComments p0){}
public void addStripLineBreaks(StripLineBreaks p0){}
public void addStripLineComments(StripLineComments p0){}
public void addSuffixLines(SuffixLines p0){}
public void addTabsToSpaces(TabsToSpaces p0){}
public void addTailFilter(TailFilter p0){}
public void addTokenFilter(TokenFilter p0){}
public void addTrim(TokenFilter.Trim p0){}
public void setRefid(Reference p0){}
}

View File

@@ -0,0 +1,62 @@
// Generated automatically from org.apache.tools.ant.types.FilterSet for testing purposes
package org.apache.tools.ant.types;
import java.io.File;
import java.util.Hashtable;
import java.util.Vector;
import org.apache.tools.ant.types.DataType;
import org.apache.tools.ant.types.EnumeratedAttribute;
import org.apache.tools.ant.types.PropertySet;
public class FilterSet extends DataType implements Cloneable
{
protected FilterSet getRef(){ return null; }
protected FilterSet(FilterSet p0){}
protected Vector<FilterSet.Filter> getFilters(){ return null; }
public FilterSet(){}
public FilterSet.FiltersFile createFiltersfile(){ return null; }
public FilterSet.OnMissing getOnMissingFiltersFile(){ return null; }
public Hashtable<String, String> getFilterHash(){ return null; }
public Object clone(){ return null; }
public String getBeginToken(){ return null; }
public String getEndToken(){ return null; }
public String replaceTokens(String p0){ return null; }
public boolean hasFilters(){ return false; }
public boolean isRecurse(){ return false; }
public class FiltersFile
{
public FiltersFile(){}
public void setFile(File p0){}
}
public static String DEFAULT_TOKEN_END = null;
public static String DEFAULT_TOKEN_START = null;
public void addConfiguredFilterSet(FilterSet p0){}
public void addConfiguredPropertySet(PropertySet p0){}
public void addFilter(FilterSet.Filter p0){}
public void addFilter(String p0, String p1){}
public void readFiltersFromFile(File p0){}
public void setBeginToken(String p0){}
public void setEndToken(String p0){}
public void setFiltersfile(File p0){}
public void setOnMissingFiltersFile(FilterSet.OnMissing p0){}
public void setRecurse(boolean p0){}
static public class Filter
{
public Filter(){}
public Filter(String p0, String p1){}
public String getToken(){ return null; }
public String getValue(){ return null; }
public void setToken(String p0){}
public void setValue(String p0){}
}
static public class OnMissing extends EnumeratedAttribute
{
public OnMissing(){}
public OnMissing(String p0){}
public String[] getValues(){ return null; }
public static FilterSet.OnMissing FAIL = null;
public static FilterSet.OnMissing IGNORE = null;
public static FilterSet.OnMissing WARN = null;
}
}

Some files were not shown because too many files have changed in this diff Show More