From ccf7d9beecb2c1dd4104e87ae6d23301c669ec77 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer Date: Thu, 9 Mar 2023 11:41:59 +0100 Subject: [PATCH 01/22] Update MaD Declarations after Triage --- java/ql/lib/ext/com.thoughtworks.xstream.model.yml | 6 ++++++ java/ql/lib/ext/hudson.remoting.model.yml | 6 ++++++ java/ql/lib/ext/io.netty.resolver.model.yml | 6 ++++++ java/ql/lib/ext/java.net.model.yml | 9 +++++++++ java/ql/lib/ext/java.nio.file.model.yml | 4 ++++ java/ql/lib/ext/javax.xml.transform.stream.model.yml | 5 +++++ ...rg.apache.commons.compress.archivers.tar.model.yml | 4 +++- java/ql/lib/ext/org.apache.commons.io.model.yml | 5 +++++ java/ql/lib/ext/org.apache.commons.jelly.model.yml | 11 +++++++++++ java/ql/lib/ext/org.apache.tools.ant.model.yml | 10 ++++++++++ .../lib/ext/org.apache.tools.ant.taskdefs.model.yml | 11 +++++++++++ java/ql/lib/ext/org.apache.tools.zip.model.yml | 6 ++++++ .../org.kohsuke.stapler.framework.adjunct.model.yml | 6 ++++++ .../ext/org.kohsuke.stapler.framework.io.model.yml | 6 ++++++ java/ql/lib/ext/org.kohsuke.stapler.model.yml | 7 +++++++ .../lib/ext/org.openjdk.jmh.runner.options.model.yml | 6 ++++++ 16 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 java/ql/lib/ext/com.thoughtworks.xstream.model.yml create mode 100644 java/ql/lib/ext/hudson.remoting.model.yml create mode 100644 java/ql/lib/ext/io.netty.resolver.model.yml create mode 100644 java/ql/lib/ext/org.apache.commons.jelly.model.yml create mode 100644 java/ql/lib/ext/org.apache.tools.ant.model.yml create mode 100644 java/ql/lib/ext/org.apache.tools.ant.taskdefs.model.yml create mode 100644 java/ql/lib/ext/org.apache.tools.zip.model.yml create mode 100644 java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml create mode 100644 java/ql/lib/ext/org.kohsuke.stapler.framework.io.model.yml create mode 100644 java/ql/lib/ext/org.kohsuke.stapler.model.yml create mode 100644 java/ql/lib/ext/org.openjdk.jmh.runner.options.model.yml diff --git a/java/ql/lib/ext/com.thoughtworks.xstream.model.yml b/java/ql/lib/ext/com.thoughtworks.xstream.model.yml new file mode 100644 index 00000000000..a129f9f2580 --- /dev/null +++ b/java/ql/lib/ext/com.thoughtworks.xstream.model.yml @@ -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"] diff --git a/java/ql/lib/ext/hudson.remoting.model.yml b/java/ql/lib/ext/hudson.remoting.model.yml new file mode 100644 index 00000000000..6125f10c827 --- /dev/null +++ b/java/ql/lib/ext/hudson.remoting.model.yml @@ -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"] diff --git a/java/ql/lib/ext/io.netty.resolver.model.yml b/java/ql/lib/ext/io.netty.resolver.model.yml new file mode 100644 index 00000000000..64444c387eb --- /dev/null +++ b/java/ql/lib/ext/io.netty.resolver.model.yml @@ -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"] diff --git a/java/ql/lib/ext/java.net.model.yml b/java/ql/lib/ext/java.net.model.yml index 1ee1c96347f..9554dd2295f 100644 --- a/java/ql/lib/ext/java.net.model.yml +++ b/java/ql/lib/ext/java.net.model.yml @@ -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"] diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index db51d2f6686..e9c25ee207c 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -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"] +# suggested label is not supported: - ["java.nio.file", "Files", False, "delete", "(Path)", "", "Argument[0]", "delete-file", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", False, "deleteIfExists", "(Path)", "", "Argument[0]", "delete-file", "ai-generated"] + - ["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"] diff --git a/java/ql/lib/ext/javax.xml.transform.stream.model.yml b/java/ql/lib/ext/javax.xml.transform.stream.model.yml index 5098f9badfc..6c97f60e2d9 100644 --- a/java/ql/lib/ext/javax.xml.transform.stream.model.yml +++ b/java/ql/lib/ext/javax.xml.transform.stream.model.yml @@ -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"] diff --git a/java/ql/lib/ext/org.apache.commons.compress.archivers.tar.model.yml b/java/ql/lib/ext/org.apache.commons.compress.archivers.tar.model.yml index 37a7a3431b4..bf565008fa0 100644 --- a/java/ql/lib/ext/org.apache.commons.compress.archivers.tar.model.yml +++ b/java/ql/lib/ext/org.apache.commons.compress.archivers.tar.model.yml @@ -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"] diff --git a/java/ql/lib/ext/org.apache.commons.io.model.yml b/java/ql/lib/ext/org.apache.commons.io.model.yml index d00be2099de..7a3176c1e7d 100644 --- a/java/ql/lib/ext/org.apache.commons.io.model.yml +++ b/java/ql/lib/ext/org.apache.commons.io.model.yml @@ -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"] diff --git a/java/ql/lib/ext/org.apache.commons.jelly.model.yml b/java/ql/lib/ext/org.apache.commons.jelly.model.yml new file mode 100644 index 00000000000..2baa73831a9 --- /dev/null +++ b/java/ql/lib/ext/org.apache.commons.jelly.model.yml @@ -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"] # @atorralba: double check + - ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(JellyContext,URL,URL)", "", "Argument[2]", "open-url", "ai-generated"] # @atorralba: double check + - ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(JellyContext,URL)", "", "Argument[1]", "open-url", "ai-generated"] # @atorralba: double check + - ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(URL,URL)", "", "Argument[0]", "open-url", "ai-generated"] # @atorralba: double check + - ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(URL,URL)", "", "Argument[1]", "open-url", "ai-generated"] # @atorralba: double check + - ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(URL)", "", "Argument[0]", "open-url", "ai-generated"] # @atorralba: double check diff --git a/java/ql/lib/ext/org.apache.tools.ant.model.yml b/java/ql/lib/ext/org.apache.tools.ant.model.yml new file mode 100644 index 00000000000..2f3870c8ee7 --- /dev/null +++ b/java/ql/lib/ext/org.apache.tools.ant.model.yml @@ -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"] diff --git a/java/ql/lib/ext/org.apache.tools.ant.taskdefs.model.yml b/java/ql/lib/ext/org.apache.tools.ant.taskdefs.model.yml new file mode 100644 index 00000000000..892f8c15876 --- /dev/null +++ b/java/ql/lib/ext/org.apache.tools.ant.taskdefs.model.yml @@ -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"] diff --git a/java/ql/lib/ext/org.apache.tools.zip.model.yml b/java/ql/lib/ext/org.apache.tools.zip.model.yml new file mode 100644 index 00000000000..e70c0fa6ed5 --- /dev/null +++ b/java/ql/lib/ext/org.apache.tools.zip.model.yml @@ -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"] diff --git a/java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml b/java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml new file mode 100644 index 00000000000..9376c09210d --- /dev/null +++ b/java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml @@ -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.AdjunctManager.rootURL]", "taint", "ai-generated"] # the class never accesses the URL, but the field is public diff --git a/java/ql/lib/ext/org.kohsuke.stapler.framework.io.model.yml b/java/ql/lib/ext/org.kohsuke.stapler.framework.io.model.yml new file mode 100644 index 00000000000..86cdbc2b740 --- /dev/null +++ b/java/ql/lib/ext/org.kohsuke.stapler.framework.io.model.yml @@ -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"] diff --git a/java/ql/lib/ext/org.kohsuke.stapler.model.yml b/java/ql/lib/ext/org.kohsuke.stapler.model.yml new file mode 100644 index 00000000000..3425699b0ab --- /dev/null +++ b/java/ql/lib/ext/org.kohsuke.stapler.model.yml @@ -0,0 +1,7 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.kohsuke.stapler", "HttpResponses", True, "redirectTo", "(String)", "", "Argument[0]", "open-url", "ai-generated"] + - ["org.kohsuke.stapler", "HttpResponses", True, "staticResource", "(URL)", "", "Argument[0]", "open-url", "ai-generated"] diff --git a/java/ql/lib/ext/org.openjdk.jmh.runner.options.model.yml b/java/ql/lib/ext/org.openjdk.jmh.runner.options.model.yml new file mode 100644 index 00000000000..fd37cd1796d --- /dev/null +++ b/java/ql/lib/ext/org.openjdk.jmh.runner.options.model.yml @@ -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"] From 1b85e8b706e9ca4aa4ec1d56fc388ee2ca0bb351 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 11:00:27 +0100 Subject: [PATCH 02/22] hudson.remoting tests --- .../library-tests/frameworks/hudson/Test.java | 28 +++++++++++++++++++ .../library-tests/frameworks/hudson/options | 1 + .../frameworks/hudson/test.expected | 0 .../library-tests/frameworks/hudson/test.ql | 2 ++ .../remoting/URLDeserializationHelper.java | 11 ++++++++ 5 files changed, 42 insertions(+) create mode 100644 java/ql/test/library-tests/frameworks/hudson/Test.java create mode 100644 java/ql/test/library-tests/frameworks/hudson/options create mode 100644 java/ql/test/library-tests/frameworks/hudson/test.expected create mode 100644 java/ql/test/library-tests/frameworks/hudson/test.ql create mode 100644 java/ql/test/stubs/jenkins/hudson/remoting/URLDeserializationHelper.java diff --git a/java/ql/test/library-tests/frameworks/hudson/Test.java b/java/ql/test/library-tests/frameworks/hudson/Test.java new file mode 100644 index 00000000000..d8cf3280bc7 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/hudson/Test.java @@ -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 + } + + } + +} \ No newline at end of file diff --git a/java/ql/test/library-tests/frameworks/hudson/options b/java/ql/test/library-tests/frameworks/hudson/options new file mode 100644 index 00000000000..203bbb4faa5 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/hudson/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/jenkins \ No newline at end of file diff --git a/java/ql/test/library-tests/frameworks/hudson/test.expected b/java/ql/test/library-tests/frameworks/hudson/test.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/frameworks/hudson/test.ql b/java/ql/test/library-tests/frameworks/hudson/test.ql new file mode 100644 index 00000000000..5d91e4e8e26 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/hudson/test.ql @@ -0,0 +1,2 @@ +import java +import TestUtilities.InlineFlowTest diff --git a/java/ql/test/stubs/jenkins/hudson/remoting/URLDeserializationHelper.java b/java/ql/test/stubs/jenkins/hudson/remoting/URLDeserializationHelper.java new file mode 100644 index 00000000000..dca122dc9f1 --- /dev/null +++ b/java/ql/test/stubs/jenkins/hudson/remoting/URLDeserializationHelper.java @@ -0,0 +1,11 @@ +// Generated automatically from hudson.remoting.URLDeserializationHelper for testing purposes + +package hudson.remoting; + +import java.net.URL; + +public class URLDeserializationHelper +{ + public URLDeserializationHelper(){} + public static URL wrapIfRequired(URL p0){ return null; } +} From 8cc2686a2f0a18d5ae7b1e40cc378e6c98b3c959 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 11:09:26 +0100 Subject: [PATCH 03/22] netty.resolver tests --- .../library-tests/frameworks/netty/Test.java | 28 ++++++++++++++++++ .../library-tests/frameworks/netty/options | 1 + .../frameworks/netty/test.expected | 0 .../library-tests/frameworks/netty/test.ql | 2 ++ .../io/netty/resolver/NameResolver.java | 16 ++++++++++ .../io/netty/resolver/SimpleNameResolver.java | 22 ++++++++++++++ .../netty/util/concurrent/EventExecutor.java | 19 ++++++++++++ .../util/concurrent/EventExecutorGroup.java | 29 +++++++++++++++++++ .../io/netty/util/concurrent/Future.java | 27 +++++++++++++++++ .../concurrent/GenericFutureListener.java | 10 +++++++ .../util/concurrent/ProgressiveFuture.java | 17 +++++++++++ .../util/concurrent/ProgressivePromise.java | 23 +++++++++++++++ .../io/netty/util/concurrent/Promise.java | 22 ++++++++++++++ .../util/concurrent/ScheduledFuture.java | 8 +++++ 14 files changed, 224 insertions(+) create mode 100644 java/ql/test/library-tests/frameworks/netty/Test.java create mode 100644 java/ql/test/library-tests/frameworks/netty/options create mode 100644 java/ql/test/library-tests/frameworks/netty/test.expected create mode 100644 java/ql/test/library-tests/frameworks/netty/test.ql create mode 100644 java/ql/test/stubs/netty-4.1.x/io/netty/resolver/NameResolver.java create mode 100644 java/ql/test/stubs/netty-4.1.x/io/netty/resolver/SimpleNameResolver.java create mode 100644 java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/EventExecutor.java create mode 100644 java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/EventExecutorGroup.java create mode 100644 java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/Future.java create mode 100644 java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/GenericFutureListener.java create mode 100644 java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ProgressiveFuture.java create mode 100644 java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ProgressivePromise.java create mode 100644 java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/Promise.java create mode 100644 java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ScheduledFuture.java diff --git a/java/ql/test/library-tests/frameworks/netty/Test.java b/java/ql/test/library-tests/frameworks/netty/Test.java new file mode 100644 index 00000000000..938c9a9e468 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/netty/Test.java @@ -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 + } + + } + +} diff --git a/java/ql/test/library-tests/frameworks/netty/options b/java/ql/test/library-tests/frameworks/netty/options new file mode 100644 index 00000000000..84eb569be33 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/netty/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/netty-4.1.x diff --git a/java/ql/test/library-tests/frameworks/netty/test.expected b/java/ql/test/library-tests/frameworks/netty/test.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/frameworks/netty/test.ql b/java/ql/test/library-tests/frameworks/netty/test.ql new file mode 100644 index 00000000000..5d91e4e8e26 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/netty/test.ql @@ -0,0 +1,2 @@ +import java +import TestUtilities.InlineFlowTest diff --git a/java/ql/test/stubs/netty-4.1.x/io/netty/resolver/NameResolver.java b/java/ql/test/stubs/netty-4.1.x/io/netty/resolver/NameResolver.java new file mode 100644 index 00000000000..4e823168535 --- /dev/null +++ b/java/ql/test/stubs/netty-4.1.x/io/netty/resolver/NameResolver.java @@ -0,0 +1,16 @@ +// Generated automatically from io.netty.resolver.NameResolver for testing purposes + +package io.netty.resolver; + +import io.netty.util.concurrent.Promise; +import java.io.Closeable; +import java.util.List; + +public interface NameResolver extends Closeable +{ + io.netty.util.concurrent.Future resolve(String p0); + io.netty.util.concurrent.Future resolve(String p0, io.netty.util.concurrent.Promise p1); + io.netty.util.concurrent.Future> resolveAll(String p0); + io.netty.util.concurrent.Future> resolveAll(String p0, io.netty.util.concurrent.Promise> p1); + void close(); +} diff --git a/java/ql/test/stubs/netty-4.1.x/io/netty/resolver/SimpleNameResolver.java b/java/ql/test/stubs/netty-4.1.x/io/netty/resolver/SimpleNameResolver.java new file mode 100644 index 00000000000..7208b2bb36b --- /dev/null +++ b/java/ql/test/stubs/netty-4.1.x/io/netty/resolver/SimpleNameResolver.java @@ -0,0 +1,22 @@ +// Generated automatically from io.netty.resolver.SimpleNameResolver for testing purposes + +package io.netty.resolver; + +import io.netty.resolver.NameResolver; +import io.netty.util.concurrent.EventExecutor; +import io.netty.util.concurrent.Promise; +import java.util.List; + +abstract public class SimpleNameResolver implements NameResolver +{ + protected SimpleNameResolver() {} + protected EventExecutor executor(){ return null; } + protected SimpleNameResolver(EventExecutor p0){} + protected abstract void doResolve(String p0, io.netty.util.concurrent.Promise p1); + protected abstract void doResolveAll(String p0, io.netty.util.concurrent.Promise> p1); + public final io.netty.util.concurrent.Future resolve(String p0){ return null; } + public final io.netty.util.concurrent.Future> resolveAll(String p0){ return null; } + public io.netty.util.concurrent.Future resolve(String p0, io.netty.util.concurrent.Promise p1){ return null; } + public io.netty.util.concurrent.Future> resolveAll(String p0, io.netty.util.concurrent.Promise> p1){ return null; } + public void close(){} +} diff --git a/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/EventExecutor.java b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/EventExecutor.java new file mode 100644 index 00000000000..5ccbe379cf6 --- /dev/null +++ b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/EventExecutor.java @@ -0,0 +1,19 @@ +// Generated automatically from io.netty.util.concurrent.EventExecutor for testing purposes + +package io.netty.util.concurrent; + +import io.netty.util.concurrent.EventExecutorGroup; +import io.netty.util.concurrent.ProgressivePromise; +import io.netty.util.concurrent.Promise; + +public interface EventExecutor extends EventExecutorGroup +{ + ProgressivePromise newProgressivePromise(); + io.netty.util.concurrent.Future newFailedFuture(Throwable p0); + io.netty.util.concurrent.Future newSucceededFuture(V p0); + io.netty.util.concurrent.Promise newPromise(); + EventExecutor next(); + EventExecutorGroup parent(); + boolean inEventLoop(); + boolean inEventLoop(Thread p0); +} diff --git a/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/EventExecutorGroup.java b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/EventExecutorGroup.java new file mode 100644 index 00000000000..494a2678a5d --- /dev/null +++ b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/EventExecutorGroup.java @@ -0,0 +1,29 @@ +// Generated automatically from io.netty.util.concurrent.EventExecutorGroup for testing purposes + +package io.netty.util.concurrent; + +import io.netty.util.concurrent.EventExecutor; +import java.util.Iterator; +import java.util.List; +import java.util.concurrent.Callable; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +public interface EventExecutorGroup extends Iterable, ScheduledExecutorService +{ + io.netty.util.concurrent.Future submit(Runnable p0, T p1); + io.netty.util.concurrent.Future submit(java.util.concurrent.Callable p0); + io.netty.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable p0, long p1, TimeUnit p2); + EventExecutor next(); + Iterator iterator(); + List shutdownNow(); + boolean isShuttingDown(); + io.netty.util.concurrent.Future shutdownGracefully(); + io.netty.util.concurrent.Future shutdownGracefully(long p0, long p1, TimeUnit p2); + io.netty.util.concurrent.Future submit(Runnable p0); + io.netty.util.concurrent.Future terminationFuture(); + io.netty.util.concurrent.ScheduledFuture schedule(Runnable p0, long p1, TimeUnit p2); + io.netty.util.concurrent.ScheduledFuture scheduleAtFixedRate(Runnable p0, long p1, long p2, TimeUnit p3); + io.netty.util.concurrent.ScheduledFuture scheduleWithFixedDelay(Runnable p0, long p1, long p2, TimeUnit p3); + void shutdown(); +} diff --git a/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/Future.java b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/Future.java new file mode 100644 index 00000000000..276f52d58ab --- /dev/null +++ b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/Future.java @@ -0,0 +1,27 @@ +// Generated automatically from io.netty.util.concurrent.Future for testing purposes + +package io.netty.util.concurrent; + +import io.netty.util.concurrent.GenericFutureListener; +import java.util.concurrent.TimeUnit; + +public interface Future extends java.util.concurrent.Future +{ + Throwable cause(); + V getNow(); + boolean await(long p0); + boolean await(long p0, TimeUnit p1); + boolean awaitUninterruptibly(long p0); + boolean awaitUninterruptibly(long p0, TimeUnit p1); + boolean cancel(boolean p0); + boolean isCancellable(); + boolean isSuccess(); + io.netty.util.concurrent.Future addListener(io.netty.util.concurrent.GenericFutureListener> p0); + io.netty.util.concurrent.Future addListeners(io.netty.util.concurrent.GenericFutureListener>... p0); + io.netty.util.concurrent.Future await(); + io.netty.util.concurrent.Future awaitUninterruptibly(); + io.netty.util.concurrent.Future removeListener(io.netty.util.concurrent.GenericFutureListener> p0); + io.netty.util.concurrent.Future removeListeners(io.netty.util.concurrent.GenericFutureListener>... p0); + io.netty.util.concurrent.Future sync(); + io.netty.util.concurrent.Future syncUninterruptibly(); +} diff --git a/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/GenericFutureListener.java b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/GenericFutureListener.java new file mode 100644 index 00000000000..4c89867723e --- /dev/null +++ b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/GenericFutureListener.java @@ -0,0 +1,10 @@ +// Generated automatically from io.netty.util.concurrent.GenericFutureListener for testing purposes + +package io.netty.util.concurrent; + +import java.util.EventListener; + +public interface GenericFutureListener> extends EventListener +{ + void operationComplete(F p0); +} diff --git a/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ProgressiveFuture.java b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ProgressiveFuture.java new file mode 100644 index 00000000000..04d80b414cc --- /dev/null +++ b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ProgressiveFuture.java @@ -0,0 +1,17 @@ +// Generated automatically from io.netty.util.concurrent.ProgressiveFuture for testing purposes + +package io.netty.util.concurrent; + +import io.netty.util.concurrent.GenericFutureListener; + +public interface ProgressiveFuture extends io.netty.util.concurrent.Future +{ + ProgressiveFuture addListener(io.netty.util.concurrent.GenericFutureListener> p0); + ProgressiveFuture addListeners(io.netty.util.concurrent.GenericFutureListener>... p0); + ProgressiveFuture await(); + ProgressiveFuture awaitUninterruptibly(); + ProgressiveFuture removeListener(io.netty.util.concurrent.GenericFutureListener> p0); + ProgressiveFuture removeListeners(io.netty.util.concurrent.GenericFutureListener>... p0); + ProgressiveFuture sync(); + ProgressiveFuture syncUninterruptibly(); +} diff --git a/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ProgressivePromise.java b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ProgressivePromise.java new file mode 100644 index 00000000000..eb2521bf75f --- /dev/null +++ b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ProgressivePromise.java @@ -0,0 +1,23 @@ +// Generated automatically from io.netty.util.concurrent.ProgressivePromise for testing purposes + +package io.netty.util.concurrent; + +import io.netty.util.concurrent.GenericFutureListener; +import io.netty.util.concurrent.ProgressiveFuture; +import io.netty.util.concurrent.Promise; + +public interface ProgressivePromise extends io.netty.util.concurrent.ProgressiveFuture, io.netty.util.concurrent.Promise +{ + ProgressivePromise addListener(io.netty.util.concurrent.GenericFutureListener> p0); + ProgressivePromise addListeners(io.netty.util.concurrent.GenericFutureListener>... p0); + ProgressivePromise await(); + ProgressivePromise awaitUninterruptibly(); + ProgressivePromise removeListener(io.netty.util.concurrent.GenericFutureListener> p0); + ProgressivePromise removeListeners(io.netty.util.concurrent.GenericFutureListener>... p0); + ProgressivePromise setFailure(Throwable p0); + ProgressivePromise setProgress(long p0, long p1); + ProgressivePromise setSuccess(V p0); + ProgressivePromise sync(); + ProgressivePromise syncUninterruptibly(); + boolean tryProgress(long p0, long p1); +} diff --git a/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/Promise.java b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/Promise.java new file mode 100644 index 00000000000..e6f41b6fe7d --- /dev/null +++ b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/Promise.java @@ -0,0 +1,22 @@ +// Generated automatically from io.netty.util.concurrent.Promise for testing purposes + +package io.netty.util.concurrent; + +import io.netty.util.concurrent.GenericFutureListener; + +public interface Promise extends io.netty.util.concurrent.Future +{ + Promise addListener(io.netty.util.concurrent.GenericFutureListener> p0); + Promise addListeners(io.netty.util.concurrent.GenericFutureListener>... p0); + Promise await(); + Promise awaitUninterruptibly(); + Promise removeListener(io.netty.util.concurrent.GenericFutureListener> p0); + Promise removeListeners(io.netty.util.concurrent.GenericFutureListener>... p0); + Promise setFailure(Throwable p0); + Promise setSuccess(V p0); + Promise sync(); + Promise syncUninterruptibly(); + boolean setUncancellable(); + boolean tryFailure(Throwable p0); + boolean trySuccess(V p0); +} diff --git a/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ScheduledFuture.java b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ScheduledFuture.java new file mode 100644 index 00000000000..8e2d0ce72af --- /dev/null +++ b/java/ql/test/stubs/netty-4.1.x/io/netty/util/concurrent/ScheduledFuture.java @@ -0,0 +1,8 @@ +// Generated automatically from io.netty.util.concurrent.ScheduledFuture for testing purposes + +package io.netty.util.concurrent; + + +public interface ScheduledFuture extends io.netty.util.concurrent.Future, java.util.concurrent.ScheduledFuture +{ +} From db83fe6f4211a1cd96ec4ce53d6420f586632fdd Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 11:21:17 +0100 Subject: [PATCH 04/22] Fix incorrect java.io models --- java/ql/lib/ext/java.io.model.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/java/ql/lib/ext/java.io.model.yml b/java/ql/lib/ext/java.io.model.yml index 225a0e680ab..2e6e8897ca1 100644 --- a/java/ql/lib/ext/java.io.model.yml +++ b/java/ql/lib/ext/java.io.model.yml @@ -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 From cad5cd4037f8ebf5acefede598c28ed2b4597373 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 11:21:33 +0100 Subject: [PATCH 05/22] java.io tests --- .../frameworks/jdk/java.io/Test.java | 792 ++++++++++++++++++ .../frameworks/jdk/java.io/test.expected | 0 .../frameworks/jdk/java.io/test.ext.yml | 6 + .../frameworks/jdk/java.io/test.ql | 2 + .../CWE-022/semmle/tests/TaintedPath.expected | 10 + .../CWE-022/semmle/tests/mad/Test.java | 6 +- 6 files changed, 813 insertions(+), 3 deletions(-) create mode 100644 java/ql/test/library-tests/frameworks/jdk/java.io/Test.java create mode 100644 java/ql/test/library-tests/frameworks/jdk/java.io/test.expected create mode 100644 java/ql/test/library-tests/frameworks/jdk/java.io/test.ext.yml create mode 100644 java/ql/test/library-tests/frameworks/jdk/java.io/test.ql diff --git a/java/ql/test/library-tests/frameworks/jdk/java.io/Test.java b/java/ql/test/library-tests/frameworks/jdk/java.io/Test.java new file mode 100644 index 00000000000..19c85b0e09d --- /dev/null +++ b/java/ql/test/library-tests/frameworks/jdk/java.io/Test.java @@ -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 + } + + } + +} diff --git a/java/ql/test/library-tests/frameworks/jdk/java.io/test.expected b/java/ql/test/library-tests/frameworks/jdk/java.io/test.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/frameworks/jdk/java.io/test.ext.yml b/java/ql/test/library-tests/frameworks/jdk/java.io/test.ext.yml new file mode 100644 index 00000000000..35050f48ec0 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/jdk/java.io/test.ext.yml @@ -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"] diff --git a/java/ql/test/library-tests/frameworks/jdk/java.io/test.ql b/java/ql/test/library-tests/frameworks/jdk/java.io/test.ql new file mode 100644 index 00000000000..5d91e4e8e26 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/jdk/java.io/test.ql @@ -0,0 +1,2 @@ +import java +import TestUtilities.InlineFlowTest diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected index ef2ef71363f..70bfe06b3ee 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected @@ -16,6 +16,8 @@ edges | 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:21:56:21:67 | source(...) : String | +| mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:23:46:23:57 | 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 | @@ -24,6 +26,8 @@ edges | 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:21:56:21:67 | source(...) : String | mad/Test.java:21:47:21:67 | (...)... | +| mad/Test.java:23:46:23:57 | source(...) : String | mad/Test.java:23:39:23:57 | (...)... | | 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 | (...)... | @@ -55,6 +59,10 @@ nodes | 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:21:47:21:67 | (...)... | semmle.label | (...)... | +| mad/Test.java:21:56:21:67 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:23:39:23:57 | (...)... | semmle.label | (...)... | +| mad/Test.java:23:46:23:57 | 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 | (...)... | @@ -82,6 +90,8 @@ subpaths | 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:21:47:21:67 | (...)... | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:21:47:21:67 | (...)... | This path depends on a $@. | mad/Test.java:12:16:12:36 | getHostName(...) | user-provided value | +| mad/Test.java:23:39:23:57 | (...)... | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:23:39:23:57 | (...)... | 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 | diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java index ff7c4673914..71efb42863e 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java @@ -12,15 +12,15 @@ public class Test { 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)); // "java.lang;Class;false;getResource;(String);;Argument[0];read-file;ai-generated" getClass().getResource((String) source(null)); // "java.lang;ClassLoader;true;getSystemResourceAsStream;(String);;Argument[0];read-file;ai-generated" - ClassLoader.getSystemResource((String) source(null)); + ClassLoader.getSystemResourceAsStream((String) source(null)); // "java.io;File;true;createTempFile;(String,String,File);;Argument[2];create-file;ai-generated" - File.createTempFile(";", (String) source(null)); + File.createTempFile(";", ";", (File) source(null)); // "java.io;File;true;renameTo;(File);;Argument[0];create-file;ai-generated" new File("").renameTo((File) source(null)); // "java.io;FileInputStream;true;FileInputStream;(File);;Argument[0];read-file;ai-generated" From 452b9d11dba8da039fd28c43ac58e9b6353beb16 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 11:41:28 +0100 Subject: [PATCH 06/22] java.net tests --- .../frameworks/jdk/java.net/Test.java | 53 +++++++++++++++++++ .../security/CWE-918/mad/Test.java | 44 +++++++++++++-- 2 files changed, 93 insertions(+), 4 deletions(-) diff --git a/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java b/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java index 866a6bd77d3..021549fba60 100644 --- a/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java +++ b/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java @@ -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; diff --git a/java/ql/test/query-tests/security/CWE-918/mad/Test.java b/java/ql/test/query-tests/security/CWE-918/mad/Test.java index 47e9ea29ebd..e3f1f4e5353 100644 --- a/java/ql/test/query-tests/security/CWE-918/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-918/mad/Test.java @@ -1,22 +1,58 @@ +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.codehaus.cargo.container.installer.ZipURLInstaller; 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 + } + 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 } } From 2e7ad990595bcdbbfe2366109c3b00772a0163a2 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 11:51:44 +0100 Subject: [PATCH 07/22] Fix java.nio.file models --- java/ql/lib/ext/java.nio.file.model.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index e9c25ee207c..ddc467dbc4c 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -12,8 +12,8 @@ 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"] -# suggested label is not supported: - ["java.nio.file", "Files", False, "delete", "(Path)", "", "Argument[0]", "delete-file", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", False, "deleteIfExists", "(Path)", "", "Argument[0]", "delete-file", "ai-generated"] + - ["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"] From d54abddab15276a490d413f42978a96fd5258b5d Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 12:10:36 +0100 Subject: [PATCH 08/22] java.nio.file tests --- java/ql/lib/ext/java.nio.file.model.yml | 1 - .../frameworks/jdk/java.nio.file/Test.java | 124 ++++++++++ .../jdk/java.nio.file/test.expected | 0 .../frameworks/jdk/java.nio.file/test.ql | 2 + .../CWE-022/semmle/tests/TaintedPath.expected | 232 ++++++++++++++---- .../CWE-022/semmle/tests/mad/Test.java | 73 +++++- 6 files changed, 369 insertions(+), 63 deletions(-) create mode 100644 java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java create mode 100644 java/ql/test/library-tests/frameworks/jdk/java.nio.file/test.expected create mode 100644 java/ql/test/library-tests/frameworks/jdk/java.nio.file/test.ql diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index ddc467dbc4c..ec2056c9a8f 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -28,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"] diff --git a/java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java b/java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java new file mode 100644 index 00000000000..c474d68ed70 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java @@ -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 + } + + } + +} diff --git a/java/ql/test/library-tests/frameworks/jdk/java.nio.file/test.expected b/java/ql/test/library-tests/frameworks/jdk/java.nio.file/test.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/frameworks/jdk/java.nio.file/test.ql b/java/ql/test/library-tests/frameworks/jdk/java.nio.file/test.ql new file mode 100644 index 00000000000..5d91e4e8e26 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/jdk/java.nio.file/test.ql @@ -0,0 +1,2 @@ +import java +import TestUtilities.InlineFlowTest diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected index 70bfe06b3ee..b98cce2ea95 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected @@ -14,26 +14,78 @@ 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:21:56:21:67 | source(...) : String | -| mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:23:46:23:57 | 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:21:56:21:67 | source(...) : String | mad/Test.java:21:47:21:67 | (...)... | -| mad/Test.java:23:46:23:57 | source(...) : String | mad/Test.java:23:39:23:57 | (...)... | -| 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:19:16:19:36 | getHostName(...) : String | mad/Test.java:24:61:24:68 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:26:41:26:48 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:28:56:28:63 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:30:46:30:53 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:32:38:32:45 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:34:36:34:43 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:36:31:36:38 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:38:33:38:40 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:40:27:40:34 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:41:27:41:34 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:42:34:42:41 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:44:40:44:47 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:45:48:45:55 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:46:47:46:54 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:48:40:48:47 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:50:38:50:45 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:52:33:52:40 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:54:33:54:40 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:56:41:56:48 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:58:42:58:49 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:60:37:60:44 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:62:29:62:36 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:64:37:64:44 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:66:28:66:35 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:68:33:68:40 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:70:40:70:47 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:72:40:72:47 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:73:40:73:47 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:75:38:75:45 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:77:28:77:35 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:78:28:78:35 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:79:28:79:35 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:81:34:81:41 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:82:34:82:41 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:84:50:84:57 | source(...) : String | +| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:86:54:86:61 | source(...) : String | +| mad/Test.java:24:61:24:68 | source(...) : String | mad/Test.java:24:52:24:68 | (...)... | +| mad/Test.java:26:41:26:48 | source(...) : String | mad/Test.java:26:32:26:48 | (...)... | +| mad/Test.java:28:56:28:63 | source(...) : String | mad/Test.java:28:47:28:63 | (...)... | +| mad/Test.java:30:46:30:53 | source(...) : String | mad/Test.java:30:39:30:53 | (...)... | +| mad/Test.java:32:38:32:45 | source(...) : String | mad/Test.java:32:31:32:45 | (...)... | +| mad/Test.java:34:36:34:43 | source(...) : String | mad/Test.java:34:29:34:43 | (...)... | +| mad/Test.java:36:31:36:38 | source(...) : String | mad/Test.java:36:24:36:38 | (...)... | +| mad/Test.java:38:33:38:40 | source(...) : String | mad/Test.java:38:24:38:40 | (...)... | +| mad/Test.java:40:27:40:34 | source(...) : String | mad/Test.java:40:20:40:34 | (...)... | +| mad/Test.java:41:27:41:34 | source(...) : String | mad/Test.java:41:20:41:34 | (...)... | +| mad/Test.java:42:34:42:41 | source(...) : String | mad/Test.java:42:20:42:41 | (...)... | +| mad/Test.java:44:40:44:47 | source(...) : String | mad/Test.java:44:33:44:47 | (...)... | +| mad/Test.java:45:48:45:55 | source(...) : String | mad/Test.java:45:33:45:55 | (...)... | +| mad/Test.java:46:47:46:54 | source(...) : String | mad/Test.java:46:40:46:54 | (...)... | +| mad/Test.java:48:40:48:47 | source(...) : String | mad/Test.java:48:33:48:47 | (...)... | +| mad/Test.java:50:38:50:45 | source(...) : String | mad/Test.java:50:31:50:45 | (...)... | +| mad/Test.java:52:33:52:40 | source(...) : String | mad/Test.java:52:26:52:40 | (...)... | +| mad/Test.java:54:33:54:40 | source(...) : String | mad/Test.java:54:26:54:40 | (...)... | +| mad/Test.java:56:41:56:48 | source(...) : String | mad/Test.java:56:34:56:48 | (...)... | +| mad/Test.java:58:42:58:49 | source(...) : String | mad/Test.java:58:35:58:49 | (...)... | +| mad/Test.java:60:37:60:44 | source(...) : String | mad/Test.java:60:30:60:44 | (...)... | +| mad/Test.java:62:29:62:36 | source(...) : String | mad/Test.java:62:22:62:36 | (...)... | +| mad/Test.java:64:37:64:44 | source(...) : String | mad/Test.java:64:30:64:44 | (...)... | +| mad/Test.java:66:28:66:35 | source(...) : String | mad/Test.java:66:21:66:35 | (...)... | +| mad/Test.java:68:33:68:40 | source(...) : String | mad/Test.java:68:26:68:40 | (...)... | +| mad/Test.java:70:40:70:47 | source(...) : String | mad/Test.java:70:33:70:47 | (...)... | +| mad/Test.java:72:40:72:47 | source(...) : String | mad/Test.java:72:33:72:47 | (...)... | +| mad/Test.java:73:40:73:47 | source(...) : String | mad/Test.java:73:33:73:47 | (...)... | +| mad/Test.java:75:38:75:45 | source(...) : String | mad/Test.java:75:31:75:45 | (...)... | +| mad/Test.java:77:28:77:35 | source(...) : String | mad/Test.java:77:21:77:35 | (...)... | +| mad/Test.java:78:28:78:35 | source(...) : String | mad/Test.java:78:21:78:35 | (...)... | +| mad/Test.java:79:28:79:35 | source(...) : String | mad/Test.java:79:21:79:35 | (...)... | +| mad/Test.java:81:34:81:41 | source(...) : String | mad/Test.java:81:27:81:41 | (...)... | +| mad/Test.java:82:34:82:41 | source(...) : String | mad/Test.java:82:27:82:41 | (...)... | +| mad/Test.java:84:50:84:57 | source(...) : String | mad/Test.java:84:41:84:57 | (...)... | +| mad/Test.java:86:54:86:61 | source(...) : String | mad/Test.java:86:45:86:61 | (...)... | nodes | Test.java:19:18:19:38 | getHostName(...) : String | semmle.label | getHostName(...) : String | | Test.java:24:20:24:23 | temp | semmle.label | temp | @@ -54,27 +106,79 @@ 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:21:47:21:67 | (...)... | semmle.label | (...)... | -| mad/Test.java:21:56:21:67 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:23:39:23:57 | (...)... | semmle.label | (...)... | -| mad/Test.java:23:46:23:57 | 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:19:16:19:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | +| mad/Test.java:24:52:24:68 | (...)... | semmle.label | (...)... | +| mad/Test.java:24:61:24:68 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:26:32:26:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:26:41:26:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:28:47:28:63 | (...)... | semmle.label | (...)... | +| mad/Test.java:28:56:28:63 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:30:39:30:53 | (...)... | semmle.label | (...)... | +| mad/Test.java:30:46:30:53 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:32:31:32:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:32:38:32:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:34:29:34:43 | (...)... | semmle.label | (...)... | +| mad/Test.java:34:36:34:43 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:36:24:36:38 | (...)... | semmle.label | (...)... | +| mad/Test.java:36:31:36:38 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:38:24:38:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:38:33:38:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:40:20:40:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:40:27:40:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:41:20:41:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:41:27:41:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:42:20:42:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:42:34:42:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:44:33:44:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:44:40:44:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:45:33:45:55 | (...)... | semmle.label | (...)... | +| mad/Test.java:45:48:45:55 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:46:40:46:54 | (...)... | semmle.label | (...)... | +| mad/Test.java:46:47:46:54 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:48:33:48:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:48:40:48:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:50:31:50:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:50:38:50:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:52:26:52:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:52:33:52:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:54:26:54:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:54:33:54:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:56:34:56:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:56:41:56:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:58:35:58:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:58:42:58:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:60:30:60:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:60:37:60:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:62:22:62:36 | (...)... | semmle.label | (...)... | +| mad/Test.java:62:29:62:36 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:64:30:64:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:64:37:64:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:66:21:66:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:66:28:66:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:68:26:68:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:68:33:68:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:70:33:70:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:70:40:70:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:72:33:72:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:72:40:72:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:73:33:73:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:73:40:73:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:75:31:75:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:75:38:75:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:77:21:77:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:77:28:77:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:78:21:78:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:78:28:78:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:79:21:79:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:79:28:79:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:81:27:81:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:81:34:81:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:82:27:82:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:82:34:82:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:84:41:84:57 | (...)... | semmle.label | (...)... | +| mad/Test.java:84:50:84:57 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:86:45:86:61 | (...)... | semmle.label | (...)... | +| mad/Test.java:86:54:86:61 | 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 | @@ -88,13 +192,39 @@ 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:21:47:21:67 | (...)... | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:21:47:21:67 | (...)... | This path depends on a $@. | mad/Test.java:12:16:12:36 | getHostName(...) | user-provided value | -| mad/Test.java:23:39:23:57 | (...)... | mad/Test.java:12:16:12:36 | getHostName(...) : String | mad/Test.java:23:39:23:57 | (...)... | 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:24:52:24:68 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:24:52:24:68 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:26:32:26:48 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:26:32:26:48 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:28:47:28:63 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:28:47:28:63 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:30:39:30:53 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:30:39:30:53 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:32:31:32:45 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:32:31:32:45 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:34:29:34:43 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:34:29:34:43 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:36:24:36:38 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:36:24:36:38 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:38:9:38:41 | new FileReader(...) | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:38:24:38:40 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:40:20:40:34 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:40:20:40:34 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:41:20:41:34 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:41:20:41:34 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:42:20:42:41 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:42:20:42:41 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:44:33:44:47 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:44:33:44:47 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:45:33:45:55 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:45:33:45:55 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:46:40:46:54 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:46:40:46:54 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:48:33:48:47 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:48:33:48:47 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:50:31:50:45 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:50:31:50:45 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:52:26:52:40 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:52:26:52:40 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:54:26:54:40 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:54:26:54:40 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:56:34:56:48 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:56:34:56:48 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:58:35:58:49 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:58:35:58:49 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:60:30:60:44 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:60:30:60:44 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:62:22:62:36 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:62:22:62:36 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:64:30:64:44 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:64:30:64:44 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:66:21:66:35 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:66:21:66:35 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:68:26:68:40 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:68:26:68:40 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:70:33:70:47 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:70:33:70:47 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:72:33:72:47 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:72:33:72:47 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:73:33:73:47 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:73:33:73:47 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:75:31:75:45 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:75:31:75:45 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:77:21:77:35 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:77:21:77:35 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:78:21:78:35 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:78:21:78:35 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:79:21:79:35 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:79:21:79:35 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:81:27:81:41 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:81:27:81:41 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:82:27:82:41 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:82:27:82:41 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:84:41:84:57 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:84:41:84:57 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:86:45:86:61 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:86:45:86:61 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java index 71efb42863e..abb6f37fd9c 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java @@ -2,36 +2,87 @@ 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 org.codehaus.cargo.container.installer.ZipURLInstaller; public class Test { - public Object source(InetAddress address) { + private InetAddress address; + + public Object source() { return address.getHostName(); } 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.getSystemResourceAsStream((String) source(null)); + ClassLoader.getSystemResourceAsStream((String) source()); // "java.io;File;true;createTempFile;(String,String,File);;Argument[2];create-file;ai-generated" - File.createTempFile(";", ";", (File) 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) null); + Files.write((Path) source(), (Iterable) 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); // "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()); } } From 3db95f3ac9916c29bd263c46f44a711d7b35c7d2 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 12:28:04 +0100 Subject: [PATCH 09/22] javax.xml.transform.stream tests --- .../CWE-022/semmle/tests/TaintedPath.expected | 337 +++++++++--------- .../CWE-022/semmle/tests/mad/Test.java | 3 + 2 files changed, 174 insertions(+), 166 deletions(-) diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected index b98cce2ea95..7e598f7df20 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected @@ -14,78 +14,80 @@ 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:19:16:19:36 | getHostName(...) : String | mad/Test.java:24:61:24:68 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:26:41:26:48 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:28:56:28:63 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:30:46:30:53 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:32:38:32:45 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:34:36:34:43 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:36:31:36:38 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:38:33:38:40 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:40:27:40:34 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:41:27:41:34 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:42:34:42:41 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:44:40:44:47 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:45:48:45:55 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:46:47:46:54 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:48:40:48:47 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:50:38:50:45 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:52:33:52:40 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:54:33:54:40 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:56:41:56:48 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:58:42:58:49 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:60:37:60:44 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:62:29:62:36 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:64:37:64:44 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:66:28:66:35 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:68:33:68:40 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:70:40:70:47 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:72:40:72:47 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:73:40:73:47 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:75:38:75:45 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:77:28:77:35 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:78:28:78:35 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:79:28:79:35 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:81:34:81:41 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:82:34:82:41 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:84:50:84:57 | source(...) : String | -| mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:86:54:86:61 | source(...) : String | -| mad/Test.java:24:61:24:68 | source(...) : String | mad/Test.java:24:52:24:68 | (...)... | -| mad/Test.java:26:41:26:48 | source(...) : String | mad/Test.java:26:32:26:48 | (...)... | -| mad/Test.java:28:56:28:63 | source(...) : String | mad/Test.java:28:47:28:63 | (...)... | -| mad/Test.java:30:46:30:53 | source(...) : String | mad/Test.java:30:39:30:53 | (...)... | -| mad/Test.java:32:38:32:45 | source(...) : String | mad/Test.java:32:31:32:45 | (...)... | -| mad/Test.java:34:36:34:43 | source(...) : String | mad/Test.java:34:29:34:43 | (...)... | -| mad/Test.java:36:31:36:38 | source(...) : String | mad/Test.java:36:24:36:38 | (...)... | -| mad/Test.java:38:33:38:40 | source(...) : String | mad/Test.java:38:24:38:40 | (...)... | -| mad/Test.java:40:27:40:34 | source(...) : String | mad/Test.java:40:20:40:34 | (...)... | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:25:61:25:68 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:27:41:27:48 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:29:56:29:63 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:31:46:31:53 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:33:38:33:45 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:35:36:35:43 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:37:31:37:38 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:39:33:39:40 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:41:27:41:34 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:42:27:42:34 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:43:34:43:41 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:45:40:45:47 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:46:48:46:55 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:47:47:47:54 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:49:40:49:47 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:51:38:51:45 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:53:33:53:40 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:55:33:55:40 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:57:41:57:48 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:59:42:59:49 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:61:37:61:44 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:63:29:63:36 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:65:37:65:44 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:67:28:67:35 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:69:33:69:40 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:71:40:71:47 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:73:40:73:47 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:74:40:74:47 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:76:38:76:45 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:78:28:78:35 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:79:28:79:35 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:80:28:80:35 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:82:34:82:41 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:83:34:83:41 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:85:33:85:40 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:87:50:87:57 | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:89:54:89:61 | source(...) : String | +| mad/Test.java:25:61:25:68 | source(...) : String | mad/Test.java:25:52:25:68 | (...)... | +| mad/Test.java:27:41:27:48 | source(...) : String | mad/Test.java:27:32:27:48 | (...)... | +| mad/Test.java:29:56:29:63 | source(...) : String | mad/Test.java:29:47:29:63 | (...)... | +| mad/Test.java:31:46:31:53 | source(...) : String | mad/Test.java:31:39:31:53 | (...)... | +| mad/Test.java:33:38:33:45 | source(...) : String | mad/Test.java:33:31:33:45 | (...)... | +| mad/Test.java:35:36:35:43 | source(...) : String | mad/Test.java:35:29:35:43 | (...)... | +| mad/Test.java:37:31:37:38 | source(...) : String | mad/Test.java:37:24:37:38 | (...)... | +| mad/Test.java:39:33:39:40 | source(...) : String | mad/Test.java:39:24:39:40 | (...)... | | mad/Test.java:41:27:41:34 | source(...) : String | mad/Test.java:41:20:41:34 | (...)... | -| mad/Test.java:42:34:42:41 | source(...) : String | mad/Test.java:42:20:42:41 | (...)... | -| mad/Test.java:44:40:44:47 | source(...) : String | mad/Test.java:44:33:44:47 | (...)... | -| mad/Test.java:45:48:45:55 | source(...) : String | mad/Test.java:45:33:45:55 | (...)... | -| mad/Test.java:46:47:46:54 | source(...) : String | mad/Test.java:46:40:46:54 | (...)... | -| mad/Test.java:48:40:48:47 | source(...) : String | mad/Test.java:48:33:48:47 | (...)... | -| mad/Test.java:50:38:50:45 | source(...) : String | mad/Test.java:50:31:50:45 | (...)... | -| mad/Test.java:52:33:52:40 | source(...) : String | mad/Test.java:52:26:52:40 | (...)... | -| mad/Test.java:54:33:54:40 | source(...) : String | mad/Test.java:54:26:54:40 | (...)... | -| mad/Test.java:56:41:56:48 | source(...) : String | mad/Test.java:56:34:56:48 | (...)... | -| mad/Test.java:58:42:58:49 | source(...) : String | mad/Test.java:58:35:58:49 | (...)... | -| mad/Test.java:60:37:60:44 | source(...) : String | mad/Test.java:60:30:60:44 | (...)... | -| mad/Test.java:62:29:62:36 | source(...) : String | mad/Test.java:62:22:62:36 | (...)... | -| mad/Test.java:64:37:64:44 | source(...) : String | mad/Test.java:64:30:64:44 | (...)... | -| mad/Test.java:66:28:66:35 | source(...) : String | mad/Test.java:66:21:66:35 | (...)... | -| mad/Test.java:68:33:68:40 | source(...) : String | mad/Test.java:68:26:68:40 | (...)... | -| mad/Test.java:70:40:70:47 | source(...) : String | mad/Test.java:70:33:70:47 | (...)... | -| mad/Test.java:72:40:72:47 | source(...) : String | mad/Test.java:72:33:72:47 | (...)... | +| mad/Test.java:42:27:42:34 | source(...) : String | mad/Test.java:42:20:42:34 | (...)... | +| mad/Test.java:43:34:43:41 | source(...) : String | mad/Test.java:43:20:43:41 | (...)... | +| mad/Test.java:45:40:45:47 | source(...) : String | mad/Test.java:45:33:45:47 | (...)... | +| mad/Test.java:46:48:46:55 | source(...) : String | mad/Test.java:46:33:46:55 | (...)... | +| mad/Test.java:47:47:47:54 | source(...) : String | mad/Test.java:47:40:47:54 | (...)... | +| mad/Test.java:49:40:49:47 | source(...) : String | mad/Test.java:49:33:49:47 | (...)... | +| mad/Test.java:51:38:51:45 | source(...) : String | mad/Test.java:51:31:51:45 | (...)... | +| mad/Test.java:53:33:53:40 | source(...) : String | mad/Test.java:53:26:53:40 | (...)... | +| mad/Test.java:55:33:55:40 | source(...) : String | mad/Test.java:55:26:55:40 | (...)... | +| mad/Test.java:57:41:57:48 | source(...) : String | mad/Test.java:57:34:57:48 | (...)... | +| mad/Test.java:59:42:59:49 | source(...) : String | mad/Test.java:59:35:59:49 | (...)... | +| mad/Test.java:61:37:61:44 | source(...) : String | mad/Test.java:61:30:61:44 | (...)... | +| mad/Test.java:63:29:63:36 | source(...) : String | mad/Test.java:63:22:63:36 | (...)... | +| mad/Test.java:65:37:65:44 | source(...) : String | mad/Test.java:65:30:65:44 | (...)... | +| mad/Test.java:67:28:67:35 | source(...) : String | mad/Test.java:67:21:67:35 | (...)... | +| mad/Test.java:69:33:69:40 | source(...) : String | mad/Test.java:69:26:69:40 | (...)... | +| mad/Test.java:71:40:71:47 | source(...) : String | mad/Test.java:71:33:71:47 | (...)... | | mad/Test.java:73:40:73:47 | source(...) : String | mad/Test.java:73:33:73:47 | (...)... | -| mad/Test.java:75:38:75:45 | source(...) : String | mad/Test.java:75:31:75:45 | (...)... | -| mad/Test.java:77:28:77:35 | source(...) : String | mad/Test.java:77:21:77:35 | (...)... | +| mad/Test.java:74:40:74:47 | source(...) : String | mad/Test.java:74:33:74:47 | (...)... | +| mad/Test.java:76:38:76:45 | source(...) : String | mad/Test.java:76:31:76:45 | (...)... | | mad/Test.java:78:28:78:35 | source(...) : String | mad/Test.java:78:21:78:35 | (...)... | | mad/Test.java:79:28:79:35 | source(...) : String | mad/Test.java:79:21:79:35 | (...)... | -| mad/Test.java:81:34:81:41 | source(...) : String | mad/Test.java:81:27:81:41 | (...)... | +| mad/Test.java:80:28:80:35 | source(...) : String | mad/Test.java:80:21:80:35 | (...)... | | mad/Test.java:82:34:82:41 | source(...) : String | mad/Test.java:82:27:82:41 | (...)... | -| mad/Test.java:84:50:84:57 | source(...) : String | mad/Test.java:84:41:84:57 | (...)... | -| mad/Test.java:86:54:86:61 | source(...) : String | mad/Test.java:86:45:86:61 | (...)... | +| mad/Test.java:83:34:83:41 | source(...) : String | mad/Test.java:83:27:83:41 | (...)... | +| mad/Test.java:85:33:85:40 | source(...) : String | mad/Test.java:85:26:85:40 | (...)... | +| mad/Test.java:87:50:87:57 | source(...) : String | mad/Test.java:87:41:87:57 | (...)... | +| mad/Test.java:89:54:89:61 | source(...) : String | mad/Test.java:89:45:89:61 | (...)... | nodes | Test.java:19:18:19:38 | getHostName(...) : String | semmle.label | getHostName(...) : String | | Test.java:24:20:24:23 | temp | semmle.label | temp | @@ -106,79 +108,81 @@ 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:19:16:19:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | -| mad/Test.java:24:52:24:68 | (...)... | semmle.label | (...)... | -| mad/Test.java:24:61:24:68 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:26:32:26:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:26:41:26:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:28:47:28:63 | (...)... | semmle.label | (...)... | -| mad/Test.java:28:56:28:63 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:30:39:30:53 | (...)... | semmle.label | (...)... | -| mad/Test.java:30:46:30:53 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:32:31:32:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:32:38:32:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:34:29:34:43 | (...)... | semmle.label | (...)... | -| mad/Test.java:34:36:34:43 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:36:24:36:38 | (...)... | semmle.label | (...)... | -| mad/Test.java:36:31:36:38 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:38:24:38:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:38:33:38:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:40:20:40:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:40:27:40:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:20:16:20:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | +| mad/Test.java:25:52:25:68 | (...)... | semmle.label | (...)... | +| mad/Test.java:25:61:25:68 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:27:32:27:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:27:41:27:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:29:47:29:63 | (...)... | semmle.label | (...)... | +| mad/Test.java:29:56:29:63 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:31:39:31:53 | (...)... | semmle.label | (...)... | +| mad/Test.java:31:46:31:53 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:33:31:33:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:33:38:33:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:35:29:35:43 | (...)... | semmle.label | (...)... | +| mad/Test.java:35:36:35:43 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:37:24:37:38 | (...)... | semmle.label | (...)... | +| mad/Test.java:37:31:37:38 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:39:24:39:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:39:33:39:40 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:41:20:41:34 | (...)... | semmle.label | (...)... | | mad/Test.java:41:27:41:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:42:20:42:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:42:34:42:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:44:33:44:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:44:40:44:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:45:33:45:55 | (...)... | semmle.label | (...)... | -| mad/Test.java:45:48:45:55 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:46:40:46:54 | (...)... | semmle.label | (...)... | -| mad/Test.java:46:47:46:54 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:48:33:48:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:48:40:48:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:50:31:50:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:50:38:50:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:52:26:52:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:52:33:52:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:54:26:54:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:54:33:54:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:56:34:56:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:56:41:56:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:58:35:58:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:58:42:58:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:60:30:60:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:60:37:60:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:62:22:62:36 | (...)... | semmle.label | (...)... | -| mad/Test.java:62:29:62:36 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:64:30:64:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:64:37:64:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:66:21:66:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:66:28:66:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:68:26:68:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:68:33:68:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:70:33:70:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:70:40:70:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:72:33:72:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:72:40:72:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:42:20:42:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:42:27:42:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:43:20:43:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:43:34:43:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:45:33:45:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:45:40:45:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:46:33:46:55 | (...)... | semmle.label | (...)... | +| mad/Test.java:46:48:46:55 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:47:40:47:54 | (...)... | semmle.label | (...)... | +| mad/Test.java:47:47:47:54 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:49:33:49:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:49:40:49:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:51:31:51:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:51:38:51:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:53:26:53:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:53:33:53:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:55:26:55:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:55:33:55:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:57:34:57:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:57:41:57:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:59:35:59:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:59:42:59:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:61:30:61:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:61:37:61:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:63:22:63:36 | (...)... | semmle.label | (...)... | +| mad/Test.java:63:29:63:36 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:65:30:65:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:65:37:65:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:67:21:67:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:67:28:67:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:69:26:69:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:69:33:69:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:71:33:71:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:71:40:71:47 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:73:33:73:47 | (...)... | semmle.label | (...)... | | mad/Test.java:73:40:73:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:75:31:75:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:75:38:75:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:77:21:77:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:77:28:77:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:74:33:74:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:74:40:74:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:76:31:76:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:76:38:76:45 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:78:21:78:35 | (...)... | semmle.label | (...)... | | mad/Test.java:78:28:78:35 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:79:21:79:35 | (...)... | semmle.label | (...)... | | mad/Test.java:79:28:79:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:81:27:81:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:81:34:81:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:80:21:80:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:80:28:80:35 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:82:27:82:41 | (...)... | semmle.label | (...)... | | mad/Test.java:82:34:82:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:84:41:84:57 | (...)... | semmle.label | (...)... | -| mad/Test.java:84:50:84:57 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:86:45:86:61 | (...)... | semmle.label | (...)... | -| mad/Test.java:86:54:86:61 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:83:27:83:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:83:34:83:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:85:26:85:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:85:33:85:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:87:41:87:57 | (...)... | semmle.label | (...)... | +| mad/Test.java:87:50:87:57 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:89:45:89:61 | (...)... | semmle.label | (...)... | +| mad/Test.java:89:54:89:61 | 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 | @@ -192,39 +196,40 @@ 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:24:52:24:68 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:24:52:24:68 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:26:32:26:48 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:26:32:26:48 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:28:47:28:63 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:28:47:28:63 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:30:39:30:53 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:30:39:30:53 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:32:31:32:45 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:32:31:32:45 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:34:29:34:43 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:34:29:34:43 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:36:24:36:38 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:36:24:36:38 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:38:9:38:41 | new FileReader(...) | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:38:24:38:40 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:40:20:40:34 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:40:20:40:34 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:41:20:41:34 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:41:20:41:34 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:42:20:42:41 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:42:20:42:41 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:44:33:44:47 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:44:33:44:47 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:45:33:45:55 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:45:33:45:55 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:46:40:46:54 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:46:40:46:54 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:48:33:48:47 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:48:33:48:47 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:50:31:50:45 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:50:31:50:45 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:52:26:52:40 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:52:26:52:40 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:54:26:54:40 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:54:26:54:40 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:56:34:56:48 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:56:34:56:48 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:58:35:58:49 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:58:35:58:49 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:60:30:60:44 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:60:30:60:44 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:62:22:62:36 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:62:22:62:36 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:64:30:64:44 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:64:30:64:44 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:66:21:66:35 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:66:21:66:35 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:68:26:68:40 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:68:26:68:40 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:70:33:70:47 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:70:33:70:47 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:72:33:72:47 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:72:33:72:47 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:73:33:73:47 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:73:33:73:47 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:75:31:75:45 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:75:31:75:45 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:77:21:77:35 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:77:21:77:35 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:78:21:78:35 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:78:21:78:35 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:79:21:79:35 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:79:21:79:35 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:81:27:81:41 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:81:27:81:41 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:82:27:82:41 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:82:27:82:41 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:84:41:84:57 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:84:41:84:57 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | -| mad/Test.java:86:45:86:61 | (...)... | mad/Test.java:19:16:19:36 | getHostName(...) : String | mad/Test.java:86:45:86:61 | (...)... | This path depends on a $@. | mad/Test.java:19:16:19:36 | getHostName(...) | user-provided value | +| mad/Test.java:25:52:25:68 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:25:52:25:68 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:27:32:27:48 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:27:32:27:48 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:29:47:29:63 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:29:47:29:63 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:31:39:31:53 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:31:39:31:53 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:33:31:33:45 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:33:31:33:45 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:35:29:35:43 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:35:29:35:43 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:37:24:37:38 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:37:24:37:38 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:39:9:39:41 | new FileReader(...) | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:39:24:39:40 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:41:20:41:34 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:41:20:41:34 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:42:20:42:34 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:42:20:42:34 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:43:20:43:41 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:43:20:43:41 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:45:33:45:47 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:45:33:45:47 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:46:33:46:55 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:46:33:46:55 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:47:40:47:54 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:47:40:47:54 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:49:33:49:47 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:49:33:49:47 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:51:31:51:45 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:51:31:51:45 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:53:26:53:40 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:53:26:53:40 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:55:26:55:40 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:55:26:55:40 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:57:34:57:48 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:57:34:57:48 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:59:35:59:49 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:59:35:59:49 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:61:30:61:44 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:61:30:61:44 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:63:22:63:36 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:63:22:63:36 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:65:30:65:44 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:65:30:65:44 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:67:21:67:35 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:67:21:67:35 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:69:26:69:40 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:69:26:69:40 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:71:33:71:47 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:71:33:71:47 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:73:33:73:47 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:73:33:73:47 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:74:33:74:47 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:74:33:74:47 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:76:31:76:45 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:76:31:76:45 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:78:21:78:35 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:78:21:78:35 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:79:21:79:35 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:79:21:79:35 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:80:21:80:35 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:80:21:80:35 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:82:27:82:41 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:82:27:82:41 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:83:27:83:41 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:83:27:83:41 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:85:26:85:40 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:85:26:85:40 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:87:41:87:57 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:87:41:87:57 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:89:45:89:61 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:89:45:89:61 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java index abb6f37fd9c..f2040c93aae 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java @@ -9,6 +9,7 @@ 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.codehaus.cargo.container.installer.ZipURLInstaller; public class Test { @@ -80,6 +81,8 @@ public class Test { // "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.codehaus.cargo.container.installer;ZipURLInstaller;true;ZipURLInstaller;(URL,String,String);;Argument[1];create-file;ai-generated" new ZipURLInstaller((URL) null, (String) source(), ""); // "org.codehaus.cargo.container.installer;ZipURLInstaller;true;ZipURLInstaller;(URL,String,String);;Argument[2];create-file;ai-generated" From 720cf0ab7a5bb024fecdb200c6d46ffc6123b273 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 12:31:26 +0100 Subject: [PATCH 10/22] org.apache.commons.compress.archivers.tar tests --- .../frameworks/apache-commons-compress/Test.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/java/ql/test/library-tests/frameworks/apache-commons-compress/Test.java b/java/ql/test/library-tests/frameworks/apache-commons-compress/Test.java index 5d3470874b8..9f1a83f51ba 100644 --- a/java/ql/test/library-tests/frameworks/apache-commons-compress/Test.java +++ b/java/ql/test/library-tests/frameworks/apache-commons-compress/Test.java @@ -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 + } } From 31667b4478a1cb7e3d71e53ba009ee6681b98b3c Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 12:50:09 +0100 Subject: [PATCH 11/22] org.apache.commons.io tests --- .../CWE-022/semmle/tests/TaintedPath.expected | 347 +++++++++--------- .../CWE-022/semmle/tests/mad/Test.java | 3 + .../org/apache/commons/io/FileUtils.java | 173 +++++++++ .../org/apache/commons/io/LineIterator.java | 20 + .../apache/commons/io/file/PathFilter.java | 12 + .../commons/io/filefilter/IOFileFilter.java | 22 ++ .../commons/io/output/LockableFileWriter.java | 28 +- 7 files changed, 431 insertions(+), 174 deletions(-) create mode 100644 java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/FileUtils.java create mode 100644 java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/LineIterator.java create mode 100644 java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/file/PathFilter.java create mode 100644 java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/filefilter/IOFileFilter.java diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected index 7e598f7df20..dde8aa4cb93 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected @@ -14,80 +14,82 @@ 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:20:16:20:36 | getHostName(...) : String | mad/Test.java:25:61:25:68 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:27:41:27:48 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:29:56:29:63 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:31:46:31:53 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:33:38:33:45 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:35:36:35:43 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:37:31:37:38 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:39:33:39:40 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:41:27:41:34 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:42:27:42:34 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:43:34:43:41 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:45:40:45:47 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:46:48:46:55 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:47:47:47:54 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:49:40:49:47 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:51:38:51:45 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:53:33:53:40 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:55:33:55:40 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:57:41:57:48 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:59:42:59:49 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:61:37:61:44 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:63:29:63:36 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:65:37:65:44 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:67:28:67:35 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:69:33:69:40 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:71:40:71:47 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:73:40:73:47 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:74:40:74:47 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:76:38:76:45 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:78:28:78:35 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:79:28:79:35 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:80:28:80:35 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:82:34:82:41 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:83:34:83:41 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:85:33:85:40 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:87:50:87:57 | source(...) : String | -| mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:89:54:89:61 | source(...) : String | -| mad/Test.java:25:61:25:68 | source(...) : String | mad/Test.java:25:52:25:68 | (...)... | -| mad/Test.java:27:41:27:48 | source(...) : String | mad/Test.java:27:32:27:48 | (...)... | -| mad/Test.java:29:56:29:63 | source(...) : String | mad/Test.java:29:47:29:63 | (...)... | -| mad/Test.java:31:46:31:53 | source(...) : String | mad/Test.java:31:39:31:53 | (...)... | -| mad/Test.java:33:38:33:45 | source(...) : String | mad/Test.java:33:31:33:45 | (...)... | -| mad/Test.java:35:36:35:43 | source(...) : String | mad/Test.java:35:29:35:43 | (...)... | -| mad/Test.java:37:31:37:38 | source(...) : String | mad/Test.java:37:24:37:38 | (...)... | -| mad/Test.java:39:33:39:40 | source(...) : String | mad/Test.java:39:24:39:40 | (...)... | -| mad/Test.java:41:27:41:34 | source(...) : String | mad/Test.java:41:20:41:34 | (...)... | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:26:61:26:68 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:28:41:28:48 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:30:56:30:63 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:32:46:32:53 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:34:38:34:45 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:36:36:36:43 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:38:31:38:38 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:40:33:40:40 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:42:27:42:34 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:43:27:43:34 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:44:34:44:41 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:46:40:46:47 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:47:48:47:55 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:48:47:48:54 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:50:40:50:47 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:52:38:52:45 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:54:33:54:40 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:56:33:56:40 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:58:41:58:48 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:60:42:60:49 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:62:37:62:44 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:64:29:64:36 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:66:37:66:44 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:68:28:68:35 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:70:33:70:40 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:72:40:72:47 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:74:40:74:47 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:75:40:75:47 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:77:38:77:45 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:79:28:79:35 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:80:28:80:35 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:81:28:81:35 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:83:34:83:41 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:84:34:84:41 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:86:33:86:40 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:88:42:88:49 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:90:50:90:57 | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:92:54:92:61 | source(...) : String | +| mad/Test.java:26:61:26:68 | source(...) : String | mad/Test.java:26:52:26:68 | (...)... | +| mad/Test.java:28:41:28:48 | source(...) : String | mad/Test.java:28:32:28:48 | (...)... | +| mad/Test.java:30:56:30:63 | source(...) : String | mad/Test.java:30:47:30:63 | (...)... | +| mad/Test.java:32:46:32:53 | source(...) : String | mad/Test.java:32:39:32:53 | (...)... | +| mad/Test.java:34:38:34:45 | source(...) : String | mad/Test.java:34:31:34:45 | (...)... | +| mad/Test.java:36:36:36:43 | source(...) : String | mad/Test.java:36:29:36:43 | (...)... | +| mad/Test.java:38:31:38:38 | source(...) : String | mad/Test.java:38:24:38:38 | (...)... | +| mad/Test.java:40:33:40:40 | source(...) : String | mad/Test.java:40:24:40:40 | (...)... | | mad/Test.java:42:27:42:34 | source(...) : String | mad/Test.java:42:20:42:34 | (...)... | -| mad/Test.java:43:34:43:41 | source(...) : String | mad/Test.java:43:20:43:41 | (...)... | -| mad/Test.java:45:40:45:47 | source(...) : String | mad/Test.java:45:33:45:47 | (...)... | -| mad/Test.java:46:48:46:55 | source(...) : String | mad/Test.java:46:33:46:55 | (...)... | -| mad/Test.java:47:47:47:54 | source(...) : String | mad/Test.java:47:40:47:54 | (...)... | -| mad/Test.java:49:40:49:47 | source(...) : String | mad/Test.java:49:33:49:47 | (...)... | -| mad/Test.java:51:38:51:45 | source(...) : String | mad/Test.java:51:31:51:45 | (...)... | -| mad/Test.java:53:33:53:40 | source(...) : String | mad/Test.java:53:26:53:40 | (...)... | -| mad/Test.java:55:33:55:40 | source(...) : String | mad/Test.java:55:26:55:40 | (...)... | -| mad/Test.java:57:41:57:48 | source(...) : String | mad/Test.java:57:34:57:48 | (...)... | -| mad/Test.java:59:42:59:49 | source(...) : String | mad/Test.java:59:35:59:49 | (...)... | -| mad/Test.java:61:37:61:44 | source(...) : String | mad/Test.java:61:30:61:44 | (...)... | -| mad/Test.java:63:29:63:36 | source(...) : String | mad/Test.java:63:22:63:36 | (...)... | -| mad/Test.java:65:37:65:44 | source(...) : String | mad/Test.java:65:30:65:44 | (...)... | -| mad/Test.java:67:28:67:35 | source(...) : String | mad/Test.java:67:21:67:35 | (...)... | -| mad/Test.java:69:33:69:40 | source(...) : String | mad/Test.java:69:26:69:40 | (...)... | -| mad/Test.java:71:40:71:47 | source(...) : String | mad/Test.java:71:33:71:47 | (...)... | -| mad/Test.java:73:40:73:47 | source(...) : String | mad/Test.java:73:33:73:47 | (...)... | +| mad/Test.java:43:27:43:34 | source(...) : String | mad/Test.java:43:20:43:34 | (...)... | +| mad/Test.java:44:34:44:41 | source(...) : String | mad/Test.java:44:20:44:41 | (...)... | +| mad/Test.java:46:40:46:47 | source(...) : String | mad/Test.java:46:33:46:47 | (...)... | +| mad/Test.java:47:48:47:55 | source(...) : String | mad/Test.java:47:33:47:55 | (...)... | +| mad/Test.java:48:47:48:54 | source(...) : String | mad/Test.java:48:40:48:54 | (...)... | +| mad/Test.java:50:40:50:47 | source(...) : String | mad/Test.java:50:33:50:47 | (...)... | +| mad/Test.java:52:38:52:45 | source(...) : String | mad/Test.java:52:31:52:45 | (...)... | +| mad/Test.java:54:33:54:40 | source(...) : String | mad/Test.java:54:26:54:40 | (...)... | +| mad/Test.java:56:33:56:40 | source(...) : String | mad/Test.java:56:26:56:40 | (...)... | +| mad/Test.java:58:41:58:48 | source(...) : String | mad/Test.java:58:34:58:48 | (...)... | +| mad/Test.java:60:42:60:49 | source(...) : String | mad/Test.java:60:35:60:49 | (...)... | +| mad/Test.java:62:37:62:44 | source(...) : String | mad/Test.java:62:30:62:44 | (...)... | +| mad/Test.java:64:29:64:36 | source(...) : String | mad/Test.java:64:22:64:36 | (...)... | +| mad/Test.java:66:37:66:44 | source(...) : String | mad/Test.java:66:30:66:44 | (...)... | +| mad/Test.java:68:28:68:35 | source(...) : String | mad/Test.java:68:21:68:35 | (...)... | +| mad/Test.java:70:33:70:40 | source(...) : String | mad/Test.java:70:26:70:40 | (...)... | +| mad/Test.java:72:40:72:47 | source(...) : String | mad/Test.java:72:33:72:47 | (...)... | | mad/Test.java:74:40:74:47 | source(...) : String | mad/Test.java:74:33:74:47 | (...)... | -| mad/Test.java:76:38:76:45 | source(...) : String | mad/Test.java:76:31:76:45 | (...)... | -| mad/Test.java:78:28:78:35 | source(...) : String | mad/Test.java:78:21:78:35 | (...)... | +| mad/Test.java:75:40:75:47 | source(...) : String | mad/Test.java:75:33:75:47 | (...)... | +| mad/Test.java:77:38:77:45 | source(...) : String | mad/Test.java:77:31:77:45 | (...)... | | mad/Test.java:79:28:79:35 | source(...) : String | mad/Test.java:79:21:79:35 | (...)... | | mad/Test.java:80:28:80:35 | source(...) : String | mad/Test.java:80:21:80:35 | (...)... | -| mad/Test.java:82:34:82:41 | source(...) : String | mad/Test.java:82:27:82:41 | (...)... | +| mad/Test.java:81:28:81:35 | source(...) : String | mad/Test.java:81:21:81:35 | (...)... | | mad/Test.java:83:34:83:41 | source(...) : String | mad/Test.java:83:27:83:41 | (...)... | -| mad/Test.java:85:33:85:40 | source(...) : String | mad/Test.java:85:26:85:40 | (...)... | -| mad/Test.java:87:50:87:57 | source(...) : String | mad/Test.java:87:41:87:57 | (...)... | -| mad/Test.java:89:54:89:61 | source(...) : String | mad/Test.java:89:45:89:61 | (...)... | +| mad/Test.java:84:34:84:41 | source(...) : String | mad/Test.java:84:27:84:41 | (...)... | +| mad/Test.java:86:33:86:40 | source(...) : String | mad/Test.java:86:26:86:40 | (...)... | +| mad/Test.java:88:42:88:49 | source(...) : String | mad/Test.java:88:35:88:49 | (...)... | +| mad/Test.java:90:50:90:57 | source(...) : String | mad/Test.java:90:41:90:57 | (...)... | +| mad/Test.java:92:54:92:61 | source(...) : String | mad/Test.java:92:45:92:61 | (...)... | nodes | Test.java:19:18:19:38 | getHostName(...) : String | semmle.label | getHostName(...) : String | | Test.java:24:20:24:23 | temp | semmle.label | temp | @@ -108,81 +110,83 @@ 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:20:16:20:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | -| mad/Test.java:25:52:25:68 | (...)... | semmle.label | (...)... | -| mad/Test.java:25:61:25:68 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:27:32:27:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:27:41:27:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:29:47:29:63 | (...)... | semmle.label | (...)... | -| mad/Test.java:29:56:29:63 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:31:39:31:53 | (...)... | semmle.label | (...)... | -| mad/Test.java:31:46:31:53 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:33:31:33:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:33:38:33:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:35:29:35:43 | (...)... | semmle.label | (...)... | -| mad/Test.java:35:36:35:43 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:37:24:37:38 | (...)... | semmle.label | (...)... | -| mad/Test.java:37:31:37:38 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:39:24:39:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:39:33:39:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:41:20:41:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:41:27:41:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:21:16:21:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | +| mad/Test.java:26:52:26:68 | (...)... | semmle.label | (...)... | +| mad/Test.java:26:61:26:68 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:28:32:28:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:28:41:28:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:30:47:30:63 | (...)... | semmle.label | (...)... | +| mad/Test.java:30:56:30:63 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:32:39:32:53 | (...)... | semmle.label | (...)... | +| mad/Test.java:32:46:32:53 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:34:31:34:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:34:38:34:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:36:29:36:43 | (...)... | semmle.label | (...)... | +| mad/Test.java:36:36:36:43 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:38:24:38:38 | (...)... | semmle.label | (...)... | +| mad/Test.java:38:31:38:38 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:40:24:40:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:40:33:40:40 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:42:20:42:34 | (...)... | semmle.label | (...)... | | mad/Test.java:42:27:42:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:43:20:43:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:43:34:43:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:45:33:45:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:45:40:45:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:46:33:46:55 | (...)... | semmle.label | (...)... | -| mad/Test.java:46:48:46:55 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:47:40:47:54 | (...)... | semmle.label | (...)... | -| mad/Test.java:47:47:47:54 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:49:33:49:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:49:40:49:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:51:31:51:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:51:38:51:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:53:26:53:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:53:33:53:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:55:26:55:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:55:33:55:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:57:34:57:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:57:41:57:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:59:35:59:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:59:42:59:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:61:30:61:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:61:37:61:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:63:22:63:36 | (...)... | semmle.label | (...)... | -| mad/Test.java:63:29:63:36 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:65:30:65:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:65:37:65:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:67:21:67:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:67:28:67:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:69:26:69:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:69:33:69:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:71:33:71:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:71:40:71:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:73:33:73:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:73:40:73:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:43:20:43:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:43:27:43:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:44:20:44:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:44:34:44:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:46:33:46:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:46:40:46:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:47:33:47:55 | (...)... | semmle.label | (...)... | +| mad/Test.java:47:48:47:55 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:48:40:48:54 | (...)... | semmle.label | (...)... | +| mad/Test.java:48:47:48:54 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:50:33:50:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:50:40:50:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:52:31:52:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:52:38:52:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:54:26:54:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:54:33:54:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:56:26:56:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:56:33:56:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:58:34:58:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:58:41:58:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:60:35:60:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:60:42:60:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:62:30:62:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:62:37:62:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:64:22:64:36 | (...)... | semmle.label | (...)... | +| mad/Test.java:64:29:64:36 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:66:30:66:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:66:37:66:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:68:21:68:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:68:28:68:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:70:26:70:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:70:33:70:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:72:33:72:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:72:40:72:47 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:74:33:74:47 | (...)... | semmle.label | (...)... | | mad/Test.java:74:40:74:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:76:31:76:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:76:38:76:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:78:21:78:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:78:28:78:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:75:33:75:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:75:40:75:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:77:31:77:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:77:38:77:45 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:79:21:79:35 | (...)... | semmle.label | (...)... | | mad/Test.java:79:28:79:35 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:80:21:80:35 | (...)... | semmle.label | (...)... | | mad/Test.java:80:28:80:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:82:27:82:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:82:34:82:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:81:21:81:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:81:28:81:35 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:83:27:83:41 | (...)... | semmle.label | (...)... | | mad/Test.java:83:34:83:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:85:26:85:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:85:33:85:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:87:41:87:57 | (...)... | semmle.label | (...)... | -| mad/Test.java:87:50:87:57 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:89:45:89:61 | (...)... | semmle.label | (...)... | -| mad/Test.java:89:54:89:61 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:84:27:84:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:84:34:84:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:86:26:86:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:86:33:86:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:88:35:88:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:88:42:88:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:90:41:90:57 | (...)... | semmle.label | (...)... | +| mad/Test.java:90:50:90:57 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:92:45:92:61 | (...)... | semmle.label | (...)... | +| mad/Test.java:92:54:92:61 | 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 | @@ -196,40 +200,41 @@ 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:25:52:25:68 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:25:52:25:68 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:27:32:27:48 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:27:32:27:48 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:29:47:29:63 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:29:47:29:63 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:31:39:31:53 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:31:39:31:53 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:33:31:33:45 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:33:31:33:45 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:35:29:35:43 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:35:29:35:43 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:37:24:37:38 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:37:24:37:38 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:39:9:39:41 | new FileReader(...) | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:39:24:39:40 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:41:20:41:34 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:41:20:41:34 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:42:20:42:34 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:42:20:42:34 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:43:20:43:41 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:43:20:43:41 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:45:33:45:47 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:45:33:45:47 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:46:33:46:55 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:46:33:46:55 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:47:40:47:54 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:47:40:47:54 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:49:33:49:47 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:49:33:49:47 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:51:31:51:45 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:51:31:51:45 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:53:26:53:40 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:53:26:53:40 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:55:26:55:40 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:55:26:55:40 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:57:34:57:48 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:57:34:57:48 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:59:35:59:49 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:59:35:59:49 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:61:30:61:44 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:61:30:61:44 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:63:22:63:36 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:63:22:63:36 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:65:30:65:44 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:65:30:65:44 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:67:21:67:35 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:67:21:67:35 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:69:26:69:40 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:69:26:69:40 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:71:33:71:47 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:71:33:71:47 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:73:33:73:47 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:73:33:73:47 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:74:33:74:47 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:74:33:74:47 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:76:31:76:45 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:76:31:76:45 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:78:21:78:35 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:78:21:78:35 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:79:21:79:35 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:79:21:79:35 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:80:21:80:35 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:80:21:80:35 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:82:27:82:41 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:82:27:82:41 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:83:27:83:41 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:83:27:83:41 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:85:26:85:40 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:85:26:85:40 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:87:41:87:57 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:87:41:87:57 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | -| mad/Test.java:89:45:89:61 | (...)... | mad/Test.java:20:16:20:36 | getHostName(...) : String | mad/Test.java:89:45:89:61 | (...)... | This path depends on a $@. | mad/Test.java:20:16:20:36 | getHostName(...) | user-provided value | +| mad/Test.java:26:52:26:68 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:26:52:26:68 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:28:32:28:48 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:28:32:28:48 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:30:47:30:63 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:30:47:30:63 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:32:39:32:53 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:32:39:32:53 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:34:31:34:45 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:34:31:34:45 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:36:29:36:43 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:36:29:36:43 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:38:24:38:38 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:38:24:38:38 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:40:9:40:41 | new FileReader(...) | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:40:24:40:40 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:42:20:42:34 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:42:20:42:34 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:43:20:43:34 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:43:20:43:34 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:44:20:44:41 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:44:20:44:41 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:46:33:46:47 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:46:33:46:47 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:47:33:47:55 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:47:33:47:55 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:48:40:48:54 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:48:40:48:54 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:50:33:50:47 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:50:33:50:47 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:52:31:52:45 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:52:31:52:45 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:54:26:54:40 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:54:26:54:40 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:56:26:56:40 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:56:26:56:40 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:58:34:58:48 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:58:34:58:48 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:60:35:60:49 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:60:35:60:49 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:62:30:62:44 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:62:30:62:44 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:64:22:64:36 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:64:22:64:36 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:66:30:66:44 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:66:30:66:44 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:68:21:68:35 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:68:21:68:35 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:70:26:70:40 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:70:26:70:40 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:72:33:72:47 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:72:33:72:47 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:74:33:74:47 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:74:33:74:47 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:75:33:75:47 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:75:33:75:47 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:77:31:77:45 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:77:31:77:45 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:79:21:79:35 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:79:21:79:35 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:80:21:80:35 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:80:21:80:35 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:81:21:81:35 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:81:21:81:35 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:83:27:83:41 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:83:27:83:41 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:84:27:84:41 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:84:27:84:41 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:86:26:86:40 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:86:26:86:40 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:88:35:88:49 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:88:35:88:49 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:90:41:90:57 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:90:41:90:57 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:92:45:92:61 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:92:45:92:61 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java index f2040c93aae..9e1c3d60663 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java @@ -10,6 +10,7 @@ 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.codehaus.cargo.container.installer.ZipURLInstaller; public class Test { @@ -83,6 +84,8 @@ public class Test { 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(), ""); // "org.codehaus.cargo.container.installer;ZipURLInstaller;true;ZipURLInstaller;(URL,String,String);;Argument[2];create-file;ai-generated" diff --git a/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/FileUtils.java b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/FileUtils.java new file mode 100644 index 00000000000..1e5e603d915 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/FileUtils.java @@ -0,0 +1,173 @@ +// Generated automatically from org.apache.commons.io.FileUtils for testing purposes + +package org.apache.commons.io; + +import java.io.File; +import java.io.FileFilter; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.math.BigInteger; +import java.net.URL; +import java.nio.charset.Charset; +import java.nio.file.CopyOption; +import java.nio.file.LinkOption; +import java.time.Instant; +import java.time.LocalTime; +import java.time.ZoneId; +import java.time.chrono.ChronoLocalDate; +import java.time.chrono.ChronoLocalDateTime; +import java.time.chrono.ChronoZonedDateTime; +import java.util.Collection; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Stream; +import java.util.zip.Checksum; +import org.apache.commons.io.LineIterator; +import org.apache.commons.io.filefilter.IOFileFilter; + +public class FileUtils +{ + public FileUtils(){} + public static BigInteger ONE_EB_BI = null; + public static BigInteger ONE_GB_BI = null; + public static BigInteger ONE_KB_BI = null; + public static BigInteger ONE_MB_BI = null; + public static BigInteger ONE_PB_BI = null; + public static BigInteger ONE_TB_BI = null; + public static BigInteger ONE_YB = null; + public static BigInteger ONE_ZB = null; + public static BigInteger sizeOfAsBigInteger(File p0){ return null; } + public static BigInteger sizeOfDirectoryAsBigInteger(File p0){ return null; } + public static Checksum checksum(File p0, Checksum p1){ return null; } + public static Collection listFiles(File p0, IOFileFilter p1, IOFileFilter p2){ return null; } + public static Collection listFiles(File p0, String[] p1, boolean p2){ return null; } + public static Collection listFilesAndDirs(File p0, IOFileFilter p1, IOFileFilter p2){ return null; } + public static File createParentDirectories(File p0){ return null; } + public static File delete(File p0){ return null; } + public static File getFile(File p0, String... p1){ return null; } + public static File getFile(String... p0){ return null; } + public static File getTempDirectory(){ return null; } + public static File getUserDirectory(){ return null; } + public static File toFile(URL p0){ return null; } + public static FileInputStream openInputStream(File p0){ return null; } + public static FileOutputStream openOutputStream(File p0){ return null; } + public static FileOutputStream openOutputStream(File p0, boolean p1){ return null; } + public static File[] EMPTY_FILE_ARRAY = null; + public static File[] convertFileCollectionToFileArray(Collection p0){ return null; } + public static File[] toFiles(URL... p0){ return null; } + public static Iterator iterateFiles(File p0, IOFileFilter p1, IOFileFilter p2){ return null; } + public static Iterator iterateFiles(File p0, String[] p1, boolean p2){ return null; } + public static Iterator iterateFilesAndDirs(File p0, IOFileFilter p1, IOFileFilter p2){ return null; } + public static LineIterator lineIterator(File p0){ return null; } + public static LineIterator lineIterator(File p0, String p1){ return null; } + public static List readLines(File p0){ return null; } + public static List readLines(File p0, Charset p1){ return null; } + public static List readLines(File p0, String p1){ return null; } + public static Stream streamFiles(File p0, boolean p1, String... p2){ return null; } + public static String byteCountToDisplaySize(BigInteger p0){ return null; } + public static String byteCountToDisplaySize(long p0){ return null; } + public static String getTempDirectoryPath(){ return null; } + public static String getUserDirectoryPath(){ return null; } + public static String readFileToString(File p0){ return null; } + public static String readFileToString(File p0, Charset p1){ return null; } + public static String readFileToString(File p0, String p1){ return null; } + public static URL[] toURLs(File... p0){ return null; } + public static boolean contentEquals(File p0, File p1){ return false; } + public static boolean contentEqualsIgnoreEOL(File p0, File p1, String p2){ return false; } + public static boolean deleteQuietly(File p0){ return false; } + public static boolean directoryContains(File p0, File p1){ return false; } + public static boolean isDirectory(File p0, LinkOption... p1){ return false; } + public static boolean isEmptyDirectory(File p0){ return false; } + public static boolean isFileNewer(File p0, ChronoLocalDate p1){ return false; } + public static boolean isFileNewer(File p0, ChronoLocalDate p1, LocalTime p2){ return false; } + public static boolean isFileNewer(File p0, ChronoLocalDateTime p1){ return false; } + public static boolean isFileNewer(File p0, ChronoLocalDateTime p1, ZoneId p2){ return false; } + public static boolean isFileNewer(File p0, ChronoZonedDateTime p1){ return false; } + public static boolean isFileNewer(File p0, Date p1){ return false; } + public static boolean isFileNewer(File p0, File p1){ return false; } + public static boolean isFileNewer(File p0, Instant p1){ return false; } + public static boolean isFileNewer(File p0, long p1){ return false; } + public static boolean isFileOlder(File p0, ChronoLocalDate p1){ return false; } + public static boolean isFileOlder(File p0, ChronoLocalDate p1, LocalTime p2){ return false; } + public static boolean isFileOlder(File p0, ChronoLocalDateTime p1){ return false; } + public static boolean isFileOlder(File p0, ChronoLocalDateTime p1, ZoneId p2){ return false; } + public static boolean isFileOlder(File p0, ChronoZonedDateTime p1){ return false; } + public static boolean isFileOlder(File p0, Date p1){ return false; } + public static boolean isFileOlder(File p0, File p1){ return false; } + public static boolean isFileOlder(File p0, Instant p1){ return false; } + public static boolean isFileOlder(File p0, long p1){ return false; } + public static boolean isRegularFile(File p0, LinkOption... p1){ return false; } + public static boolean isSymlink(File p0){ return false; } + public static boolean waitFor(File p0, int p1){ return false; } + public static byte[] readFileToByteArray(File p0){ return null; } + public static long ONE_EB = 0; + public static long ONE_GB = 0; + public static long ONE_KB = 0; + public static long ONE_MB = 0; + public static long ONE_PB = 0; + public static long ONE_TB = 0; + public static long checksumCRC32(File p0){ return 0; } + public static long copyFile(File p0, OutputStream p1){ return 0; } + public static long lastModified(File p0){ return 0; } + public static long lastModifiedUnchecked(File p0){ return 0; } + public static long sizeOf(File p0){ return 0; } + public static long sizeOfDirectory(File p0){ return 0; } + public static void cleanDirectory(File p0){} + public static void copyDirectory(File p0, File p1){} + public static void copyDirectory(File p0, File p1, FileFilter p2){} + public static void copyDirectory(File p0, File p1, FileFilter p2, boolean p3){} + public static void copyDirectory(File p0, File p1, FileFilter p2, boolean p3, CopyOption... p4){} + public static void copyDirectory(File p0, File p1, boolean p2){} + public static void copyDirectoryToDirectory(File p0, File p1){} + public static void copyFile(File p0, File p1){} + public static void copyFile(File p0, File p1, CopyOption... p2){} + public static void copyFile(File p0, File p1, boolean p2){} + public static void copyFile(File p0, File p1, boolean p2, CopyOption... p3){} + public static void copyFileToDirectory(File p0, File p1){} + public static void copyFileToDirectory(File p0, File p1, boolean p2){} + public static void copyInputStreamToFile(InputStream p0, File p1){} + public static void copyToDirectory(File p0, File p1){} + public static void copyToDirectory(Iterable p0, File p1){} + public static void copyToFile(InputStream p0, File p1){} + public static void copyURLToFile(URL p0, File p1){} + public static void copyURLToFile(URL p0, File p1, int p2, int p3){} + public static void deleteDirectory(File p0){} + public static void forceDelete(File p0){} + public static void forceDeleteOnExit(File p0){} + public static void forceMkdir(File p0){} + public static void forceMkdirParent(File p0){} + public static void moveDirectory(File p0, File p1){} + public static void moveDirectoryToDirectory(File p0, File p1, boolean p2){} + public static void moveFile(File p0, File p1){} + public static void moveFile(File p0, File p1, CopyOption... p2){} + public static void moveFileToDirectory(File p0, File p1, boolean p2){} + public static void moveToDirectory(File p0, File p1, boolean p2){} + public static void touch(File p0){} + public static void write(File p0, CharSequence p1){} + public static void write(File p0, CharSequence p1, Charset p2){} + public static void write(File p0, CharSequence p1, Charset p2, boolean p3){} + public static void write(File p0, CharSequence p1, String p2){} + public static void write(File p0, CharSequence p1, String p2, boolean p3){} + public static void write(File p0, CharSequence p1, boolean p2){} + public static void writeByteArrayToFile(File p0, byte[] p1){} + public static void writeByteArrayToFile(File p0, byte[] p1, boolean p2){} + public static void writeByteArrayToFile(File p0, byte[] p1, int p2, int p3){} + public static void writeByteArrayToFile(File p0, byte[] p1, int p2, int p3, boolean p4){} + public static void writeLines(File p0, Collection p1){} + public static void writeLines(File p0, Collection p1, String p2){} + public static void writeLines(File p0, Collection p1, String p2, boolean p3){} + public static void writeLines(File p0, Collection p1, boolean p2){} + public static void writeLines(File p0, String p1, Collection p2){} + public static void writeLines(File p0, String p1, Collection p2, String p3){} + public static void writeLines(File p0, String p1, Collection p2, String p3, boolean p4){} + public static void writeLines(File p0, String p1, Collection p2, boolean p3){} + public static void writeStringToFile(File p0, String p1){} + public static void writeStringToFile(File p0, String p1, Charset p2){} + public static void writeStringToFile(File p0, String p1, Charset p2, boolean p3){} + public static void writeStringToFile(File p0, String p1, String p2){} + public static void writeStringToFile(File p0, String p1, String p2, boolean p3){} + public static void writeStringToFile(File p0, String p1, boolean p2){} +} diff --git a/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/LineIterator.java b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/LineIterator.java new file mode 100644 index 00000000000..7310d52b888 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/LineIterator.java @@ -0,0 +1,20 @@ +// Generated automatically from org.apache.commons.io.LineIterator for testing purposes + +package org.apache.commons.io; + +import java.io.Closeable; +import java.io.Reader; +import java.util.Iterator; + +public class LineIterator implements Closeable, Iterator +{ + protected LineIterator() {} + protected boolean isValidLine(String p0){ return false; } + public LineIterator(Reader p0){} + public String next(){ return null; } + public String nextLine(){ return null; } + public boolean hasNext(){ return false; } + public static void closeQuietly(LineIterator p0){} + public void close(){} + public void remove(){} +} diff --git a/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/file/PathFilter.java b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/file/PathFilter.java new file mode 100644 index 00000000000..c0c4593b977 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/file/PathFilter.java @@ -0,0 +1,12 @@ +// Generated automatically from org.apache.commons.io.file.PathFilter for testing purposes + +package org.apache.commons.io.file; + +import java.nio.file.FileVisitResult; +import java.nio.file.Path; +import java.nio.file.attribute.BasicFileAttributes; + +public interface PathFilter +{ + FileVisitResult accept(Path p0, BasicFileAttributes p1); +} diff --git a/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/filefilter/IOFileFilter.java b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/filefilter/IOFileFilter.java new file mode 100644 index 00000000000..3721d146b61 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/filefilter/IOFileFilter.java @@ -0,0 +1,22 @@ +// Generated automatically from org.apache.commons.io.filefilter.IOFileFilter for testing purposes + +package org.apache.commons.io.filefilter; + +import java.io.File; +import java.io.FileFilter; +import java.io.FilenameFilter; +import java.nio.file.FileVisitResult; +import java.nio.file.Path; +import java.nio.file.attribute.BasicFileAttributes; +import org.apache.commons.io.file.PathFilter; + +public interface IOFileFilter extends FileFilter, FilenameFilter, PathFilter +{ + boolean accept(File p0); + boolean accept(File p0, String p1); + default FileVisitResult accept(Path p0, BasicFileAttributes p1){ return null; } + default IOFileFilter and(IOFileFilter p0){ return null; } + default IOFileFilter negate(){ return null; } + default IOFileFilter or(IOFileFilter p0){ return null; } + static String[] EMPTY_STRING_ARRAY = null; +} diff --git a/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/output/LockableFileWriter.java b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/output/LockableFileWriter.java index 3c7c9c5ebf5..19a64de1972 100644 --- a/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/output/LockableFileWriter.java +++ b/java/ql/test/stubs/apache-commons-io-2.6/org/apache/commons/io/output/LockableFileWriter.java @@ -1,7 +1,29 @@ +// Generated automatically from org.apache.commons.io.output.LockableFileWriter for testing purposes + package org.apache.commons.io.output; -public class LockableFileWriter { - - public LockableFileWriter(String filename) { } +import java.io.File; +import java.io.Writer; +import java.nio.charset.Charset; +public class LockableFileWriter extends Writer +{ + protected LockableFileWriter() {} + public LockableFileWriter(File p0){} + public LockableFileWriter(File p0, Charset p1){} + public LockableFileWriter(File p0, Charset p1, boolean p2, String p3){} + public LockableFileWriter(File p0, String p1){} + public LockableFileWriter(File p0, String p1, boolean p2, String p3){} + public LockableFileWriter(File p0, boolean p1){} + public LockableFileWriter(File p0, boolean p1, String p2){} + public LockableFileWriter(String p0){} + public LockableFileWriter(String p0, boolean p1){} + public LockableFileWriter(String p0, boolean p1, String p2){} + public void close(){} + public void flush(){} + public void write(String p0){} + public void write(String p0, int p1, int p2){} + public void write(char[] p0){} + public void write(char[] p0, int p1, int p2){} + public void write(int p0){} } From db9e305a565018c19de019f32093a8402e39ae71 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 16:44:53 +0100 Subject: [PATCH 12/22] org.apache.commons.jelly tests --- .../ext/org.apache.commons.jelly.model.yml | 12 +- .../security/CWE-918/mad/Test.java | 13 ++ .../test/query-tests/security/CWE-918/options | 2 +- .../apache/commons/jelly/JellyContext.java | 82 +++++++ .../apache/commons/jelly/JellyException.java | 32 +++ .../commons/jelly/JellyTagException.java | 16 ++ .../apache/commons/jelly/LocationAware.java | 16 ++ .../org/apache/commons/jelly/Script.java | 12 + .../org/apache/commons/jelly/Tag.java | 19 ++ .../org/apache/commons/jelly/TagLibrary.java | 23 ++ .../org/apache/commons/jelly/XMLOutput.java | 59 +++++ .../commons/jelly/expression/Expression.java | 16 ++ .../jelly/expression/ExpressionFactory.java | 10 + .../commons/jelly/impl/ScriptBlock.java | 20 ++ .../apache/commons/jelly/impl/TagFactory.java | 11 + .../apache/commons/jelly/impl/TagScript.java | 64 +++++ .../commons/jelly/parser/XMLParser.java | 99 ++++++++ .../dom4j-2.1.1/org/dom4j/Attribute.java | 21 ++ .../stubs/dom4j-2.1.1/org/dom4j/Branch.java | 87 +++---- .../stubs/dom4j-2.1.1/org/dom4j/CDATA.java | 9 + .../dom4j-2.1.1/org/dom4j/CharacterData.java | 10 + .../stubs/dom4j-2.1.1/org/dom4j/Comment.java | 9 + .../stubs/dom4j-2.1.1/org/dom4j/Document.java | 69 ++---- .../org/dom4j/DocumentFactory.java | 162 +++++-------- .../dom4j-2.1.1/org/dom4j/DocumentType.java | 20 ++ .../stubs/dom4j-2.1.1/org/dom4j/Element.java | 212 +++++++---------- .../stubs/dom4j-2.1.1/org/dom4j/Entity.java | 9 + .../dom4j-2.1.1/org/dom4j/Namespace.java | 142 +++-------- .../stubs/dom4j-2.1.1/org/dom4j/Node.java | 123 +++++----- .../dom4j-2.1.1/org/dom4j/NodeFilter.java | 56 +---- .../org/dom4j/ProcessingInstruction.java | 18 ++ .../stubs/dom4j-2.1.1/org/dom4j/QName.java | 31 +++ .../stubs/dom4j-2.1.1/org/dom4j/Text.java | 9 + .../stubs/dom4j-2.1.1/org/dom4j/Visitor.java | 78 ++----- .../stubs/dom4j-2.1.1/org/dom4j/XPath.java | 107 +++------ .../org/dom4j/io/OutputFormat.java | 44 ++++ .../dom4j-2.1.1/org/dom4j/io/XMLWriter.java | 126 ++++++++++ .../dom4j-2.1.1/org/dom4j/rule/Pattern.java | 68 +----- .../org/dom4j/tree/AbstractNode.java | 220 ++++-------------- .../org/dom4j/tree/NamespaceCache.java | 17 ++ .../org/dom4j/tree/QNameCache.java | 28 +++ .../stubs/jaxen-1.2.0/org/jaxen/Context.java | 28 +++ .../jaxen-1.2.0/org/jaxen/ContextSupport.java | 26 +++ .../stubs/jaxen-1.2.0/org/jaxen/Function.java | 11 + .../org/jaxen/FunctionContext.java | 10 + .../org/jaxen/NamespaceContext.java | 9 + .../jaxen-1.2.0/org/jaxen/Navigator.java | 52 +++++ .../org/jaxen/VariableContext copy.java | 9 + .../stubs/jaxen-1.2.0/org/jaxen/XPath.java | 28 +++ 49 files changed, 1406 insertions(+), 948 deletions(-) create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyContext.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyException.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyTagException.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/LocationAware.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/Script.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/Tag.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/TagLibrary.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/XMLOutput.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/expression/Expression.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/expression/ExpressionFactory.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/ScriptBlock.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/TagFactory.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/TagScript.java create mode 100644 java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/parser/XMLParser.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Attribute.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/CDATA.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/CharacterData.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Comment.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/DocumentType.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Entity.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/ProcessingInstruction.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/QName.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Text.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/io/OutputFormat.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/io/XMLWriter.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/NamespaceCache.java create mode 100644 java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/QNameCache.java create mode 100644 java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Context.java create mode 100644 java/ql/test/stubs/jaxen-1.2.0/org/jaxen/ContextSupport.java create mode 100644 java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Function.java create mode 100644 java/ql/test/stubs/jaxen-1.2.0/org/jaxen/FunctionContext.java create mode 100644 java/ql/test/stubs/jaxen-1.2.0/org/jaxen/NamespaceContext.java create mode 100644 java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Navigator.java create mode 100644 java/ql/test/stubs/jaxen-1.2.0/org/jaxen/VariableContext copy.java create mode 100644 java/ql/test/stubs/jaxen-1.2.0/org/jaxen/XPath.java diff --git a/java/ql/lib/ext/org.apache.commons.jelly.model.yml b/java/ql/lib/ext/org.apache.commons.jelly.model.yml index 2baa73831a9..84efafba4e4 100644 --- a/java/ql/lib/ext/org.apache.commons.jelly.model.yml +++ b/java/ql/lib/ext/org.apache.commons.jelly.model.yml @@ -3,9 +3,9 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(JellyContext,URL,URL)", "", "Argument[1]", "open-url", "ai-generated"] # @atorralba: double check - - ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(JellyContext,URL,URL)", "", "Argument[2]", "open-url", "ai-generated"] # @atorralba: double check - - ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(JellyContext,URL)", "", "Argument[1]", "open-url", "ai-generated"] # @atorralba: double check - - ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(URL,URL)", "", "Argument[0]", "open-url", "ai-generated"] # @atorralba: double check - - ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(URL,URL)", "", "Argument[1]", "open-url", "ai-generated"] # @atorralba: double check - - ["org.apache.commons.jelly", "JellyContext", True, "JellyContext", "(URL)", "", "Argument[0]", "open-url", "ai-generated"] # @atorralba: double check + - ["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"] diff --git a/java/ql/test/query-tests/security/CWE-918/mad/Test.java b/java/ql/test/query-tests/security/CWE-918/mad/Test.java index e3f1f4e5353..8bfbe9c10f9 100644 --- a/java/ql/test/query-tests/security/CWE-918/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-918/mad/Test.java @@ -6,6 +6,7 @@ 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; public class Test { @@ -43,6 +44,18 @@ public class Test { 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) { diff --git a/java/ql/test/query-tests/security/CWE-918/options b/java/ql/test/query-tests/security/CWE-918/options index 4b7a5015763..3b168db6f0d 100644 --- a/java/ql/test/query-tests/security/CWE-918/options +++ b/java/ql/test/query-tests/security/CWE-918/options @@ -1,2 +1,2 @@ -//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/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:${testdir}/../../../stubs/apache-commons-jelly-1.0.1:${testdir}/../../../stubs/dom4j-2.1.1:${testdir}/../../../stubs/jaxen-1.2.0 diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyContext.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyContext.java new file mode 100644 index 00000000000..7975d079ea4 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyContext.java @@ -0,0 +1,82 @@ +// Generated automatically from org.apache.commons.jelly.JellyContext for testing purposes + +package org.apache.commons.jelly; + +import java.io.File; +import java.io.InputStream; +import java.net.URL; +import java.util.Iterator; +import java.util.Map; +import org.apache.commons.jelly.Script; +import org.apache.commons.jelly.TagLibrary; +import org.apache.commons.jelly.XMLOutput; +import org.apache.commons.jelly.parser.XMLParser; +import org.xml.sax.InputSource; + +public class JellyContext +{ + protected ClassLoader classLoader = null; + protected JellyContext createChildContext(){ return null; } + protected URL createRelativeURL(URL p0, String p1){ return null; } + protected URL getJellyContextURL(InputSource p0){ return null; } + protected URL getJellyContextURL(URL p0){ return null; } + protected XMLParser createXMLParser(){ return null; } + protected XMLParser getXMLParser(){ return null; } + protected boolean useContextClassLoader = false; + protected void clearVariables(){} + protected void setParent(JellyContext p0){} + public ClassLoader getClassLoader(){ return null; } + public InputStream getResourceAsStream(String p0){ return null; } + public Iterator getVariableNames(){ return null; } + public JellyContext getParent(){ return null; } + public JellyContext getScope(String p0){ return null; } + public JellyContext newJellyContext(){ return null; } + public JellyContext newJellyContext(Map p0){ return null; } + public JellyContext runScript(File p0, XMLOutput p1){ return null; } + public JellyContext runScript(File p0, XMLOutput p1, boolean p2, boolean p3){ return null; } + public JellyContext runScript(InputSource p0, XMLOutput p1){ return null; } + public JellyContext runScript(InputSource p0, XMLOutput p1, boolean p2, boolean p3){ return null; } + public JellyContext runScript(String p0, XMLOutput p1){ return null; } + public JellyContext runScript(String p0, XMLOutput p1, boolean p2, boolean p3){ return null; } + public JellyContext runScript(URL p0, XMLOutput p1){ return null; } + public JellyContext runScript(URL p0, XMLOutput p1, boolean p2, boolean p3){ return null; } + public JellyContext(){} + public JellyContext(JellyContext p0){} + public JellyContext(JellyContext p0, URL p1){} + public JellyContext(JellyContext p0, URL p1, URL p2){} + public JellyContext(URL p0){} + public JellyContext(URL p0, URL p1){} + public Map getVariables(){ return null; } + public Object findVariable(String p0){ return null; } + public Object getVariable(String p0){ return null; } + public Object getVariable(String p0, String p1){ return null; } + public Script compileScript(InputSource p0){ return null; } + public Script compileScript(String p0){ return null; } + public Script compileScript(URL p0){ return null; } + public TagLibrary getTagLibrary(String p0){ return null; } + public URL getCurrentURL(){ return null; } + public URL getResource(String p0){ return null; } + public URL getRootURL(){ return null; } + public boolean getUseContextClassLoader(){ return false; } + public boolean isAllowDtdToCallExternalEntities(){ return false; } + public boolean isExport(){ return false; } + public boolean isExportLibraries(){ return false; } + public boolean isInherit(){ return false; } + public boolean isTagLibraryRegistered(String p0){ return false; } + public void clear(){} + public void registerTagLibrary(String p0, String p1){} + public void registerTagLibrary(String p0, TagLibrary p1){} + public void removeVariable(String p0){} + public void removeVariable(String p0, String p1){} + public void setAllowDtdToCallExternalEntities(boolean p0){} + public void setClassLoader(ClassLoader p0){} + public void setCurrentURL(URL p0){} + public void setExport(boolean p0){} + public void setExportLibraries(boolean p0){} + public void setInherit(boolean p0){} + public void setRootURL(URL p0){} + public void setUseContextClassLoader(boolean p0){} + public void setVariable(String p0, Object p1){} + public void setVariable(String p0, String p1, Object p2){} + public void setVariables(Map p0){} +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyException.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyException.java new file mode 100644 index 00000000000..5f81095501d --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyException.java @@ -0,0 +1,32 @@ +// Generated automatically from org.apache.commons.jelly.JellyException for testing purposes + +package org.apache.commons.jelly; + +import java.io.PrintStream; +import java.io.PrintWriter; +import org.apache.commons.jelly.LocationAware; + +public class JellyException extends Exception implements LocationAware +{ + public JellyException(){} + public JellyException(String p0){} + public JellyException(String p0, String p1, String p2, int p3, int p4){} + public JellyException(String p0, Throwable p1){} + public JellyException(String p0, Throwable p1, String p2, String p3, int p4, int p5){} + public JellyException(Throwable p0){} + public JellyException(Throwable p0, String p1, String p2, int p3, int p4){} + public String getElementName(){ return null; } + public String getFileName(){ return null; } + public String getMessage(){ return null; } + public String getReason(){ return null; } + public Throwable getCause(){ return null; } + public int getColumnNumber(){ return 0; } + public int getLineNumber(){ return 0; } + public void printStackTrace(){} + public void printStackTrace(PrintStream p0){} + public void printStackTrace(PrintWriter p0){} + public void setColumnNumber(int p0){} + public void setElementName(String p0){} + public void setFileName(String p0){} + public void setLineNumber(int p0){} +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyTagException.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyTagException.java new file mode 100644 index 00000000000..f2e2039c33f --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/JellyTagException.java @@ -0,0 +1,16 @@ +// Generated automatically from org.apache.commons.jelly.JellyTagException for testing purposes + +package org.apache.commons.jelly; + +import org.apache.commons.jelly.JellyException; + +public class JellyTagException extends JellyException +{ + public JellyTagException(){} + public JellyTagException(String p0){} + public JellyTagException(String p0, String p1, String p2, int p3, int p4){} + public JellyTagException(String p0, Throwable p1){} + public JellyTagException(String p0, Throwable p1, String p2, String p3, int p4, int p5){} + public JellyTagException(Throwable p0){} + public JellyTagException(Throwable p0, String p1, String p2, int p3, int p4){} +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/LocationAware.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/LocationAware.java new file mode 100644 index 00000000000..506fc26ad91 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/LocationAware.java @@ -0,0 +1,16 @@ +// Generated automatically from org.apache.commons.jelly.LocationAware for testing purposes + +package org.apache.commons.jelly; + + +public interface LocationAware +{ + String getElementName(); + String getFileName(); + int getColumnNumber(); + int getLineNumber(); + void setColumnNumber(int p0); + void setElementName(String p0); + void setFileName(String p0); + void setLineNumber(int p0); +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/Script.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/Script.java new file mode 100644 index 00000000000..72bbcdee0f7 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/Script.java @@ -0,0 +1,12 @@ +// Generated automatically from org.apache.commons.jelly.Script for testing purposes + +package org.apache.commons.jelly; + +import org.apache.commons.jelly.JellyContext; +import org.apache.commons.jelly.XMLOutput; + +public interface Script +{ + Script compile(); + void run(JellyContext p0, XMLOutput p1); +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/Tag.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/Tag.java new file mode 100644 index 00000000000..e697338ea19 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/Tag.java @@ -0,0 +1,19 @@ +// Generated automatically from org.apache.commons.jelly.Tag for testing purposes + +package org.apache.commons.jelly; + +import org.apache.commons.jelly.JellyContext; +import org.apache.commons.jelly.Script; +import org.apache.commons.jelly.XMLOutput; + +public interface Tag +{ + JellyContext getContext(); + Script getBody(); + Tag getParent(); + void doTag(XMLOutput p0); + void invokeBody(XMLOutput p0); + void setBody(Script p0); + void setContext(JellyContext p0); + void setParent(Tag p0); +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/TagLibrary.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/TagLibrary.java new file mode 100644 index 00000000000..1074c22554a --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/TagLibrary.java @@ -0,0 +1,23 @@ +// Generated automatically from org.apache.commons.jelly.TagLibrary for testing purposes + +package org.apache.commons.jelly; + +import java.util.Map; +import org.apache.commons.jelly.Tag; +import org.apache.commons.jelly.expression.Expression; +import org.apache.commons.jelly.expression.ExpressionFactory; +import org.apache.commons.jelly.impl.TagFactory; +import org.apache.commons.jelly.impl.TagScript; +import org.xml.sax.Attributes; + +abstract public class TagLibrary +{ + protected ExpressionFactory getExpressionFactory(){ return null; } + protected Map getTagClasses(){ return null; } + protected void registerTag(String p0, Class p1){} + protected void registerTagFactory(String p0, TagFactory p1){} + public Expression createExpression(ExpressionFactory p0, TagScript p1, String p2, String p3){ return null; } + public Tag createTag(String p0, Attributes p1){ return null; } + public TagLibrary(){} + public TagScript createTagScript(String p0, Attributes p1){ return null; } +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/XMLOutput.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/XMLOutput.java new file mode 100644 index 00000000000..5517aebb64d --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/XMLOutput.java @@ -0,0 +1,59 @@ +// Generated automatically from org.apache.commons.jelly.XMLOutput for testing purposes + +package org.apache.commons.jelly; + +import java.io.OutputStream; +import java.io.Writer; +import org.dom4j.io.XMLWriter; +import org.xml.sax.Attributes; +import org.xml.sax.ContentHandler; +import org.xml.sax.Locator; +import org.xml.sax.XMLReader; +import org.xml.sax.ext.LexicalHandler; + +public class XMLOutput implements ContentHandler, LexicalHandler +{ + protected static String[] LEXICAL_HANDLER_NAMES = null; + protected static XMLOutput createXMLOutput(XMLWriter p0){ return null; } + public ContentHandler getContentHandler(){ return null; } + public LexicalHandler getLexicalHandler(){ return null; } + public String toString(){ return null; } + public XMLOutput(){} + public XMLOutput(ContentHandler p0){} + public XMLOutput(ContentHandler p0, LexicalHandler p1){} + public static XMLOutput createDummyXMLOutput(){ return null; } + public static XMLOutput createXMLOutput(OutputStream p0){ return null; } + public static XMLOutput createXMLOutput(OutputStream p0, boolean p1){ return null; } + public static XMLOutput createXMLOutput(Writer p0){ return null; } + public static XMLOutput createXMLOutput(Writer p0, boolean p1){ return null; } + public static XMLOutput createXMLOutput(XMLReader p0){ return null; } + public void characters(char[] p0, int p1, int p2){} + public void close(){} + public void comment(char[] p0, int p1, int p2){} + public void endCDATA(){} + public void endDTD(){} + public void endDocument(){} + public void endElement(String p0){} + public void endElement(String p0, String p1, String p2){} + public void endEntity(String p0){} + public void endPrefixMapping(String p0){} + public void flush(){} + public void ignorableWhitespace(char[] p0, int p1, int p2){} + public void objectData(Object p0){} + public void processingInstruction(String p0, String p1){} + public void setContentHandler(ContentHandler p0){} + public void setDocumentLocator(Locator p0){} + public void setLexicalHandler(LexicalHandler p0){} + public void skippedEntity(String p0){} + public void startCDATA(){} + public void startDTD(String p0, String p1, String p2){} + public void startDocument(){} + public void startElement(String p0){} + public void startElement(String p0, Attributes p1){} + public void startElement(String p0, String p1, String p2, Attributes p3){} + public void startEntity(String p0){} + public void startPrefixMapping(String p0, String p1){} + public void write(String p0){} + public void writeCDATA(String p0){} + public void writeComment(String p0){} +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/expression/Expression.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/expression/Expression.java new file mode 100644 index 00000000000..36abe33c196 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/expression/Expression.java @@ -0,0 +1,16 @@ +// Generated automatically from org.apache.commons.jelly.expression.Expression for testing purposes + +package org.apache.commons.jelly.expression; + +import java.util.Iterator; +import org.apache.commons.jelly.JellyContext; + +public interface Expression +{ + Iterator evaluateAsIterator(JellyContext p0); + Object evaluate(JellyContext p0); + Object evaluateRecurse(JellyContext p0); + String evaluateAsString(JellyContext p0); + String getExpressionText(); + boolean evaluateAsBoolean(JellyContext p0); +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/expression/ExpressionFactory.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/expression/ExpressionFactory.java new file mode 100644 index 00000000000..e4125b8d11f --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/expression/ExpressionFactory.java @@ -0,0 +1,10 @@ +// Generated automatically from org.apache.commons.jelly.expression.ExpressionFactory for testing purposes + +package org.apache.commons.jelly.expression; + +import org.apache.commons.jelly.expression.Expression; + +public interface ExpressionFactory +{ + Expression createExpression(String p0); +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/ScriptBlock.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/ScriptBlock.java new file mode 100644 index 00000000000..2f2571fdbac --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/ScriptBlock.java @@ -0,0 +1,20 @@ +// Generated automatically from org.apache.commons.jelly.impl.ScriptBlock for testing purposes + +package org.apache.commons.jelly.impl; + +import java.util.List; +import org.apache.commons.jelly.JellyContext; +import org.apache.commons.jelly.Script; +import org.apache.commons.jelly.XMLOutput; + +public class ScriptBlock implements Script +{ + public List getScriptList(){ return null; } + public Script compile(){ return null; } + public ScriptBlock(){} + public String toString(){ return null; } + public void addScript(Script p0){} + public void removeScript(Script p0){} + public void run(JellyContext p0, XMLOutput p1){} + public void trimWhitespace(){} +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/TagFactory.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/TagFactory.java new file mode 100644 index 00000000000..0b206865be9 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/TagFactory.java @@ -0,0 +1,11 @@ +// Generated automatically from org.apache.commons.jelly.impl.TagFactory for testing purposes + +package org.apache.commons.jelly.impl; + +import org.apache.commons.jelly.Tag; +import org.xml.sax.Attributes; + +public interface TagFactory +{ + Tag createTag(String p0, Attributes p1); +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/TagScript.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/TagScript.java new file mode 100644 index 00000000000..04cd3aee9d1 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/impl/TagScript.java @@ -0,0 +1,64 @@ +// Generated automatically from org.apache.commons.jelly.impl.TagScript for testing purposes + +package org.apache.commons.jelly.impl; + +import java.util.Map; +import org.apache.commons.jelly.JellyContext; +import org.apache.commons.jelly.JellyException; +import org.apache.commons.jelly.JellyTagException; +import org.apache.commons.jelly.LocationAware; +import org.apache.commons.jelly.Script; +import org.apache.commons.jelly.Tag; +import org.apache.commons.jelly.XMLOutput; +import org.apache.commons.jelly.expression.Expression; +import org.apache.commons.jelly.impl.TagFactory; +import org.xml.sax.Attributes; +import org.xml.sax.Locator; + +public class TagScript implements Script +{ + protected JellyException createJellyException(String p0){ return null; } + protected JellyException createJellyException(String p0, Exception p1){ return null; } + protected Map attributes = null; + protected Object convertType(Object p0, Class p1){ return null; } + protected Tag createTag(){ return null; } + protected void applyLocation(LocationAware p0){} + protected void configureTag(Tag p0, JellyContext p1){} + protected void endNamespacePrefixes(XMLOutput p0){} + protected void handleException(Error p0){} + protected void handleException(Exception p0){} + protected void handleException(JellyException p0){} + protected void handleException(JellyTagException p0){} + protected void setContextURLs(JellyContext p0){} + protected void setTag(Tag p0, JellyContext p1){} + protected void startNamespacePrefixes(XMLOutput p0){} + public Attributes getSaxAttributes(){ return null; } + public Map getNamespaceContext(){ return null; } + public Script compile(){ return null; } + public Script getTagBody(){ return null; } + public String getElementName(){ return null; } + public String getFileName(){ return null; } + public String getLocalName(){ return null; } + public String toString(){ return null; } + public Tag getTag(JellyContext p0){ return null; } + public TagFactory getTagFactory(){ return null; } + public TagScript getParent(){ return null; } + public TagScript(){} + public TagScript(TagFactory p0){} + public int getColumnNumber(){ return 0; } + public int getLineNumber(){ return 0; } + public static TagScript newInstance(Class p0){ return null; } + public void addAttribute(String p0, Expression p1){} + public void run(JellyContext p0, XMLOutput p1){} + public void setColumnNumber(int p0){} + public void setElementName(String p0){} + public void setFileName(String p0){} + public void setLineNumber(int p0){} + public void setLocalName(String p0){} + public void setLocator(Locator p0){} + public void setParent(TagScript p0){} + public void setSaxAttributes(Attributes p0){} + public void setTagBody(Script p0){} + public void setTagFactory(TagFactory p0){} + public void setTagNamespacesMap(Map p0){} +} diff --git a/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/parser/XMLParser.java b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/parser/XMLParser.java new file mode 100644 index 00000000000..18f7bbbb5ef --- /dev/null +++ b/java/ql/test/stubs/apache-commons-jelly-1.0.1/org/apache/commons/jelly/parser/XMLParser.java @@ -0,0 +1,99 @@ +// Generated automatically from org.apache.commons.jelly.parser.XMLParser for testing purposes + +package org.apache.commons.jelly.parser; + +import java.io.File; +import java.io.InputStream; +import java.io.Reader; +import java.net.URL; +import java.util.Map; +import java.util.Properties; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import org.apache.commons.jelly.JellyContext; +import org.apache.commons.jelly.Script; +import org.apache.commons.jelly.expression.Expression; +import org.apache.commons.jelly.expression.ExpressionFactory; +import org.apache.commons.jelly.impl.ScriptBlock; +import org.apache.commons.jelly.impl.TagScript; +import org.apache.commons.logging.Log; +import org.xml.sax.Attributes; +import org.xml.sax.ErrorHandler; +import org.xml.sax.InputSource; +import org.xml.sax.Locator; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; +import org.xml.sax.XMLReader; +import org.xml.sax.helpers.DefaultHandler; + +public class XMLParser extends DefaultHandler +{ + protected ClassLoader classLoader = null; + protected ErrorHandler errorHandler = null; + protected Expression createConstantExpression(String p0, String p1, String p2){ return null; } + protected ExpressionFactory createExpressionFactory(){ return null; } + protected Locator locator = null; + protected Map namespaces = null; + protected Properties getJellyProperties(){ return null; } + protected SAXException createSAXException(Exception p0){ return null; } + protected SAXException createSAXException(String p0){ return null; } + protected SAXException createSAXException(String p0, Exception p1){ return null; } + protected SAXParser parser = null; + protected String getCurrentURI(){ return null; } + protected TagScript createStaticTag(String p0, String p1, String p2, Attributes p3){ return null; } + protected TagScript createTag(String p0, String p1, Attributes p2){ return null; } + protected XMLReader reader = null; + protected boolean useContextClassLoader = false; + protected boolean validating = false; + protected static SAXParserFactory factory = null; + protected void addExpressionScript(ScriptBlock p0, Expression p1){} + protected void addTextScript(String p0){} + protected void configure(){} + protected void configureTagScript(TagScript p0){} + public ClassLoader getClassLoader(){ return null; } + public ErrorHandler getErrorHandler(){ return null; } + public ExpressionFactory getExpressionFactory(){ return null; } + public JellyContext getContext(){ return null; } + public Log getLogger(){ return null; } + public SAXParser getParser(){ return null; } + public Script parse(File p0){ return null; } + public Script parse(InputSource p0){ return null; } + public Script parse(InputStream p0){ return null; } + public Script parse(Reader p0){ return null; } + public Script parse(String p0){ return null; } + public Script parse(URL p0){ return null; } + public ScriptBlock getScript(){ return null; } + public String findNamespaceURI(String p0){ return null; } + public XMLParser(){} + public XMLParser(SAXParser p0){} + public XMLParser(XMLReader p0){} + public XMLParser(boolean p0){} + public XMLReader getReader(){ return null; } + public XMLReader getXMLReader(){ return null; } + public boolean getUseContextClassLoader(){ return false; } + public boolean getValidating(){ return false; } + public void characters(char[] p0, int p1, int p2){} + public void endDocument(){} + public void endElement(String p0, String p1, String p2){} + public void endPrefixMapping(String p0){} + public void error(SAXParseException p0){} + public void fatalError(SAXParseException p0){} + public void ignorableWhitespace(char[] p0, int p1, int p2){} + public void notationDecl(String p0, String p1, String p2){} + public void processingInstruction(String p0, String p1){} + public void setClassLoader(ClassLoader p0){} + public void setContext(JellyContext p0){} + public void setDefaultNamespaceURI(String p0){} + public void setDocumentLocator(Locator p0){} + public void setErrorHandler(ErrorHandler p0){} + public void setExpressionFactory(ExpressionFactory p0){} + public void setLogger(Log p0){} + public void setUseContextClassLoader(boolean p0){} + public void setValidating(boolean p0){} + public void skippedEntity(String p0){} + public void startDocument(){} + public void startElement(String p0, String p1, String p2, Attributes p3){} + public void startPrefixMapping(String p0, String p1){} + public void unparsedEntityDecl(String p0, String p1, String p2, String p3){} + public void warning(SAXParseException p0){} +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Attribute.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Attribute.java new file mode 100644 index 00000000000..cf198ce1121 --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Attribute.java @@ -0,0 +1,21 @@ +// Generated automatically from org.dom4j.Attribute for testing purposes + +package org.dom4j; + +import org.dom4j.Namespace; +import org.dom4j.Node; +import org.dom4j.QName; + +public interface Attribute extends Node +{ + Namespace getNamespace(); + Object getData(); + QName getQName(); + String getNamespacePrefix(); + String getNamespaceURI(); + String getQualifiedName(); + String getValue(); + void setData(Object p0); + void setNamespace(Namespace p0); + void setValue(String p0); +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Branch.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Branch.java index 5218b8f098f..7ab008a5860 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Branch.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Branch.java @@ -1,54 +1,41 @@ -/* - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - * - * This software is open source. - * See the bottom of this file for the licence. - */ - -/* - * Adapted from DOM4J version 2.1.1 as available at - * https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar - * Only relevant stubs of this file have been retained for test purposes. - */ +// Generated automatically from org.dom4j.Branch for testing purposes package org.dom4j; -public interface Branch extends Node { -} +import java.util.Iterator; +import java.util.List; +import org.dom4j.Comment; +import org.dom4j.Element; +import org.dom4j.Node; +import org.dom4j.ProcessingInstruction; +import org.dom4j.QName; -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. - * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. - * - * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org - * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file +public interface Branch extends Node +{ + Element addElement(QName p0); + Element addElement(String p0); + Element addElement(String p0, String p1); + Element elementByID(String p0); + Iterator nodeIterator(); + List content(); + List processingInstructions(); + List processingInstructions(String p0); + Node node(int p0); + ProcessingInstruction processingInstruction(String p0); + boolean remove(Comment p0); + boolean remove(Element p0); + boolean remove(Node p0); + boolean remove(ProcessingInstruction p0); + boolean removeProcessingInstruction(String p0); + int indexOf(Node p0); + int nodeCount(); + void add(Comment p0); + void add(Element p0); + void add(Node p0); + void add(ProcessingInstruction p0); + void appendContent(Branch p0); + void clearContent(); + void normalize(); + void setContent(List p0); + void setProcessingInstructions(List p0); +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/CDATA.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/CDATA.java new file mode 100644 index 00000000000..da5b95ff7f6 --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/CDATA.java @@ -0,0 +1,9 @@ +// Generated automatically from org.dom4j.CDATA for testing purposes + +package org.dom4j; + +import org.dom4j.CharacterData; + +public interface CDATA extends CharacterData +{ +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/CharacterData.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/CharacterData.java new file mode 100644 index 00000000000..43a06f456f5 --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/CharacterData.java @@ -0,0 +1,10 @@ +// Generated automatically from org.dom4j.CharacterData for testing purposes + +package org.dom4j; + +import org.dom4j.Node; + +public interface CharacterData extends Node +{ + void appendText(String p0); +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Comment.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Comment.java new file mode 100644 index 00000000000..c6382d5f7cf --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Comment.java @@ -0,0 +1,9 @@ +// Generated automatically from org.dom4j.Comment for testing purposes + +package org.dom4j; + +import org.dom4j.CharacterData; + +public interface Comment extends CharacterData +{ +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Document.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Document.java index 234048883a0..8341f53ff4b 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Document.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Document.java @@ -1,55 +1,24 @@ -/* - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - * - * This software is open source. - * See the bottom of this file for the licence. - */ - -/* - * Adapted from DOM4J version 2.1.1 as available at - * https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar - * Only relevant stubs of this file have been retained for test purposes. - */ +// Generated automatically from org.dom4j.Document for testing purposes package org.dom4j; -public interface Document extends Branch { +import java.util.Map; +import org.dom4j.Branch; +import org.dom4j.DocumentType; +import org.dom4j.Element; +import org.xml.sax.EntityResolver; +public interface Document extends Branch +{ + Document addComment(String p0); + Document addDocType(String p0, String p1, String p2); + Document addProcessingInstruction(String p0, Map p1); + Document addProcessingInstruction(String p0, String p1); + DocumentType getDocType(); + Element getRootElement(); + EntityResolver getEntityResolver(); + String getXMLEncoding(); + void setDocType(DocumentType p0); + void setEntityResolver(EntityResolver p0); + void setRootElement(Element p0); } - -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. - * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. - * - * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org - * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/DocumentFactory.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/DocumentFactory.java index b7a50a5cfef..d433362a7f4 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/DocumentFactory.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/DocumentFactory.java @@ -1,118 +1,62 @@ -/* - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - * - * This software is open source. - * See the bottom of this file for the licence. - */ - -/* -* Adapted from DOM4J version 2.1.1 as available at -* https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar -* Only relevant stubs of this file have been retained for test purposes. -*/ +// Generated automatically from org.dom4j.DocumentFactory for testing purposes package org.dom4j; import java.io.Serializable; +import java.util.List; import java.util.Map; - +import org.dom4j.Attribute; +import org.dom4j.CDATA; +import org.dom4j.Comment; +import org.dom4j.Document; +import org.dom4j.DocumentType; +import org.dom4j.Element; +import org.dom4j.Entity; +import org.dom4j.Namespace; +import org.dom4j.NodeFilter; +import org.dom4j.ProcessingInstruction; +import org.dom4j.QName; +import org.dom4j.Text; +import org.dom4j.XPath; import org.dom4j.rule.Pattern; +import org.dom4j.tree.QNameCache; import org.jaxen.VariableContext; -public class DocumentFactory implements Serializable { - public DocumentFactory() { - } - - public static synchronized DocumentFactory getInstance() { - return null; - } - - public Document createDocument() { - return null; - } - - public Document createDocument(String encoding) { - return null; - } - - public Document createDocument(Element rootElement) { - return null; - } - - public Element createElement(String name) { - return null; - } - - public Element createElement(String qualifiedName, String namespaceURI) { - return null; - } - - public Namespace createNamespace(String prefix, String uri) { - return null; - } - - public XPath createXPath(String xpathExpression) throws InvalidXPathException { - return null; - } - - public XPath createXPath(String xpathExpression, VariableContext variableContext) { - return null; - } - - public NodeFilter createXPathFilter(String xpathFilterExpression, VariableContext variableContext) { - return null; - } - - public NodeFilter createXPathFilter(String xpathFilterExpression) { - return null; - } - - public Pattern createPattern(String xpathPattern) { - return null; - } - - public Map getXPathNamespaceURIs() { - return null; - } - - public void setXPathNamespaceURIs(Map namespaceURIs) { - } - +public class DocumentFactory implements Serializable +{ + protected QName intern(QName p0){ return null; } + protected QNameCache cache = null; + protected QNameCache createQNameCache(){ return null; } + protected static DocumentFactory createSingleton(String p0){ return null; } + protected void init(){} + public Attribute createAttribute(Element p0, QName p1, String p2){ return null; } + public Attribute createAttribute(Element p0, String p1, String p2){ return null; } + public CDATA createCDATA(String p0){ return null; } + public Comment createComment(String p0){ return null; } + public Document createDocument(){ return null; } + public Document createDocument(Element p0){ return null; } + public Document createDocument(String p0){ return null; } + public DocumentFactory(){} + public DocumentType createDocType(String p0, String p1, String p2){ return null; } + public Element createElement(QName p0){ return null; } + public Element createElement(String p0){ return null; } + public Element createElement(String p0, String p1){ return null; } + public Entity createEntity(String p0, String p1){ return null; } + public List getQNames(){ return null; } + public Map getXPathNamespaceURIs(){ return null; } + public Namespace createNamespace(String p0, String p1){ return null; } + public NodeFilter createXPathFilter(String p0){ return null; } + public NodeFilter createXPathFilter(String p0, VariableContext p1){ return null; } + public Pattern createPattern(String p0){ return null; } + public ProcessingInstruction createProcessingInstruction(String p0, Map p1){ return null; } + public ProcessingInstruction createProcessingInstruction(String p0, String p1){ return null; } + public QName createQName(String p0){ return null; } + public QName createQName(String p0, Namespace p1){ return null; } + public QName createQName(String p0, String p1){ return null; } + public QName createQName(String p0, String p1, String p2){ return null; } + public Text createText(String p0){ return null; } + public XPath createXPath(String p0){ return null; } + public XPath createXPath(String p0, VariableContext p1){ return null; } + public static DocumentFactory getInstance(){ return null; } + public void setXPathNamespaceURIs(Map p0){} } - -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. - * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. - * - * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org - * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/DocumentType.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/DocumentType.java new file mode 100644 index 00000000000..76e5a15a4fd --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/DocumentType.java @@ -0,0 +1,20 @@ +// Generated automatically from org.dom4j.DocumentType for testing purposes + +package org.dom4j; + +import java.util.List; +import org.dom4j.Node; + +public interface DocumentType extends Node +{ + List getExternalDeclarations(); + List getInternalDeclarations(); + String getElementName(); + String getPublicID(); + String getSystemID(); + void setElementName(String p0); + void setExternalDeclarations(List p0); + void setInternalDeclarations(List p0); + void setPublicID(String p0); + void setSystemID(String p0); +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Element.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Element.java index a702debc0cd..df9a8a94d90 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Element.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Element.java @@ -1,140 +1,88 @@ -/* - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - * - * This software is open source. - * See the bottom of this file for the licence. - */ +// Generated automatically from org.dom4j.Element for testing purposes -/* -* Adapted from DOM4J version 2.1.1 as available at -* https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar -* Only relevant stubs of this file have been retained for test purposes. -*/ package org.dom4j; import java.util.Iterator; import java.util.List; import java.util.Map; +import org.dom4j.Attribute; +import org.dom4j.Branch; +import org.dom4j.CDATA; +import org.dom4j.Entity; +import org.dom4j.Namespace; +import org.dom4j.Node; +import org.dom4j.QName; +import org.dom4j.Text; -public interface Element extends Branch { - - Namespace getNamespace(); - - Namespace getNamespaceForPrefix(String prefix); - - Namespace getNamespaceForURI(String uri); - - List getNamespacesForURI(String uri); - - String getNamespacePrefix(); - - String getNamespaceURI(); - - String getQualifiedName(); - - List additionalNamespaces(); - - List declaredNamespaces(); - - Element addAttribute(String name, String value); - - Element addComment(String comment); - - Element addCDATA(String cdata); - - Element addEntity(String name, String text); - - Element addNamespace(String prefix, String uri); - - Element addProcessingInstruction(String target, String text); - - Element addProcessingInstruction(String target, Map data); - - Element addText(String text); - - void add(Namespace namespace); - - String getText(); - - String getTextTrim(); - - String getStringValue(); - - Object getData(); - - void setData(Object data); - - int attributeCount(); - - String attributeValue(String name); - - String attributeValue(String name, String defaultValue); - - void setAttributeValue(String name, String value); - - Element element(String name); - - List elements(); - - List elements(String name); - - Iterator elementIterator(); - - Iterator elementIterator(String name); - - boolean isRootElement(); - - boolean hasMixedContent(); - - boolean isTextOnly(); - - void appendAttributes(Element element); - - Element createCopy(); - - Element createCopy(String name); - - String elementText(String name); - - String elementTextTrim(String name); - - Node getXPathResult(int index); - +public interface Element extends Branch +{ + Attribute attribute(QName p0); + Attribute attribute(String p0); + Attribute attribute(int p0); + Element addAttribute(QName p0, String p1); + Element addAttribute(String p0, String p1); + Element addCDATA(String p0); + Element addComment(String p0); + Element addEntity(String p0, String p1); + Element addNamespace(String p0, String p1); + Element addProcessingInstruction(String p0, Map p1); + Element addProcessingInstruction(String p0, String p1); + Element addText(String p0); + Element createCopy(); + Element createCopy(QName p0); + Element createCopy(String p0); + Element element(QName p0); + Element element(String p0); + Iterator attributeIterator(); + Iterator elementIterator(); + Iterator elementIterator(QName p0); + Iterator elementIterator(String p0); + List additionalNamespaces(); + List attributes(); + List declaredNamespaces(); + List elements(); + List elements(QName p0); + List elements(String p0); + List getNamespacesForURI(String p0); + Namespace getNamespace(); + Namespace getNamespaceForPrefix(String p0); + Namespace getNamespaceForURI(String p0); + Node getXPathResult(int p0); + Object getData(); + QName getQName(); + QName getQName(String p0); + String attributeValue(QName p0); + String attributeValue(QName p0, String p1); + String attributeValue(String p0); + String attributeValue(String p0, String p1); + String elementText(QName p0); + String elementText(String p0); + String elementTextTrim(QName p0); + String elementTextTrim(String p0); + String getNamespacePrefix(); + String getNamespaceURI(); + String getQualifiedName(); + String getStringValue(); + String getText(); + String getTextTrim(); + boolean hasMixedContent(); + boolean isRootElement(); + boolean isTextOnly(); + boolean remove(Attribute p0); + boolean remove(CDATA p0); + boolean remove(Entity p0); + boolean remove(Namespace p0); + boolean remove(Text p0); + int attributeCount(); + void add(Attribute p0); + void add(CDATA p0); + void add(Entity p0); + void add(Namespace p0); + void add(Text p0); + void appendAttributes(Element p0); + void setAttributeValue(QName p0, String p1); + void setAttributeValue(String p0, String p1); + void setAttributes(List p0); + void setData(Object p0); + void setQName(QName p0); } - -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. - * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. - * - * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org - * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Entity.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Entity.java new file mode 100644 index 00000000000..ced1d9c2f59 --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Entity.java @@ -0,0 +1,9 @@ +// Generated automatically from org.dom4j.Entity for testing purposes + +package org.dom4j; + +import org.dom4j.Node; + +public interface Entity extends Node +{ +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Namespace.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Namespace.java index e8539bc788b..17ce68e2646 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Namespace.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Namespace.java @@ -1,119 +1,35 @@ -/* - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - * - * This software is open source. - * See the bottom of this file for the licence. - */ - -/* -* Adapted from DOM4J version 2.1.1 as available at -* https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar -* Only relevant stubs of this file have been retained for test purposes. -*/ +// Generated automatically from org.dom4j.Namespace for testing purposes package org.dom4j; +import org.dom4j.Element; +import org.dom4j.Node; +import org.dom4j.Visitor; import org.dom4j.tree.AbstractNode; +import org.dom4j.tree.NamespaceCache; -public class Namespace extends AbstractNode { - - public Namespace(String prefix, String uri) { - } - - public static Namespace get(String prefix, String uri) { - return null; - } - - public static Namespace get(String uri) { - return null; - } - - public short getNodeType() { - return 0; - } - - public int hashCode() { - return 0; - } - - public boolean equals(Object object) { - return false; - } - - public String getText() { - return null; - } - - public String getStringValue() { - return null; - } - - public String getPrefix() { - return null; - } - - public String getURI() { - return null; - } - - public String getXPathNameStep() { - return null; - } - - public String getPath(Element context) { - return null; - } - - public String getUniquePath(Element context) { - return null; - } - - public String toString() { - return null; - } - - public String asXML() { - return null; - } - - public void accept(Visitor visitor) { - } - +public class Namespace extends AbstractNode +{ + protected Namespace() {} + protected Node createXPathResult(Element p0){ return null; } + protected int createHashCode(){ return 0; } + protected static NamespaceCache cache = null; + public Namespace(String p0, String p1){} + public String asXML(){ return null; } + public String getPath(Element p0){ return null; } + public String getPrefix(){ return null; } + public String getStringValue(){ return null; } + public String getText(){ return null; } + public String getURI(){ return null; } + public String getUniquePath(Element p0){ return null; } + public String getXPathNameStep(){ return null; } + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public int hashCode(){ return 0; } + public short getNodeType(){ return 0; } + public static Namespace NO_NAMESPACE = null; + public static Namespace XML_NAMESPACE = null; + public static Namespace get(String p0){ return null; } + public static Namespace get(String p0, String p1){ return null; } + public void accept(Visitor p0){} } - -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. - * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. - * - * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org - * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Node.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Node.java index dfc47088026..7ec5e8f9fff 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Node.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Node.java @@ -1,75 +1,60 @@ -/* - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - * - * This software is open source. - * See the bottom of this file for the licence. - */ - -/* -* Adapted from DOM4J version 2.1.1 as available at -* https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar -* Only relevant stubs of this file have been retained for test purposes. -*/ +// Generated automatically from org.dom4j.Node for testing purposes package org.dom4j; +import java.io.Writer; import java.util.List; +import org.dom4j.Document; +import org.dom4j.Element; +import org.dom4j.Visitor; +import org.dom4j.XPath; -public interface Node extends Cloneable { - - List selectNodes(String xpathExpression); - - Object selectObject(String xpathExpression); - - List selectNodes(String xpathExpression, String comparisonXPathExpression); - - List selectNodes(String xpathExpression, String comparisonXPathExpression, boolean removeDuplicates); - - Node selectSingleNode(String xpathExpression); - - String valueOf(String xpathExpression); - - Number numberValueOf(String xpathExpression); - - boolean matches(String xpathExpression); - - XPath createXPath(String xpathExpression) throws InvalidXPathException; - +public interface Node extends Cloneable +{ + Document getDocument(); + Element getParent(); + List selectNodes(String p0); + List selectNodes(String p0, String p1); + List selectNodes(String p0, String p1, boolean p2); + Node asXPathResult(Element p0); + Node detach(); + Node selectSingleNode(String p0); + Number numberValueOf(String p0); + Object clone(); + Object selectObject(String p0); + String asXML(); + String getName(); + String getNodeTypeName(); + String getPath(); + String getPath(Element p0); + String getStringValue(); + String getText(); + String getUniquePath(); + String getUniquePath(Element p0); + String valueOf(String p0); + XPath createXPath(String p0); + boolean hasContent(); + boolean isReadOnly(); + boolean matches(String p0); + boolean supportsParent(); + short getNodeType(); + static short ANY_NODE = 0; + static short ATTRIBUTE_NODE = 0; + static short CDATA_SECTION_NODE = 0; + static short COMMENT_NODE = 0; + static short DOCUMENT_NODE = 0; + static short DOCUMENT_TYPE_NODE = 0; + static short ELEMENT_NODE = 0; + static short ENTITY_REFERENCE_NODE = 0; + static short MAX_NODE_TYPE = 0; + static short NAMESPACE_NODE = 0; + static short PROCESSING_INSTRUCTION_NODE = 0; + static short TEXT_NODE = 0; + static short UNKNOWN_NODE = 0; + void accept(Visitor p0); + void setDocument(Document p0); + void setName(String p0); + void setParent(Element p0); + void setText(String p0); + void write(Writer p0); } - -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. - * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. - * - * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org - * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/NodeFilter.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/NodeFilter.java index 782e9dae66c..d844aaf9c85 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/NodeFilter.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/NodeFilter.java @@ -1,56 +1,10 @@ -/* - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - * - * This software is open source. - * See the bottom of this file for the licence. - */ - -/* -* Adapted from DOM4J version 2.1.1 as available at -* https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar -* Only relevant stubs of this file have been retained for test purposes. -*/ +// Generated automatically from org.dom4j.NodeFilter for testing purposes package org.dom4j; -public interface NodeFilter { - boolean matches(Node node); +import org.dom4j.Node; +public interface NodeFilter +{ + boolean matches(Node p0); } - -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. - * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. - * - * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org - * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/ProcessingInstruction.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/ProcessingInstruction.java new file mode 100644 index 00000000000..ab83b2a76d2 --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/ProcessingInstruction.java @@ -0,0 +1,18 @@ +// Generated automatically from org.dom4j.ProcessingInstruction for testing purposes + +package org.dom4j; + +import java.util.Map; +import org.dom4j.Node; + +public interface ProcessingInstruction extends Node +{ + Map getValues(); + String getTarget(); + String getText(); + String getValue(String p0); + boolean removeValue(String p0); + void setTarget(String p0); + void setValue(String p0, String p1); + void setValues(Map p0); +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/QName.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/QName.java new file mode 100644 index 00000000000..9d6d88223af --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/QName.java @@ -0,0 +1,31 @@ +// Generated automatically from org.dom4j.QName for testing purposes + +package org.dom4j; + +import java.io.Serializable; +import org.dom4j.DocumentFactory; +import org.dom4j.Namespace; + +public class QName implements Serializable +{ + protected QName() {} + protected static ThreadLocal cachePerThread = null; + public DocumentFactory getDocumentFactory(){ return null; } + public Namespace getNamespace(){ return null; } + public QName(String p0){} + public QName(String p0, Namespace p1){} + public QName(String p0, Namespace p1, String p2){} + public String getName(){ return null; } + public String getNamespacePrefix(){ return null; } + public String getNamespaceURI(){ return null; } + public String getQualifiedName(){ return null; } + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public int hashCode(){ return 0; } + public static QName get(String p0){ return null; } + public static QName get(String p0, Namespace p1){ return null; } + public static QName get(String p0, Namespace p1, String p2){ return null; } + public static QName get(String p0, String p1){ return null; } + public static QName get(String p0, String p1, String p2){ return null; } + public void setDocumentFactory(DocumentFactory p0){} +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Text.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Text.java new file mode 100644 index 00000000000..fbae297121e --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Text.java @@ -0,0 +1,9 @@ +// Generated automatically from org.dom4j.Text for testing purposes + +package org.dom4j; + +import org.dom4j.CharacterData; + +public interface Text extends CharacterData +{ +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Visitor.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Visitor.java index b8f55de44e4..e7dc7e6b836 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Visitor.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/Visitor.java @@ -1,60 +1,28 @@ -/* - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - * - * This software is open source. - * See the bottom of this file for the licence. - */ - -/* -* Adapted from DOM4J version 2.1.1 as available at -* https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar -* Only relevant stubs of this file have been retained for test purposes. -*/ +// Generated automatically from org.dom4j.Visitor for testing purposes package org.dom4j; -public interface Visitor { - void visit(Document document); - - void visit(Element node); - - void visit(Namespace namespace); +import org.dom4j.Attribute; +import org.dom4j.CDATA; +import org.dom4j.Comment; +import org.dom4j.Document; +import org.dom4j.DocumentType; +import org.dom4j.Element; +import org.dom4j.Entity; +import org.dom4j.Namespace; +import org.dom4j.ProcessingInstruction; +import org.dom4j.Text; +public interface Visitor +{ + void visit(Attribute p0); + void visit(CDATA p0); + void visit(Comment p0); + void visit(Document p0); + void visit(DocumentType p0); + void visit(Element p0); + void visit(Entity p0); + void visit(Namespace p0); + void visit(ProcessingInstruction p0); + void visit(Text p0); } - -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. - * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. - * - * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org - * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/XPath.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/XPath.java index 64147c75a13..90f755f882a 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/XPath.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/XPath.java @@ -1,86 +1,35 @@ -/* - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - * - * This software is open source. - * See the bottom of this file for the licence. - */ - -/* -* Adapted from DOM4J version 2.1.1 as available at -* https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar -* Only relevant stubs of this file have been retained for test purposes. -*/ +// Generated automatically from org.dom4j.XPath for testing purposes package org.dom4j; import java.util.List; import java.util.Map; +import org.dom4j.Node; +import org.dom4j.NodeFilter; +import org.jaxen.FunctionContext; +import org.jaxen.NamespaceContext; +import org.jaxen.VariableContext; -public interface XPath extends NodeFilter { - String getText(); - - boolean matches(Node node); - - Object evaluate(Object context); - - Object selectObject(Object context); - - List selectNodes(Object context); - - List selectNodes(Object context, XPath sortXPath); - - List selectNodes(Object context, XPath sortXPath, boolean distinct); - - Node selectSingleNode(Object context); - - String valueOf(Object context); - - Number numberValueOf(Object context); - - boolean booleanValueOf(Object context); - - void sort(List list); - - void sort(List list, boolean distinct); - - void setNamespaceURIs(Map map); - - void setVariableContext(org.jaxen.VariableContext variableContext); +public interface XPath extends NodeFilter +{ + FunctionContext getFunctionContext(); + List selectNodes(Object p0); + List selectNodes(Object p0, XPath p1); + List selectNodes(Object p0, XPath p1, boolean p2); + NamespaceContext getNamespaceContext(); + Node selectSingleNode(Object p0); + Number numberValueOf(Object p0); + Object evaluate(Object p0); + Object selectObject(Object p0); + String getText(); + String valueOf(Object p0); + VariableContext getVariableContext(); + boolean booleanValueOf(Object p0); + boolean matches(Node p0); + void setFunctionContext(FunctionContext p0); + void setNamespaceContext(NamespaceContext p0); + void setNamespaceURIs(Map p0); + void setVariableContext(VariableContext p0); + void sort(List p0); + void sort(List p0, boolean p1); } - -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. - * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. - * - * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org - * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/io/OutputFormat.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/io/OutputFormat.java new file mode 100644 index 00000000000..b771b40cf00 --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/io/OutputFormat.java @@ -0,0 +1,44 @@ +// Generated automatically from org.dom4j.io.OutputFormat for testing purposes + +package org.dom4j.io; + + +public class OutputFormat implements Cloneable +{ + protected static String STANDARD_INDENT = null; + public OutputFormat(){} + public OutputFormat(String p0){} + public OutputFormat(String p0, boolean p1){} + public OutputFormat(String p0, boolean p1, String p2){} + public String getEncoding(){ return null; } + public String getIndent(){ return null; } + public String getLineSeparator(){ return null; } + public boolean isExpandEmptyElements(){ return false; } + public boolean isNewLineAfterDeclaration(){ return false; } + public boolean isNewlines(){ return false; } + public boolean isOmitEncoding(){ return false; } + public boolean isPadText(){ return false; } + public boolean isSuppressDeclaration(){ return false; } + public boolean isTrimText(){ return false; } + public boolean isXHTML(){ return false; } + public char getAttributeQuoteCharacter(){ return '0'; } + public int getNewLineAfterNTags(){ return 0; } + public int parseOptions(String[] p0, int p1){ return 0; } + public static OutputFormat createCompactFormat(){ return null; } + public static OutputFormat createPrettyPrint(){ return null; } + public void setAttributeQuoteCharacter(char p0){} + public void setEncoding(String p0){} + public void setExpandEmptyElements(boolean p0){} + public void setIndent(String p0){} + public void setIndent(boolean p0){} + public void setIndentSize(int p0){} + public void setLineSeparator(String p0){} + public void setNewLineAfterDeclaration(boolean p0){} + public void setNewLineAfterNTags(int p0){} + public void setNewlines(boolean p0){} + public void setOmitEncoding(boolean p0){} + public void setPadText(boolean p0){} + public void setSuppressDeclaration(boolean p0){} + public void setTrimText(boolean p0){} + public void setXHTML(boolean p0){} +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/io/XMLWriter.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/io/XMLWriter.java new file mode 100644 index 00000000000..bdffb5d4561 --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/io/XMLWriter.java @@ -0,0 +1,126 @@ +// Generated automatically from org.dom4j.io.XMLWriter for testing purposes + +package org.dom4j.io; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.Writer; +import org.dom4j.Attribute; +import org.dom4j.CDATA; +import org.dom4j.Comment; +import org.dom4j.Document; +import org.dom4j.DocumentType; +import org.dom4j.Element; +import org.dom4j.Entity; +import org.dom4j.Namespace; +import org.dom4j.Node; +import org.dom4j.ProcessingInstruction; +import org.dom4j.Text; +import org.dom4j.io.OutputFormat; +import org.xml.sax.Attributes; +import org.xml.sax.InputSource; +import org.xml.sax.Locator; +import org.xml.sax.ext.LexicalHandler; +import org.xml.sax.helpers.XMLFilterImpl; + +public class XMLWriter extends XMLFilterImpl implements LexicalHandler +{ + protected OutputFormat getOutputFormat(){ return null; } + protected String escapeAttributeEntities(String p0){ return null; } + protected String escapeElementEntities(String p0){ return null; } + protected Writer createWriter(OutputStream p0, String p1){ return null; } + protected Writer writer = null; + protected boolean isExpandEmptyElements(){ return false; } + protected boolean isNamespaceDeclaration(Namespace p0){ return false; } + protected boolean preserve = false; + protected boolean shouldEncodeChar(char p0){ return false; } + protected final boolean isElementSpacePreserved(Element p0){ return false; } + protected int defaultMaximumAllowedCharacter(){ return 0; } + protected int lastOutputNodeType = 0; + protected static OutputFormat DEFAULT_FORMAT = null; + protected static String[] LEXICAL_HANDLER_NAMES = null; + protected void handleException(IOException p0){} + protected void indent(){} + protected void installLexicalHandler(){} + protected void writeAttribute(Attribute p0){} + protected void writeAttribute(Attributes p0, int p1){} + protected void writeAttributes(Attributes p0){} + protected void writeAttributes(Element p0){} + protected void writeCDATA(String p0){} + protected void writeClose(String p0){} + protected void writeComment(String p0){} + protected void writeDeclaration(){} + protected void writeDocType(DocumentType p0){} + protected void writeDocType(String p0, String p1, String p2){} + protected void writeElement(Element p0){} + protected void writeElementContent(Element p0){} + protected void writeEmptyElementClose(String p0){} + protected void writeEntity(Entity p0){} + protected void writeEntityRef(String p0){} + protected void writeEscapeAttributeEntities(String p0){} + protected void writeNamespace(Namespace p0){} + protected void writeNamespace(String p0, String p1){} + protected void writeNamespaces(){} + protected void writeNode(Node p0){} + protected void writeNodeText(Node p0){} + protected void writePrintln(){} + protected void writeProcessingInstruction(ProcessingInstruction p0){} + protected void writeString(String p0){} + public LexicalHandler getLexicalHandler(){ return null; } + public Object getProperty(String p0){ return null; } + public XMLWriter(){} + public XMLWriter(OutputFormat p0){} + public XMLWriter(OutputStream p0){} + public XMLWriter(OutputStream p0, OutputFormat p1){} + public XMLWriter(Writer p0){} + public XMLWriter(Writer p0, OutputFormat p1){} + public boolean isEscapeText(){ return false; } + public boolean resolveEntityRefs(){ return false; } + public int getMaximumAllowedCharacter(){ return 0; } + public void characters(char[] p0, int p1, int p2){} + public void close(){} + public void comment(char[] p0, int p1, int p2){} + public void endCDATA(){} + public void endDTD(){} + public void endDocument(){} + public void endElement(String p0, String p1, String p2){} + public void endEntity(String p0){} + public void endPrefixMapping(String p0){} + public void flush(){} + public void ignorableWhitespace(char[] p0, int p1, int p2){} + public void notationDecl(String p0, String p1, String p2){} + public void parse(InputSource p0){} + public void println(){} + public void processingInstruction(String p0, String p1){} + public void setDocumentLocator(Locator p0){} + public void setEscapeText(boolean p0){} + public void setIndentLevel(int p0){} + public void setLexicalHandler(LexicalHandler p0){} + public void setMaximumAllowedCharacter(int p0){} + public void setOutputStream(OutputStream p0){} + public void setProperty(String p0, Object p1){} + public void setResolveEntityRefs(boolean p0){} + public void setWriter(Writer p0){} + public void startCDATA(){} + public void startDTD(String p0, String p1, String p2){} + public void startDocument(){} + public void startElement(String p0, String p1, String p2, Attributes p3){} + public void startEntity(String p0){} + public void startPrefixMapping(String p0, String p1){} + public void unparsedEntityDecl(String p0, String p1, String p2, String p3){} + public void write(Attribute p0){} + public void write(CDATA p0){} + public void write(Comment p0){} + public void write(Document p0){} + public void write(DocumentType p0){} + public void write(Element p0){} + public void write(Entity p0){} + public void write(Namespace p0){} + public void write(Node p0){} + public void write(Object p0){} + public void write(ProcessingInstruction p0){} + public void write(String p0){} + public void write(Text p0){} + public void writeClose(Element p0){} + public void writeOpen(Element p0){} +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/rule/Pattern.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/rule/Pattern.java index bf08c6cfd0a..f30b294bc5f 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/rule/Pattern.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/rule/Pattern.java @@ -1,67 +1,19 @@ -/* - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - * - * This software is open source. - * See the bottom of this file for the licence. - */ - -/* -* Adapted from DOM4J version 2.1.1 as available at -* https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar -* Only relevant stubs of this file have been retained for test purposes. -*/ +// Generated automatically from org.dom4j.rule.Pattern for testing purposes package org.dom4j.rule; import org.dom4j.Node; import org.dom4j.NodeFilter; -public interface Pattern extends NodeFilter { - boolean matches(Node node); - - double getPriority(); - +public interface Pattern extends NodeFilter +{ Pattern[] getUnionPatterns(); - - short getMatchType(); - String getMatchesNodeName(); - + boolean matches(Node p0); + double getPriority(); + short getMatchType(); + static double DEFAULT_PRIORITY = 0; + static short ANY_NODE = 0; + static short NONE = 0; + static short NUMBER_OF_TYPES = 0; } - -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. - * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. - * - * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org - * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/AbstractNode.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/AbstractNode.java index 29ca5198145..d3dfc09f336 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/AbstractNode.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/AbstractNode.java @@ -1,183 +1,53 @@ -/* - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - * - * This software is open source. - * See the bottom of this file for the licence. - */ - -/* -* Adapted from DOM4J version 2.1.1 as available at -* https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar -* Only relevant stubs of this file have been retained for test purposes. -*/ +// Generated automatically from org.dom4j.tree.AbstractNode for testing purposes package org.dom4j.tree; -import org.dom4j.*; -import org.dom4j.rule.Pattern; -import java.io.IOException; import java.io.Serializable; import java.io.Writer; import java.util.List; +import org.dom4j.Document; +import org.dom4j.DocumentFactory; +import org.dom4j.Element; +import org.dom4j.Node; +import org.dom4j.NodeFilter; +import org.dom4j.XPath; +import org.dom4j.rule.Pattern; -public abstract class AbstractNode implements Node, Cloneable, Serializable { - public AbstractNode() { - } - - public short getNodeType() { - return 0; - } - - public String getNodeTypeName() { - return null; - } - - public Document getDocument() { - return null; - } - - public void setDocument(Document document) { - } - - public Element getParent() { - return null; - } - - public void setParent(Element parent) { - } - - public boolean supportsParent() { - return false; - } - - public boolean isReadOnly() { - return false; - } - - public boolean hasContent() { - return false; - } - - public String getPath() { - return null; - } - - public String getUniquePath() { - return null; - } - - public Object clone() { - return null; - } - - public Node detach() { - return null; - } - - public String getName() { - return null; - } - - public void setName(String name) { - } - - public String getText() { - return null; - } - - public String getStringValue() { - return null; - } - - public void setText(String text) { - } - - public void write(Writer writer) throws IOException { - } - - public Object selectObject(String xpathExpression) { - return null; - } - - public List selectNodes(String xpathExpression) { - return null; - } - - public List selectNodes(String xpathExpression, String comparisonXPathExpression) { - return null; - } - - public List selectNodes(String xpathExpression, String comparisonXPathExpression, boolean removeDuplicates) { - return null; - } - - public Node selectSingleNode(String xpathExpression) { - return null; - } - - public String valueOf(String xpathExpression) { - return null; - } - - public Number numberValueOf(String xpathExpression) { - return null; - } - - public boolean matches(String patternText) { - return false; - } - - public XPath createXPath(String xpathExpression) { - return null; - } - - public NodeFilter createXPathFilter(String patternText) { - return null; - } - - public Pattern createPattern(String patternText) { - return null; - } - - public Node asXPathResult(Element parent) { - return null; - } - +abstract public class AbstractNode implements Cloneable, Node, Serializable +{ + protected DocumentFactory getDocumentFactory(){ return null; } + protected Node createXPathResult(Element p0){ return null; } + protected static String[] NODE_TYPE_NAMES = null; + public AbstractNode(){} + public Document getDocument(){ return null; } + public Element getParent(){ return null; } + public List selectNodes(String p0){ return null; } + public List selectNodes(String p0, String p1){ return null; } + public List selectNodes(String p0, String p1, boolean p2){ return null; } + public Node asXPathResult(Element p0){ return null; } + public Node detach(){ return null; } + public Node selectSingleNode(String p0){ return null; } + public NodeFilter createXPathFilter(String p0){ return null; } + public Number numberValueOf(String p0){ return null; } + public Object clone(){ return null; } + public Object selectObject(String p0){ return null; } + public Pattern createPattern(String p0){ return null; } + public String getName(){ return null; } + public String getNodeTypeName(){ return null; } + public String getPath(){ return null; } + public String getStringValue(){ return null; } + public String getText(){ return null; } + public String getUniquePath(){ return null; } + public String valueOf(String p0){ return null; } + public XPath createXPath(String p0){ return null; } + public boolean hasContent(){ return false; } + public boolean isReadOnly(){ return false; } + public boolean matches(String p0){ return false; } + public boolean supportsParent(){ return false; } + public short getNodeType(){ return 0; } + public void setDocument(Document p0){} + public void setName(String p0){} + public void setParent(Element p0){} + public void setText(String p0){} + public void write(Writer p0){} } - -/* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: - * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. - * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. - * - * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org - * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/NamespaceCache.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/NamespaceCache.java new file mode 100644 index 00000000000..b998094483f --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/NamespaceCache.java @@ -0,0 +1,17 @@ +// Generated automatically from org.dom4j.tree.NamespaceCache for testing purposes + +package org.dom4j.tree; + +import java.util.Map; +import org.dom4j.Namespace; + +public class NamespaceCache +{ + protected Map getURICache(String p0){ return null; } + protected Namespace createNamespace(String p0, String p1){ return null; } + protected static Map cache = null; + protected static Map noPrefixCache = null; + public Namespace get(String p0){ return null; } + public Namespace get(String p0, String p1){ return null; } + public NamespaceCache(){} +} diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/QNameCache.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/QNameCache.java new file mode 100644 index 00000000000..c4e553a9148 --- /dev/null +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/tree/QNameCache.java @@ -0,0 +1,28 @@ +// Generated automatically from org.dom4j.tree.QNameCache for testing purposes + +package org.dom4j.tree; + +import java.util.List; +import java.util.Map; +import org.dom4j.DocumentFactory; +import org.dom4j.Namespace; +import org.dom4j.QName; + +public class QNameCache +{ + protected Map createMap(){ return null; } + protected Map getNamespaceCache(Namespace p0){ return null; } + protected Map namespaceCache = null; + protected Map noNamespaceCache = null; + protected QName createQName(String p0){ return null; } + protected QName createQName(String p0, Namespace p1){ return null; } + protected QName createQName(String p0, Namespace p1, String p2){ return null; } + public List getQNames(){ return null; } + public QName get(String p0){ return null; } + public QName get(String p0, Namespace p1){ return null; } + public QName get(String p0, Namespace p1, String p2){ return null; } + public QName get(String p0, String p1){ return null; } + public QName intern(QName p0){ return null; } + public QNameCache(){} + public QNameCache(DocumentFactory p0){} +} diff --git a/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Context.java b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Context.java new file mode 100644 index 00000000000..9fc4e388b53 --- /dev/null +++ b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Context.java @@ -0,0 +1,28 @@ +// Generated automatically from org.jaxen.Context for testing purposes + +package org.jaxen; + +import java.io.Serializable; +import java.util.List; +import org.jaxen.ContextSupport; +import org.jaxen.Function; +import org.jaxen.Navigator; + +public class Context implements Serializable +{ + protected Context() {} + public Context duplicate(){ return null; } + public Context(ContextSupport p0){} + public ContextSupport getContextSupport(){ return null; } + public Function getFunction(String p0, String p1, String p2){ return null; } + public List getNodeSet(){ return null; } + public Navigator getNavigator(){ return null; } + public Object getVariableValue(String p0, String p1, String p2){ return null; } + public String translateNamespacePrefixToUri(String p0){ return null; } + public int getPosition(){ return 0; } + public int getSize(){ return 0; } + public void setContextSupport(ContextSupport p0){} + public void setNodeSet(List p0){} + public void setPosition(int p0){} + public void setSize(int p0){} +} diff --git a/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/ContextSupport.java b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/ContextSupport.java new file mode 100644 index 00000000000..97af9fc9f1c --- /dev/null +++ b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/ContextSupport.java @@ -0,0 +1,26 @@ +// Generated automatically from org.jaxen.ContextSupport for testing purposes + +package org.jaxen; + +import java.io.Serializable; +import org.jaxen.Function; +import org.jaxen.FunctionContext; +import org.jaxen.NamespaceContext; +import org.jaxen.Navigator; +import org.jaxen.VariableContext; + +public class ContextSupport implements Serializable +{ + public ContextSupport(){} + public ContextSupport(NamespaceContext p0, FunctionContext p1, VariableContext p2, Navigator p3){} + public Function getFunction(String p0, String p1, String p2){ return null; } + public FunctionContext getFunctionContext(){ return null; } + public NamespaceContext getNamespaceContext(){ return null; } + public Navigator getNavigator(){ return null; } + public Object getVariableValue(String p0, String p1, String p2){ return null; } + public String translateNamespacePrefixToUri(String p0){ return null; } + public VariableContext getVariableContext(){ return null; } + public void setFunctionContext(FunctionContext p0){} + public void setNamespaceContext(NamespaceContext p0){} + public void setVariableContext(VariableContext p0){} +} diff --git a/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Function.java b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Function.java new file mode 100644 index 00000000000..50de747276f --- /dev/null +++ b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Function.java @@ -0,0 +1,11 @@ +// Generated automatically from org.jaxen.Function for testing purposes + +package org.jaxen; + +import java.util.List; +import org.jaxen.Context; + +public interface Function +{ + Object call(Context p0, List p1); +} diff --git a/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/FunctionContext.java b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/FunctionContext.java new file mode 100644 index 00000000000..a47e35ccb85 --- /dev/null +++ b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/FunctionContext.java @@ -0,0 +1,10 @@ +// Generated automatically from org.jaxen.FunctionContext for testing purposes + +package org.jaxen; + +import org.jaxen.Function; + +public interface FunctionContext +{ + Function getFunction(String p0, String p1, String p2); +} diff --git a/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/NamespaceContext.java b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/NamespaceContext.java new file mode 100644 index 00000000000..e431d8f0523 --- /dev/null +++ b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/NamespaceContext.java @@ -0,0 +1,9 @@ +// Generated automatically from org.jaxen.NamespaceContext for testing purposes + +package org.jaxen; + + +public interface NamespaceContext +{ + String translateNamespacePrefixToUri(String p0); +} diff --git a/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Navigator.java b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Navigator.java new file mode 100644 index 00000000000..9f22bf2ce4a --- /dev/null +++ b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/Navigator.java @@ -0,0 +1,52 @@ +// Generated automatically from org.jaxen.Navigator for testing purposes + +package org.jaxen; + +import java.io.Serializable; +import java.util.Iterator; +import org.jaxen.XPath; + +public interface Navigator extends Serializable +{ + Iterator getAncestorAxisIterator(Object p0); + Iterator getAncestorOrSelfAxisIterator(Object p0); + Iterator getAttributeAxisIterator(Object p0); + Iterator getChildAxisIterator(Object p0); + Iterator getDescendantAxisIterator(Object p0); + Iterator getDescendantOrSelfAxisIterator(Object p0); + Iterator getFollowingAxisIterator(Object p0); + Iterator getFollowingSiblingAxisIterator(Object p0); + Iterator getNamespaceAxisIterator(Object p0); + Iterator getParentAxisIterator(Object p0); + Iterator getPrecedingAxisIterator(Object p0); + Iterator getPrecedingSiblingAxisIterator(Object p0); + Iterator getSelfAxisIterator(Object p0); + Object getDocument(String p0); + Object getDocumentNode(Object p0); + Object getElementById(Object p0, String p1); + Object getParentNode(Object p0); + String getAttributeName(Object p0); + String getAttributeNamespaceUri(Object p0); + String getAttributeQName(Object p0); + String getAttributeStringValue(Object p0); + String getCommentStringValue(Object p0); + String getElementName(Object p0); + String getElementNamespaceUri(Object p0); + String getElementQName(Object p0); + String getElementStringValue(Object p0); + String getNamespacePrefix(Object p0); + String getNamespaceStringValue(Object p0); + String getProcessingInstructionData(Object p0); + String getProcessingInstructionTarget(Object p0); + String getTextStringValue(Object p0); + String translateNamespacePrefixToUri(String p0, Object p1); + XPath parseXPath(String p0); + boolean isAttribute(Object p0); + boolean isComment(Object p0); + boolean isDocument(Object p0); + boolean isElement(Object p0); + boolean isNamespace(Object p0); + boolean isProcessingInstruction(Object p0); + boolean isText(Object p0); + short getNodeType(Object p0); +} diff --git a/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/VariableContext copy.java b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/VariableContext copy.java new file mode 100644 index 00000000000..9b8e5f3d249 --- /dev/null +++ b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/VariableContext copy.java @@ -0,0 +1,9 @@ +// Generated automatically from org.jaxen.VariableContext for testing purposes + +package org.jaxen; + + +public interface VariableContext +{ + Object getVariableValue(String p0, String p1, String p2); +} diff --git a/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/XPath.java b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/XPath.java new file mode 100644 index 00000000000..8e4262ce3d6 --- /dev/null +++ b/java/ql/test/stubs/jaxen-1.2.0/org/jaxen/XPath.java @@ -0,0 +1,28 @@ +// Generated automatically from org.jaxen.XPath for testing purposes + +package org.jaxen; + +import java.util.List; +import org.jaxen.FunctionContext; +import org.jaxen.NamespaceContext; +import org.jaxen.Navigator; +import org.jaxen.VariableContext; + +public interface XPath +{ + FunctionContext getFunctionContext(); + List selectNodes(Object p0); + NamespaceContext getNamespaceContext(); + Navigator getNavigator(); + Number numberValueOf(Object p0); + Object evaluate(Object p0); + Object selectSingleNode(Object p0); + String stringValueOf(Object p0); + String valueOf(Object p0); + VariableContext getVariableContext(); + boolean booleanValueOf(Object p0); + void addNamespace(String p0, String p1); + void setFunctionContext(FunctionContext p0); + void setNamespaceContext(NamespaceContext p0); + void setVariableContext(VariableContext p0); +} From 6aa9726223c1e8b348371040811dd37c879c7505 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 17:20:31 +0100 Subject: [PATCH 13/22] org.apache.tools.ant tests --- .../CWE-022/semmle/tests/TaintedPath.expected | 389 ++++++++++-------- .../CWE-022/semmle/tests/mad/Test.java | 18 + .../security/CWE-022/semmle/tests/options | 2 +- .../org/apache/tools/ant/AntClassLoader.java | 70 ++++ .../org/apache/tools/ant/BuildEvent.java | 54 +++ .../org/apache/tools/ant/BuildException.java | 22 + .../org/apache/tools/ant/BuildListener.java | 17 + .../apache/tools/ant/DirectoryScanner.java | 80 ++++ .../org/apache/tools/ant/Executor.java | 11 + .../org/apache/tools/ant/FileScanner.java | 23 ++ .../org/apache/tools/ant/Location.java | 21 + .../org/apache/tools/ant/Project.java | 157 +++++++ .../apache/tools/ant/ProjectComponent.java | 23 ++ .../apache/tools/ant/RuntimeConfigurable.java | 39 ++ .../apache/tools/ant/SubBuildListener.java | 12 + .../org/apache/tools/ant/Target.java | 43 ++ .../org/apache/tools/ant/Task.java | 41 ++ .../org/apache/tools/ant/TaskContainer.java | 10 + .../org/apache/tools/ant/UnknownElement.java | 43 ++ .../apache/tools/ant/input/InputHandler.java | 10 + .../apache/tools/ant/input/InputRequest.java | 16 + .../ant/taskdefs/condition/Condition.java | 9 + .../tools/ant/types/AbstractFileSet.java | 115 ++++++ .../apache/tools/ant/types/Comparison.java | 19 + .../org/apache/tools/ant/types/DataType.java | 39 ++ .../org/apache/tools/ant/types/DirSet.java | 21 + .../tools/ant/types/EnumeratedAttribute.java | 18 + .../org/apache/tools/ant/types/FileList.java | 32 ++ .../org/apache/tools/ant/types/FileSet.java | 20 + .../org/apache/tools/ant/types/FilterSet.java | 62 +++ .../org/apache/tools/ant/types/Mapper.java | 41 ++ .../org/apache/tools/ant/types/Parameter.java | 15 + .../tools/ant/types/Parameterizable.java | 10 + .../org/apache/tools/ant/types/Path.java | 65 +++ .../apache/tools/ant/types/PatternSet.java | 42 ++ .../apache/tools/ant/types/PropertySet.java | 56 +++ .../org/apache/tools/ant/types/Reference.java | 18 + .../org/apache/tools/ant/types/Resource.java | 49 +++ .../tools/ant/types/ResourceCollection.java | 14 + .../tools/ant/types/ResourceFactory.java | 10 + .../tools/ant/types/TimeComparison.java | 19 + .../resources/selectors/ResourceSelector.java | 10 + .../ant/types/selectors/AndSelector.java | 13 + .../types/selectors/BaseExtendSelector.java | 17 + .../ant/types/selectors/BaseSelector.java | 18 + .../selectors/BaseSelectorContainer.java | 76 ++++ .../selectors/ContainsRegexpSelector.java | 24 ++ .../ant/types/selectors/ContainsSelector.java | 27 ++ .../ant/types/selectors/DateSelector.java | 35 ++ .../ant/types/selectors/DependSelector.java | 13 + .../ant/types/selectors/DepthSelector.java | 22 + .../types/selectors/DifferentSelector.java | 14 + .../types/selectors/ExecutableSelector.java | 12 + .../types/selectors/ExtendFileSelector.java | 10 + .../ant/types/selectors/ExtendSelector.java | 23 ++ .../ant/types/selectors/FileSelector.java | 13 + .../ant/types/selectors/FilenameSelector.java | 24 ++ .../ant/types/selectors/MajoritySelector.java | 14 + .../ant/types/selectors/MappingSelector.java | 24 ++ .../ant/types/selectors/NoneSelector.java | 13 + .../ant/types/selectors/NotSelector.java | 14 + .../tools/ant/types/selectors/OrSelector.java | 13 + .../ant/types/selectors/OwnedBySelector.java | 14 + .../types/selectors/PosixGroupSelector.java | 14 + .../selectors/PosixPermissionsSelector.java | 14 + .../ant/types/selectors/PresentSelector.java | 26 ++ .../ant/types/selectors/ReadableSelector.java | 12 + .../ant/types/selectors/SelectSelector.java | 27 ++ .../types/selectors/SelectorContainer.java | 53 +++ .../ant/types/selectors/SelectorScanner.java | 12 + .../ant/types/selectors/SizeSelector.java | 33 ++ .../ant/types/selectors/SymlinkSelector.java | 12 + .../ant/types/selectors/TypeSelector.java | 26 ++ .../ant/types/selectors/WritableSelector.java | 12 + .../selectors/modifiedselector/Algorithm.java | 11 + .../selectors/modifiedselector/Cache.java | 16 + .../modifiedselector/ModifiedSelector.java | 74 ++++ .../apache/tools/ant/util/FileNameMapper.java | 11 + 78 files changed, 2388 insertions(+), 183 deletions(-) create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/AntClassLoader.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildEvent.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildException.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildListener.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/DirectoryScanner.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Executor.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/FileScanner.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Location.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Project.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/ProjectComponent.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/RuntimeConfigurable.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/SubBuildListener.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Target.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Task.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/TaskContainer.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/UnknownElement.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/input/InputHandler.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/input/InputRequest.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/condition/Condition.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/AbstractFileSet.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Comparison.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/DataType.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/DirSet.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/EnumeratedAttribute.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FileList.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FileSet.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterSet.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Mapper.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Parameter.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Parameterizable.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Path.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/PatternSet.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/PropertySet.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Reference.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Resource.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/ResourceCollection.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/ResourceFactory.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/TimeComparison.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/resources/selectors/ResourceSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/AndSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseExtendSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseSelectorContainer.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ContainsRegexpSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ContainsSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DateSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DependSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DepthSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DifferentSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExecutableSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExtendFileSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExtendSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/FileSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/FilenameSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/MajoritySelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/MappingSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/NoneSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/NotSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/OrSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/OwnedBySelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PosixGroupSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PosixPermissionsSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PresentSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ReadableSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectorContainer.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectorScanner.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SizeSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SymlinkSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/TypeSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/WritableSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/Algorithm.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/Cache.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileNameMapper.java diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected index dde8aa4cb93..ed83476d7d6 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected @@ -14,82 +14,92 @@ 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:21:16:21:36 | getHostName(...) : String | mad/Test.java:26:61:26:68 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:28:41:28:48 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:30:56:30:63 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:32:46:32:53 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:34:38:34:45 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:36:36:36:43 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:38:31:38:38 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:40:33:40:40 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:42:27:42:34 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:43:27:43:34 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:44:34:44:41 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:46:40:46:47 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:47:48:47:55 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:48:47:48:54 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:50:40:50:47 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:52:38:52:45 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:54:33:54:40 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:56:33:56:40 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:58:41:58:48 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:60:42:60:49 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:62:37:62:44 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:64:29:64:36 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:66:37:66:44 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:68:28:68:35 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:70:33:70:40 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:72:40:72:47 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:74:40:74:47 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:75:40:75:47 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:77:38:77:45 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:79:28:79:35 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:80:28:80:35 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:81:28:81:35 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:83:34:83:41 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:84:34:84:41 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:86:33:86:40 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:88:42:88:49 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:90:50:90:57 | source(...) : String | -| mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:92:54:92:61 | source(...) : String | -| mad/Test.java:26:61:26:68 | source(...) : String | mad/Test.java:26:52:26:68 | (...)... | -| mad/Test.java:28:41:28:48 | source(...) : String | mad/Test.java:28:32:28:48 | (...)... | -| mad/Test.java:30:56:30:63 | source(...) : String | mad/Test.java:30:47:30:63 | (...)... | -| mad/Test.java:32:46:32:53 | source(...) : String | mad/Test.java:32:39:32:53 | (...)... | -| mad/Test.java:34:38:34:45 | source(...) : String | mad/Test.java:34:31:34:45 | (...)... | -| mad/Test.java:36:36:36:43 | source(...) : String | mad/Test.java:36:29:36:43 | (...)... | -| mad/Test.java:38:31:38:38 | source(...) : String | mad/Test.java:38:24:38:38 | (...)... | -| mad/Test.java:40:33:40:40 | source(...) : String | mad/Test.java:40:24:40:40 | (...)... | -| mad/Test.java:42:27:42:34 | source(...) : String | mad/Test.java:42:20:42:34 | (...)... | -| mad/Test.java:43:27:43:34 | source(...) : String | mad/Test.java:43:20:43:34 | (...)... | -| mad/Test.java:44:34:44:41 | source(...) : String | mad/Test.java:44:20:44:41 | (...)... | -| mad/Test.java:46:40:46:47 | source(...) : String | mad/Test.java:46:33:46:47 | (...)... | -| mad/Test.java:47:48:47:55 | source(...) : String | mad/Test.java:47:33:47:55 | (...)... | -| mad/Test.java:48:47:48:54 | source(...) : String | mad/Test.java:48:40:48:54 | (...)... | -| mad/Test.java:50:40:50:47 | source(...) : String | mad/Test.java:50:33:50:47 | (...)... | -| mad/Test.java:52:38:52:45 | source(...) : String | mad/Test.java:52:31:52:45 | (...)... | -| mad/Test.java:54:33:54:40 | source(...) : String | mad/Test.java:54:26:54:40 | (...)... | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:28:61:28:68 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:30:41:30:48 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:32:56:32:63 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:34:46:34:53 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:36:38:36:45 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:38:36:38:43 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:40:31:40:38 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:42:33:42:40 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:44:27:44:34 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:45:27:45:34 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:46:34:46:41 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:48:40:48:47 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:49:48:49:55 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:50:47:50:54 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:52:40:52:47 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:54:38:54:45 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:56:33:56:40 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:58:33:58:40 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:60:41:60:48 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:62:42:62:49 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:64:37:64:44 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:66:29:66:36 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:68:37:68:44 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:70:28:70:35 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:72:33:72:40 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:74:40:74:47 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:76:40:76:47 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:77:40:77:47 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:79:38:79:45 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:81:28:81:35 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:82:28:82:35 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:83:28:83:35 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:85:34:85:41 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:86:34:86:41 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:88:33:88:40 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:90:42:90:49 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:92:50:92:57 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:94:54:94:61 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:99:37:99:44 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:101:74:101:81 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:103:68:103:75 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:105:68:105:75 | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:110:30:110:37 | source(...) : String | +| mad/Test.java:28:61:28:68 | source(...) : String | mad/Test.java:28:52:28:68 | (...)... | +| mad/Test.java:30:41:30:48 | source(...) : String | mad/Test.java:30:32:30:48 | (...)... | +| mad/Test.java:32:56:32:63 | source(...) : String | mad/Test.java:32:47:32:63 | (...)... | +| mad/Test.java:34:46:34:53 | source(...) : String | mad/Test.java:34:39:34:53 | (...)... | +| mad/Test.java:36:38:36:45 | source(...) : String | mad/Test.java:36:31:36:45 | (...)... | +| mad/Test.java:38:36:38:43 | source(...) : String | mad/Test.java:38:29:38:43 | (...)... | +| mad/Test.java:40:31:40:38 | source(...) : String | mad/Test.java:40:24:40:38 | (...)... | +| mad/Test.java:42:33:42:40 | source(...) : String | mad/Test.java:42:24:42:40 | (...)... | +| mad/Test.java:44:27:44:34 | source(...) : String | mad/Test.java:44:20:44:34 | (...)... | +| mad/Test.java:45:27:45:34 | source(...) : String | mad/Test.java:45:20:45:34 | (...)... | +| mad/Test.java:46:34:46:41 | source(...) : String | mad/Test.java:46:20:46:41 | (...)... | +| mad/Test.java:48:40:48:47 | source(...) : String | mad/Test.java:48:33:48:47 | (...)... | +| mad/Test.java:49:48:49:55 | source(...) : String | mad/Test.java:49:33:49:55 | (...)... | +| mad/Test.java:50:47:50:54 | source(...) : String | mad/Test.java:50:40:50:54 | (...)... | +| mad/Test.java:52:40:52:47 | source(...) : String | mad/Test.java:52:33:52:47 | (...)... | +| mad/Test.java:54:38:54:45 | source(...) : String | mad/Test.java:54:31:54:45 | (...)... | | mad/Test.java:56:33:56:40 | source(...) : String | mad/Test.java:56:26:56:40 | (...)... | -| mad/Test.java:58:41:58:48 | source(...) : String | mad/Test.java:58:34:58:48 | (...)... | -| mad/Test.java:60:42:60:49 | source(...) : String | mad/Test.java:60:35:60:49 | (...)... | -| mad/Test.java:62:37:62:44 | source(...) : String | mad/Test.java:62:30:62:44 | (...)... | -| mad/Test.java:64:29:64:36 | source(...) : String | mad/Test.java:64:22:64:36 | (...)... | -| mad/Test.java:66:37:66:44 | source(...) : String | mad/Test.java:66:30:66:44 | (...)... | -| mad/Test.java:68:28:68:35 | source(...) : String | mad/Test.java:68:21:68:35 | (...)... | -| mad/Test.java:70:33:70:40 | source(...) : String | mad/Test.java:70:26:70:40 | (...)... | -| mad/Test.java:72:40:72:47 | source(...) : String | mad/Test.java:72:33:72:47 | (...)... | +| mad/Test.java:58:33:58:40 | source(...) : String | mad/Test.java:58:26:58:40 | (...)... | +| mad/Test.java:60:41:60:48 | source(...) : String | mad/Test.java:60:34:60:48 | (...)... | +| mad/Test.java:62:42:62:49 | source(...) : String | mad/Test.java:62:35:62:49 | (...)... | +| mad/Test.java:64:37:64:44 | source(...) : String | mad/Test.java:64:30:64:44 | (...)... | +| mad/Test.java:66:29:66:36 | source(...) : String | mad/Test.java:66:22:66:36 | (...)... | +| mad/Test.java:68:37:68:44 | source(...) : String | mad/Test.java:68:30:68:44 | (...)... | +| mad/Test.java:70:28:70:35 | source(...) : String | mad/Test.java:70:21:70:35 | (...)... | +| mad/Test.java:72:33:72:40 | source(...) : String | mad/Test.java:72:26:72:40 | (...)... | | mad/Test.java:74:40:74:47 | source(...) : String | mad/Test.java:74:33:74:47 | (...)... | -| mad/Test.java:75:40:75:47 | source(...) : String | mad/Test.java:75:33:75:47 | (...)... | -| mad/Test.java:77:38:77:45 | source(...) : String | mad/Test.java:77:31:77:45 | (...)... | -| mad/Test.java:79:28:79:35 | source(...) : String | mad/Test.java:79:21:79:35 | (...)... | -| mad/Test.java:80:28:80:35 | source(...) : String | mad/Test.java:80:21:80:35 | (...)... | +| mad/Test.java:76:40:76:47 | source(...) : String | mad/Test.java:76:33:76:47 | (...)... | +| mad/Test.java:77:40:77:47 | source(...) : String | mad/Test.java:77:33:77:47 | (...)... | +| mad/Test.java:79:38:79:45 | source(...) : String | mad/Test.java:79:31:79:45 | (...)... | | mad/Test.java:81:28:81:35 | source(...) : String | mad/Test.java:81:21:81:35 | (...)... | -| mad/Test.java:83:34:83:41 | source(...) : String | mad/Test.java:83:27:83:41 | (...)... | -| mad/Test.java:84:34:84:41 | source(...) : String | mad/Test.java:84:27:84:41 | (...)... | -| mad/Test.java:86:33:86:40 | source(...) : String | mad/Test.java:86:26:86:40 | (...)... | -| mad/Test.java:88:42:88:49 | source(...) : String | mad/Test.java:88:35:88:49 | (...)... | -| mad/Test.java:90:50:90:57 | source(...) : String | mad/Test.java:90:41:90:57 | (...)... | -| mad/Test.java:92:54:92:61 | source(...) : String | mad/Test.java:92:45:92:61 | (...)... | +| mad/Test.java:82:28:82:35 | source(...) : String | mad/Test.java:82:21:82:35 | (...)... | +| mad/Test.java:83:28:83:35 | source(...) : String | mad/Test.java:83:21:83:35 | (...)... | +| mad/Test.java:85:34:85:41 | source(...) : String | mad/Test.java:85:27:85:41 | (...)... | +| mad/Test.java:86:34:86:41 | source(...) : String | mad/Test.java:86:27:86:41 | (...)... | +| mad/Test.java:88:33:88:40 | source(...) : String | mad/Test.java:88:26:88:40 | (...)... | +| mad/Test.java:90:42:90:49 | source(...) : String | mad/Test.java:90:35:90:49 | (...)... | +| mad/Test.java:92:50:92:57 | source(...) : String | mad/Test.java:92:41:92:57 | (...)... | +| mad/Test.java:94:54:94:61 | source(...) : String | mad/Test.java:94:45:94:61 | (...)... | +| mad/Test.java:99:37:99:44 | source(...) : String | mad/Test.java:99:30:99:44 | (...)... | +| mad/Test.java:101:74:101:81 | source(...) : String | mad/Test.java:101:40:101:81 | (...)... | +| mad/Test.java:103:68:103:75 | source(...) : String | mad/Test.java:103:34:103:75 | (...)... | +| mad/Test.java:105:68:105:75 | source(...) : String | mad/Test.java:105:34:105:75 | (...)... | +| mad/Test.java:110:30:110:37 | source(...) : String | mad/Test.java:110:23:110:37 | (...)... | nodes | Test.java:19:18:19:38 | getHostName(...) : String | semmle.label | getHostName(...) : String | | Test.java:24:20:24:23 | temp | semmle.label | temp | @@ -110,83 +120,93 @@ 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:21:16:21:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | -| mad/Test.java:26:52:26:68 | (...)... | semmle.label | (...)... | -| mad/Test.java:26:61:26:68 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:28:32:28:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:28:41:28:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:30:47:30:63 | (...)... | semmle.label | (...)... | -| mad/Test.java:30:56:30:63 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:32:39:32:53 | (...)... | semmle.label | (...)... | -| mad/Test.java:32:46:32:53 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:34:31:34:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:34:38:34:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:36:29:36:43 | (...)... | semmle.label | (...)... | -| mad/Test.java:36:36:36:43 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:38:24:38:38 | (...)... | semmle.label | (...)... | -| mad/Test.java:38:31:38:38 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:40:24:40:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:40:33:40:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:42:20:42:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:42:27:42:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:43:20:43:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:43:27:43:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:44:20:44:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:44:34:44:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:46:33:46:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:46:40:46:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:47:33:47:55 | (...)... | semmle.label | (...)... | -| mad/Test.java:47:48:47:55 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:48:40:48:54 | (...)... | semmle.label | (...)... | -| mad/Test.java:48:47:48:54 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:50:33:50:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:50:40:50:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:52:31:52:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:52:38:52:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:54:26:54:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:54:33:54:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:23:16:23:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | +| mad/Test.java:28:52:28:68 | (...)... | semmle.label | (...)... | +| mad/Test.java:28:61:28:68 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:30:32:30:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:30:41:30:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:32:47:32:63 | (...)... | semmle.label | (...)... | +| mad/Test.java:32:56:32:63 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:34:39:34:53 | (...)... | semmle.label | (...)... | +| mad/Test.java:34:46:34:53 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:36:31:36:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:36:38:36:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:38:29:38:43 | (...)... | semmle.label | (...)... | +| mad/Test.java:38:36:38:43 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:40:24:40:38 | (...)... | semmle.label | (...)... | +| mad/Test.java:40:31:40:38 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:42:24:42:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:42:33:42:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:44:20:44:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:44:27:44:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:45:20:45:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:45:27:45:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:46:20:46:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:46:34:46:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:48:33:48:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:48:40:48:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:49:33:49:55 | (...)... | semmle.label | (...)... | +| mad/Test.java:49:48:49:55 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:50:40:50:54 | (...)... | semmle.label | (...)... | +| mad/Test.java:50:47:50:54 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:52:33:52:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:52:40:52:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:54:31:54:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:54:38:54:45 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:56:26:56:40 | (...)... | semmle.label | (...)... | | mad/Test.java:56:33:56:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:58:34:58:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:58:41:58:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:60:35:60:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:60:42:60:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:62:30:62:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:62:37:62:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:64:22:64:36 | (...)... | semmle.label | (...)... | -| mad/Test.java:64:29:64:36 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:66:30:66:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:66:37:66:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:68:21:68:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:68:28:68:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:70:26:70:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:70:33:70:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:72:33:72:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:72:40:72:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:58:26:58:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:58:33:58:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:60:34:60:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:60:41:60:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:62:35:62:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:62:42:62:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:64:30:64:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:64:37:64:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:66:22:66:36 | (...)... | semmle.label | (...)... | +| mad/Test.java:66:29:66:36 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:68:30:68:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:68:37:68:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:70:21:70:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:70:28:70:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:72:26:72:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:72:33:72:40 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:74:33:74:47 | (...)... | semmle.label | (...)... | | mad/Test.java:74:40:74:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:75:33:75:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:75:40:75:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:77:31:77:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:77:38:77:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:79:21:79:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:79:28:79:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:80:21:80:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:80:28:80:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:76:33:76:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:76:40:76:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:77:33:77:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:77:40:77:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:79:31:79:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:79:38:79:45 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:81:21:81:35 | (...)... | semmle.label | (...)... | | mad/Test.java:81:28:81:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:83:27:83:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:83:34:83:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:84:27:84:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:84:34:84:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:86:26:86:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:86:33:86:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:88:35:88:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:88:42:88:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:90:41:90:57 | (...)... | semmle.label | (...)... | -| mad/Test.java:90:50:90:57 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:92:45:92:61 | (...)... | semmle.label | (...)... | -| mad/Test.java:92:54:92:61 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:82:21:82:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:82:28:82:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:83:21:83:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:83:28:83:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:85:27:85:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:85:34:85:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:86:27:86:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:86:34:86:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:88:26:88:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:88:33:88:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:90:35:90:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:90:42:90:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:92:41:92:57 | (...)... | semmle.label | (...)... | +| mad/Test.java:92:50:92:57 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:94:45:94:61 | (...)... | semmle.label | (...)... | +| mad/Test.java:94:54:94:61 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:99:30:99:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:99:37:99:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:101:40:101:81 | (...)... | semmle.label | (...)... | +| mad/Test.java:101:74:101:81 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:103:34:103:75 | (...)... | semmle.label | (...)... | +| mad/Test.java:103:68:103:75 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:105:34:105:75 | (...)... | semmle.label | (...)... | +| mad/Test.java:105:68:105:75 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:110:23:110:37 | (...)... | semmle.label | (...)... | +| mad/Test.java:110:30:110:37 | 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 | @@ -200,41 +220,46 @@ 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:26:52:26:68 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:26:52:26:68 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:28:32:28:48 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:28:32:28:48 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:30:47:30:63 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:30:47:30:63 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:32:39:32:53 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:32:39:32:53 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:34:31:34:45 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:34:31:34:45 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:36:29:36:43 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:36:29:36:43 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:38:24:38:38 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:38:24:38:38 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:40:9:40:41 | new FileReader(...) | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:40:24:40:40 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:42:20:42:34 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:42:20:42:34 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:43:20:43:34 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:43:20:43:34 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:44:20:44:41 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:44:20:44:41 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:46:33:46:47 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:46:33:46:47 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:47:33:47:55 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:47:33:47:55 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:48:40:48:54 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:48:40:48:54 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:50:33:50:47 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:50:33:50:47 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:52:31:52:45 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:52:31:52:45 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:54:26:54:40 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:54:26:54:40 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:56:26:56:40 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:56:26:56:40 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:58:34:58:48 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:58:34:58:48 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:60:35:60:49 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:60:35:60:49 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:62:30:62:44 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:62:30:62:44 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:64:22:64:36 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:64:22:64:36 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:66:30:66:44 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:66:30:66:44 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:68:21:68:35 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:68:21:68:35 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:70:26:70:40 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:70:26:70:40 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:72:33:72:47 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:72:33:72:47 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:74:33:74:47 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:74:33:74:47 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:75:33:75:47 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:75:33:75:47 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:77:31:77:45 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:77:31:77:45 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:79:21:79:35 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:79:21:79:35 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:80:21:80:35 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:80:21:80:35 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:81:21:81:35 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:81:21:81:35 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:83:27:83:41 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:83:27:83:41 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:84:27:84:41 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:84:27:84:41 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:86:26:86:40 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:86:26:86:40 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:88:35:88:49 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:88:35:88:49 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:90:41:90:57 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:90:41:90:57 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | -| mad/Test.java:92:45:92:61 | (...)... | mad/Test.java:21:16:21:36 | getHostName(...) : String | mad/Test.java:92:45:92:61 | (...)... | This path depends on a $@. | mad/Test.java:21:16:21:36 | getHostName(...) | user-provided value | +| mad/Test.java:28:52:28:68 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:28:52:28:68 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:30:32:30:48 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:30:32:30:48 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:32:47:32:63 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:32:47:32:63 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:34:39:34:53 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:34:39:34:53 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:36:31:36:45 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:36:31:36:45 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:38:29:38:43 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:38:29:38:43 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:40:24:40:38 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:40:24:40:38 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:42:9:42:41 | new FileReader(...) | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:42:24:42:40 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:44:20:44:34 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:44:20:44:34 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:45:20:45:34 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:45:20:45:34 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:46:20:46:41 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:46:20:46:41 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:48:33:48:47 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:48:33:48:47 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:49:33:49:55 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:49:33:49:55 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:50:40:50:54 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:50:40:50:54 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:52:33:52:47 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:52:33:52:47 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:54:31:54:45 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:54:31:54:45 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:56:26:56:40 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:56:26:56:40 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:58:26:58:40 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:58:26:58:40 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:60:34:60:48 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:60:34:60:48 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:62:35:62:49 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:62:35:62:49 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:64:30:64:44 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:64:30:64:44 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:66:22:66:36 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:66:22:66:36 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:68:30:68:44 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:68:30:68:44 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:70:21:70:35 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:70:21:70:35 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:72:26:72:40 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:72:26:72:40 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:74:33:74:47 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:74:33:74:47 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:76:33:76:47 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:76:33:76:47 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:77:33:77:47 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:77:33:77:47 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:79:31:79:45 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:79:31:79:45 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:81:21:81:35 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:81:21:81:35 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:82:21:82:35 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:82:21:82:35 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:83:21:83:35 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:83:21:83:35 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:85:27:85:41 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:85:27:85:41 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:86:27:86:41 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:86:27:86:41 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:88:26:88:40 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:88:26:88:40 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:90:35:90:49 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:90:35:90:49 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:92:41:92:57 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:92:41:92:57 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:94:45:94:61 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:94:45:94:61 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:99:30:99:44 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:99:30:99:44 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:101:40:101:81 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:101:40:101:81 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:103:34:103:75 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:103:34:103:75 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:105:34:105:75 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:105:34:105:75 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:110:23:110:37 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:110:23:110:37 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java index 9e1c3d60663..3c647e3645b 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java @@ -11,6 +11,8 @@ 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.codehaus.cargo.container.installer.ZipURLInstaller; public class Test { @@ -91,4 +93,20 @@ public class Test { // "org.codehaus.cargo.container.installer;ZipURLInstaller;true;ZipURLInstaller;(URL,String,String);;Argument[2];create-file;ai-generated" 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()); + } + + void test(DirectoryScanner ds) { + // "org.apache.tools.ant;DirectoryScanner;true;setBasedir;(File);;Argument[0];read-file;ai-generated" + ds.setBasedir((File) source()); + } } diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/options b/java/ql/test/query-tests/security/CWE-022/semmle/tests/options index 42c644d15a4..ede20fca100 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/options +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/options @@ -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 diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/AntClassLoader.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/AntClassLoader.java new file mode 100644 index 00000000000..94c1f368a87 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/AntClassLoader.java @@ -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 defineClassFromData(File p0, byte[] p1, String p2){ return null; } + protected Class loadClass(String p0, boolean p1){ return null; } + protected Enumeration findResources(String p0){ return null; } + protected Enumeration 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 findClass(String p0){ return null; } + public Class forceLoadClass(String p0){ return null; } + public Class forceLoadSystemClass(String p0){ return null; } + public ClassLoader getConfiguredParent(){ return null; } + public Enumeration getNamedResources(String p0){ return null; } + public Enumeration 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 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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildEvent.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildEvent.java new file mode 100644 index 00000000000..e2308d35598 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildEvent.java @@ -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) {} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildException.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildException.java new file mode 100644 index 00000000000..d0293aedaa8 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildException.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildListener.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildListener.java new file mode 100644 index 00000000000..52e425ec8c4 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/BuildListener.java @@ -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); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/DirectoryScanner.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/DirectoryScanner.java new file mode 100644 index 00000000000..9775d1e0679 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/DirectoryScanner.java @@ -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 dirsDeselected = null; + protected Vector dirsExcluded = null; + protected Vector dirsIncluded = null; + protected Vector dirsNotIncluded = null; + protected Vector filesDeselected = null; + protected Vector filesExcluded = null; + protected Vector filesIncluded = null; + protected Vector 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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Executor.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Executor.java new file mode 100644 index 00000000000..90bdf1256c3 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Executor.java @@ -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); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/FileScanner.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/FileScanner.java new file mode 100644 index 00000000000..f764842ca2b --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/FileScanner.java @@ -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); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Location.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Location.java new file mode 100644 index 00000000000..f0b35714f17 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Location.java @@ -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; +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Project.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Project.java new file mode 100644 index 00000000000..0ffd2a51930 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Project.java @@ -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 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> getDataTypeDefinitions(){ return null; } + public Hashtable> getTaskDefinitions(){ return null; } + public Hashtable getInheritedProperties(){ return null; } + public Hashtable getProperties(){ return null; } + public Hashtable getReferences(){ return null; } + public Hashtable getUserProperties(){ return null; } + public Hashtable getFilters(){ return null; } + public Hashtable getTargets(){ return null; } + public InputHandler getInputHandler(){ return null; } + public InputStream getDefaultInputStream(){ return null; } + public Map> getCopyOfDataTypeDefinitions(){ return null; } + public Map> getCopyOfTaskDefinitions(){ return null; } + public Map getCopyOfReferences(){ return null; } + public Map 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 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 getBuildListeners(){ return null; } + public boolean hasReference(String p0){ return false; } + public boolean isKeepGoingMode(){ return false; } + public final Vector topoSort(String p0, Hashtable p1){ return null; } + public final Vector topoSort(String p0, Hashtable p1, boolean p2){ return null; } + public final Vector topoSort(String[] p0, Hashtable 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 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 p1){} + public void checkTaskClass(Class 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 p0){} + public void executeTarget(String p0){} + public void executeTargets(Vector 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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/ProjectComponent.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/ProjectComponent.java new file mode 100644 index 00000000000..f2797ca8cac --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/ProjectComponent.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/RuntimeConfigurable.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/RuntimeConfigurable.java new file mode 100644 index 00000000000..f4e7d8e9df3 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/RuntimeConfigurable.java @@ -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 getChildren(){ return null; } + public Hashtable 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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/SubBuildListener.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/SubBuildListener.java new file mode 100644 index 00000000000..fcf6781411b --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/SubBuildListener.java @@ -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); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Target.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Target.java new file mode 100644 index 00000000000..66cc237d150 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Target.java @@ -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 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 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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Task.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Task.java new file mode 100644 index 00000000000..89ec1160c28 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/Task.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/TaskContainer.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/TaskContainer.java new file mode 100644 index 00000000000..891d87078a8 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/TaskContainer.java @@ -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); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/UnknownElement.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/UnknownElement.java new file mode 100644 index 00000000000..6775244c857 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/UnknownElement.java @@ -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 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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/input/InputHandler.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/input/InputHandler.java new file mode 100644 index 00000000000..ace9bd44eae --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/input/InputHandler.java @@ -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); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/input/InputRequest.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/input/InputRequest.java new file mode 100644 index 00000000000..7aec15ca58a --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/input/InputRequest.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/condition/Condition.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/condition/Condition.java new file mode 100644 index 00000000000..787680f3269 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/condition/Condition.java @@ -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(); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/AbstractFileSet.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/AbstractFileSet.java new file mode 100644 index 00000000000..22c815d7501 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/AbstractFileSet.java @@ -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 p0, Project p1){} + public AbstractFileSet(){} + public DirectoryScanner getDirectoryScanner(){ return null; } + public DirectoryScanner getDirectoryScanner(Project p0){ return null; } + public Enumeration 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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Comparison.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Comparison.java new file mode 100644 index 00000000000..4b1677c1595 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Comparison.java @@ -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; +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/DataType.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/DataType.java new file mode 100644 index 00000000000..776fd802e23 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/DataType.java @@ -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 getCheckedRef(){ return null; } + protected T getCheckedRef(Project p0){ return null; } + protected T getCheckedRef(java.lang.Class p0){ return null; } + protected T getCheckedRef(java.lang.Class p0, String p1){ return null; } + protected T getCheckedRef(java.lang.Class 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 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 p1, Project p2){} + public static void pushAndInvokeCircularReferenceCheck(DataType p0, Stack p1, Project p2){} + public void setRefid(Reference p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/DirSet.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/DirSet.java new file mode 100644 index 00000000000..5ba17ab1bd2 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/DirSet.java @@ -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 iterator(){ return null; } + public Object clone(){ return null; } + public String toString(){ return null; } + public boolean isFilesystemOnly(){ return false; } + public int size(){ return 0; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/EnumeratedAttribute.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/EnumeratedAttribute.java new file mode 100644 index 00000000000..9421f733c5f --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/EnumeratedAttribute.java @@ -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 p0, String p1){ return null; } + public void setValue(String p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FileList.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FileList.java new file mode 100644 index 00000000000..aef6825757c --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FileList.java @@ -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 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){} + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FileSet.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FileSet.java new file mode 100644 index 00000000000..9010c0f8a84 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FileSet.java @@ -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 iterator(){ return null; } + public Object clone(){ return null; } + public boolean isFilesystemOnly(){ return false; } + public int size(){ return 0; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterSet.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterSet.java new file mode 100644 index 00000000000..3d84e30ddde --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterSet.java @@ -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 getFilters(){ return null; } + public FilterSet(){} + public FilterSet.FiltersFile createFiltersfile(){ return null; } + public FilterSet.OnMissing getOnMissingFiltersFile(){ return null; } + public Hashtable 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; + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Mapper.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Mapper.java new file mode 100644 index 00000000000..a559790a20e --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Mapper.java @@ -0,0 +1,41 @@ +// Generated automatically from org.apache.tools.ant.types.Mapper for testing purposes + +package org.apache.tools.ant.types; + +import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.DataType; +import org.apache.tools.ant.types.EnumeratedAttribute; +import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.Reference; +import org.apache.tools.ant.util.FileNameMapper; + +public class Mapper extends DataType +{ + protected Mapper() {} + protected Class getImplementationClass(){ return null; } + protected Mapper getRef(){ return null; } + protected Mapper.MapperType type = null; + protected Path classpath = null; + protected String classname = null; + protected String from = null; + protected String to = null; + public FileNameMapper getImplementation(){ return null; } + public Mapper(Project p0){} + public Path createClasspath(){ return null; } + public void add(FileNameMapper p0){} + public void addConfigured(FileNameMapper p0){} + public void addConfiguredMapper(Mapper p0){} + public void setClassname(String p0){} + public void setClasspath(Path p0){} + public void setClasspathRef(Reference p0){} + public void setFrom(String p0){} + public void setRefid(Reference p0){} + public void setTo(String p0){} + public void setType(Mapper.MapperType p0){} + static public class MapperType extends EnumeratedAttribute + { + public MapperType(){} + public String getImplementation(){ return null; } + public String[] getValues(){ return null; } + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Parameter.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Parameter.java new file mode 100644 index 00000000000..27693307028 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Parameter.java @@ -0,0 +1,15 @@ +// Generated automatically from org.apache.tools.ant.types.Parameter for testing purposes + +package org.apache.tools.ant.types; + + +public class Parameter +{ + public Parameter(){} + public String getName(){ return null; } + public String getType(){ return null; } + public String getValue(){ return null; } + public void setName(String p0){} + public void setType(String p0){} + public void setValue(String p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Parameterizable.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Parameterizable.java new file mode 100644 index 00000000000..250c7d45ad9 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Parameterizable.java @@ -0,0 +1,10 @@ +// Generated automatically from org.apache.tools.ant.types.Parameterizable for testing purposes + +package org.apache.tools.ant.types; + +import org.apache.tools.ant.types.Parameter; + +public interface Parameterizable +{ + void setParameters(Parameter... p0); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Path.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Path.java new file mode 100644 index 00000000000..a01ebe7c3f6 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Path.java @@ -0,0 +1,65 @@ +// Generated automatically from org.apache.tools.ant.types.Path for testing purposes + +package org.apache.tools.ant.types; + +import java.io.File; +import java.util.Iterator; +import java.util.Stack; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.DataType; +import org.apache.tools.ant.types.DirSet; +import org.apache.tools.ant.types.FileList; +import org.apache.tools.ant.types.FileSet; +import org.apache.tools.ant.types.Reference; +import org.apache.tools.ant.types.Resource; +import org.apache.tools.ant.types.ResourceCollection; + +public class Path extends DataType implements Cloneable, ResourceCollection +{ + protected Path() {} + protected ResourceCollection assertFilesystemOnly(ResourceCollection p0){ return null; } + protected boolean delegateIteratorToList(){ return false; } + protected static boolean translateFileSep(StringBuffer p0, int p1){ return false; } + protected void dieOnCircularReference(Stack p0, Project p1){} + public Object clone(){ return null; } + public Path concatSystemBootClasspath(String p0){ return null; } + public Path concatSystemClasspath(){ return null; } + public Path concatSystemClasspath(String p0){ return null; } + public Path createPath(){ return null; } + public Path(Project p0){} + public Path(Project p0, String p1){} + public Path.PathElement createPathElement(){ return null; } + public String toString(){ return null; } + public String[] list(){ return null; } + public boolean isFilesystemOnly(){ return false; } + public class PathElement implements ResourceCollection + { + public Iterator iterator(){ return null; } + public PathElement(){} + public String[] getParts(){ return null; } + public boolean isFilesystemOnly(){ return false; } + public int size(){ return 0; } + public void setLocation(File p0){} + public void setPath(String p0){} + } + public final Iterator iterator(){ return null; } + public int size(){ return 0; } + public static Path systemBootClasspath = null; + public static Path systemClasspath = null; + public static String translateFile(String p0){ return null; } + public static String[] translatePath(Project p0, String p1){ return null; } + public void add(Path p0){} + public void add(ResourceCollection p0){} + public void addDirset(DirSet p0){} + public void addExisting(Path p0){} + public void addExisting(Path p0, boolean p1){} + public void addExtdirs(Path p0){} + public void addFilelist(FileList p0){} + public void addFileset(FileSet p0){} + public void addJavaRuntime(){} + public void append(Path p0){} + public void setCache(boolean p0){} + public void setLocation(File p0){} + public void setPath(String p0){} + public void setRefid(Reference p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/PatternSet.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/PatternSet.java new file mode 100644 index 00000000000..897f11033cc --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/PatternSet.java @@ -0,0 +1,42 @@ +// Generated automatically from org.apache.tools.ant.types.PatternSet for testing purposes + +package org.apache.tools.ant.types; + +import java.io.File; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.DataType; +import org.apache.tools.ant.types.Reference; + +public class PatternSet extends DataType implements Cloneable +{ + public Object clone(){ return null; } + public PatternSet(){} + 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[] getExcludePatterns(Project p0){ return null; } + public String[] getIncludePatterns(Project p0){ return null; } + public boolean hasPatterns(Project p0){ return false; } + public class NameEntry + { + public NameEntry(){} + public String evalName(Project p0){ return null; } + public String getName(){ return null; } + public String toString(){ return null; } + public void setIf(Object p0){} + public void setIf(String p0){} + public void setName(String p0){} + public void setUnless(Object p0){} + public void setUnless(String p0){} + } + public void addConfiguredInvert(PatternSet p0){} + public void addConfiguredPatternset(PatternSet p0){} + public void append(PatternSet p0, Project p1){} + public void setExcludes(String p0){} + public void setExcludesfile(File p0){} + public void setIncludes(String p0){} + public void setIncludesfile(File p0){} + public void setRefid(Reference p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/PropertySet.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/PropertySet.java new file mode 100644 index 00000000000..fd4ea437f36 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/PropertySet.java @@ -0,0 +1,56 @@ +// Generated automatically from org.apache.tools.ant.types.PropertySet for testing purposes + +package org.apache.tools.ant.types; + +import java.util.Iterator; +import java.util.Properties; +import java.util.Stack; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.DataType; +import org.apache.tools.ant.types.EnumeratedAttribute; +import org.apache.tools.ant.types.Mapper; +import org.apache.tools.ant.types.Reference; +import org.apache.tools.ant.types.Resource; +import org.apache.tools.ant.types.ResourceCollection; +import org.apache.tools.ant.util.FileNameMapper; + +public class PropertySet extends DataType implements ResourceCollection +{ + protected PropertySet getRef(){ return null; } + protected final void assertNotReference(){} + protected void dieOnCircularReference(Stack p0, Project p1){} + public Iterator iterator(){ return null; } + public Mapper createMapper(){ return null; } + public Mapper getMapper(){ return null; } + public Properties getProperties(){ return null; } + public PropertySet(){} + public String toString(){ return null; } + public boolean getDynamic(){ return false; } + public boolean isFilesystemOnly(){ return false; } + public final void setRefid(Reference p0){} + public int size(){ return 0; } + public void add(FileNameMapper p0){} + public void addPropertyref(PropertySet.PropertyRef p0){} + public void addPropertyset(PropertySet p0){} + public void appendBuiltin(PropertySet.BuiltinPropertySetName p0){} + public void appendName(String p0){} + public void appendPrefix(String p0){} + public void appendRegex(String p0){} + public void setDynamic(boolean p0){} + public void setMapper(String p0, String p1, String p2){} + public void setNegate(boolean p0){} + static public class BuiltinPropertySetName extends EnumeratedAttribute + { + public BuiltinPropertySetName(){} + public String[] getValues(){ return null; } + } + static public class PropertyRef + { + public PropertyRef(){} + public String toString(){ return null; } + public void setBuiltin(PropertySet.BuiltinPropertySetName p0){} + public void setName(String p0){} + public void setPrefix(String p0){} + public void setRegex(String p0){} + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Reference.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Reference.java new file mode 100644 index 00000000000..3d0f7f4d8c0 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Reference.java @@ -0,0 +1,18 @@ +// Generated automatically from org.apache.tools.ant.types.Reference for testing purposes + +package org.apache.tools.ant.types; + +import org.apache.tools.ant.Project; + +public class Reference +{ + public T getReferencedObject(){ return null; } + public T getReferencedObject(Project p0){ return null; } + public Project getProject(){ return null; } + public Reference(){} + public Reference(Project p0, String p1){} + public Reference(String p0){} + public String getRefId(){ return null; } + public void setProject(Project p0){} + public void setRefId(String p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Resource.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Resource.java new file mode 100644 index 00000000000..dfa6d1e9c39 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/Resource.java @@ -0,0 +1,49 @@ +// Generated automatically from org.apache.tools.ant.types.Resource for testing purposes + +package org.apache.tools.ant.types; + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Iterator; +import java.util.Optional; +import org.apache.tools.ant.types.DataType; +import org.apache.tools.ant.types.Reference; +import org.apache.tools.ant.types.ResourceCollection; + +public class Resource extends DataType implements Comparable, ResourceCollection +{ + protected Resource getRef(){ return null; } + protected static int MAGIC = 0; + protected static int getMagicNumber(byte[] p0){ return 0; } + public T as(java.lang.Class p0){ return null; } + public java.util.Optional asOptional(java.lang.Class p0){ return null; } + public InputStream getInputStream(){ return null; } + public Iterator iterator(){ return null; } + public Object clone(){ return null; } + public OutputStream getOutputStream(){ return null; } + public Resource(){} + public Resource(String p0){} + public Resource(String p0, boolean p1, long p2){} + public Resource(String p0, boolean p1, long p2, boolean p3){} + public Resource(String p0, boolean p1, long p2, boolean p3, long p4){} + public String getName(){ return null; } + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public boolean isDirectory(){ return false; } + public boolean isExists(){ return false; } + public boolean isFilesystemOnly(){ return false; } + public final String toLongString(){ return null; } + public int compareTo(Resource p0){ return 0; } + public int hashCode(){ return 0; } + public int size(){ return 0; } + public long getLastModified(){ return 0; } + public long getSize(){ return 0; } + public static long UNKNOWN_DATETIME = 0; + public static long UNKNOWN_SIZE = 0; + public void setDirectory(boolean p0){} + public void setExists(boolean p0){} + public void setLastModified(long p0){} + public void setName(String p0){} + public void setRefid(Reference p0){} + public void setSize(long p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/ResourceCollection.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/ResourceCollection.java new file mode 100644 index 00000000000..3647204ba73 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/ResourceCollection.java @@ -0,0 +1,14 @@ +// Generated automatically from org.apache.tools.ant.types.ResourceCollection for testing purposes + +package org.apache.tools.ant.types; + +import java.util.stream.Stream; +import org.apache.tools.ant.types.Resource; + +public interface ResourceCollection extends Iterable +{ + boolean isFilesystemOnly(); + default Stream stream(){ return null; } + default boolean isEmpty(){ return false; } + int size(); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/ResourceFactory.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/ResourceFactory.java new file mode 100644 index 00000000000..08a4f823f0c --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/ResourceFactory.java @@ -0,0 +1,10 @@ +// Generated automatically from org.apache.tools.ant.types.ResourceFactory for testing purposes + +package org.apache.tools.ant.types; + +import org.apache.tools.ant.types.Resource; + +public interface ResourceFactory +{ + Resource getResource(String p0); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/TimeComparison.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/TimeComparison.java new file mode 100644 index 00000000000..b6da23dd480 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/TimeComparison.java @@ -0,0 +1,19 @@ +// Generated automatically from org.apache.tools.ant.types.TimeComparison for testing purposes + +package org.apache.tools.ant.types; + +import org.apache.tools.ant.types.EnumeratedAttribute; + +public class TimeComparison extends EnumeratedAttribute +{ + public String[] getValues(){ return null; } + public TimeComparison(){} + public TimeComparison(String p0){} + public boolean evaluate(long p0, long p1){ return false; } + public boolean evaluate(long p0, long p1, long p2){ return false; } + public static TimeComparison AFTER = null; + public static TimeComparison BEFORE = null; + public static TimeComparison EQUAL = null; + public static int compare(long p0, long p1){ return 0; } + public static int compare(long p0, long p1, long p2){ return 0; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/resources/selectors/ResourceSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/resources/selectors/ResourceSelector.java new file mode 100644 index 00000000000..401fa3a69d2 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/resources/selectors/ResourceSelector.java @@ -0,0 +1,10 @@ +// Generated automatically from org.apache.tools.ant.types.resources.selectors.ResourceSelector for testing purposes + +package org.apache.tools.ant.types.resources.selectors; + +import org.apache.tools.ant.types.Resource; + +public interface ResourceSelector +{ + boolean isSelected(Resource p0); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/AndSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/AndSelector.java new file mode 100644 index 00000000000..894ad55c240 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/AndSelector.java @@ -0,0 +1,13 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.AndSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.BaseSelectorContainer; + +public class AndSelector extends BaseSelectorContainer +{ + public AndSelector(){} + public String toString(){ return null; } + public boolean isSelected(File p0, String p1, File p2){ return false; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseExtendSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseExtendSelector.java new file mode 100644 index 00000000000..d47425773ce --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseExtendSelector.java @@ -0,0 +1,17 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.BaseExtendSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.Parameter; +import org.apache.tools.ant.types.selectors.BaseSelector; +import org.apache.tools.ant.types.selectors.ExtendFileSelector; + +abstract public class BaseExtendSelector extends BaseSelector implements ExtendFileSelector +{ + protected Parameter[] getParameters(){ return null; } + protected Parameter[] parameters = null; + public BaseExtendSelector(){} + public abstract boolean isSelected(File p0, String p1, File p2); + public void setParameters(Parameter... p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseSelector.java new file mode 100644 index 00000000000..214776df2a1 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseSelector.java @@ -0,0 +1,18 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.BaseSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.DataType; +import org.apache.tools.ant.types.selectors.FileSelector; + +abstract public class BaseSelector extends DataType implements FileSelector +{ + public BaseSelector(){} + public String getError(){ return null; } + public abstract boolean isSelected(File p0, String p1, File p2); + public void setError(String p0){} + public void setError(String p0, Throwable p1){} + public void validate(){} + public void verifySettings(){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseSelectorContainer.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseSelectorContainer.java new file mode 100644 index 00000000000..d1b8ffcc43b --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/BaseSelectorContainer.java @@ -0,0 +1,76 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.BaseSelectorContainer for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import java.util.Enumeration; +import java.util.Stack; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.selectors.AndSelector; +import org.apache.tools.ant.types.selectors.BaseSelector; +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 BaseSelectorContainer extends BaseSelector implements SelectorContainer +{ + protected void dieOnCircularReference(Stack p0, Project p1){} + public BaseSelectorContainer(){} + public Enumeration selectorElements(){ return null; } + public FileSelector[] getSelectors(Project p0){ return null; } + public String toString(){ return null; } + public abstract boolean isSelected(File p0, String p1, File p2); + public boolean hasSelectors(){ return false; } + 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 appendSelector(FileSelector p0){} + public void validate(){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ContainsRegexpSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ContainsRegexpSelector.java new file mode 100644 index 00000000000..561f52ca723 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ContainsRegexpSelector.java @@ -0,0 +1,24 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.ContainsRegexpSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.Parameter; +import org.apache.tools.ant.types.Resource; +import org.apache.tools.ant.types.resources.selectors.ResourceSelector; +import org.apache.tools.ant.types.selectors.BaseExtendSelector; + +public class ContainsRegexpSelector extends BaseExtendSelector implements ResourceSelector +{ + public ContainsRegexpSelector(){} + public String toString(){ return null; } + public boolean isSelected(File p0, String p1, File p2){ return false; } + public boolean isSelected(Resource p0){ return false; } + public static String EXPRESSION_KEY = null; + public void setCaseSensitive(boolean p0){} + public void setExpression(String p0){} + public void setMultiLine(boolean p0){} + public void setParameters(Parameter... p0){} + public void setSingleLine(boolean p0){} + public void verifySettings(){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ContainsSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ContainsSelector.java new file mode 100644 index 00000000000..dbcfc3c1719 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ContainsSelector.java @@ -0,0 +1,27 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.ContainsSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.Parameter; +import org.apache.tools.ant.types.Resource; +import org.apache.tools.ant.types.resources.selectors.ResourceSelector; +import org.apache.tools.ant.types.selectors.BaseExtendSelector; + +public class ContainsSelector extends BaseExtendSelector implements ResourceSelector +{ + public ContainsSelector(){} + public String toString(){ return null; } + public boolean isSelected(File p0, String p1, File p2){ return false; } + public boolean isSelected(Resource p0){ return false; } + public static String CASE_KEY = null; + public static String CONTAINS_KEY = null; + public static String EXPRESSION_KEY = null; + public static String WHITESPACE_KEY = null; + public void setCasesensitive(boolean p0){} + public void setEncoding(String p0){} + public void setIgnorewhitespace(boolean p0){} + public void setParameters(Parameter... p0){} + public void setText(String p0){} + public void verifySettings(){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DateSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DateSelector.java new file mode 100644 index 00000000000..c9f32e3e2dd --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DateSelector.java @@ -0,0 +1,35 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.DateSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.Parameter; +import org.apache.tools.ant.types.TimeComparison; +import org.apache.tools.ant.types.selectors.BaseExtendSelector; + +public class DateSelector extends BaseExtendSelector +{ + public DateSelector(){} + public String toString(){ return null; } + public boolean isSelected(File p0, String p1, File p2){ return false; } + public long getMillis(){ return 0; } + public static String CHECKDIRS_KEY = null; + public static String DATETIME_KEY = null; + public static String GRANULARITY_KEY = null; + public static String MILLIS_KEY = null; + public static String PATTERN_KEY = null; + public static String WHEN_KEY = null; + public void setCheckdirs(boolean p0){} + public void setDatetime(String p0){} + public void setGranularity(int p0){} + public void setMillis(long p0){} + public void setParameters(Parameter... p0){} + public void setPattern(String p0){} + public void setWhen(DateSelector.TimeComparisons p0){} + public void setWhen(TimeComparison p0){} + public void verifySettings(){} + static public class TimeComparisons extends TimeComparison + { + public TimeComparisons(){} + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DependSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DependSelector.java new file mode 100644 index 00000000000..09ae1ebfda3 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DependSelector.java @@ -0,0 +1,13 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.DependSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.MappingSelector; + +public class DependSelector extends MappingSelector +{ + public DependSelector(){} + public String toString(){ return null; } + public boolean selectionTest(File p0, File p1){ return false; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DepthSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DepthSelector.java new file mode 100644 index 00000000000..626b32be726 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DepthSelector.java @@ -0,0 +1,22 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.DepthSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.Parameter; +import org.apache.tools.ant.types.selectors.BaseExtendSelector; + +public class DepthSelector extends BaseExtendSelector +{ + public DepthSelector(){} + public String toString(){ return null; } + public boolean isSelected(File p0, String p1, File p2){ return false; } + public int max = 0; + public int min = 0; + public static String MAX_KEY = null; + public static String MIN_KEY = null; + public void setMax(int p0){} + public void setMin(int p0){} + public void setParameters(Parameter... p0){} + public void verifySettings(){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DifferentSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DifferentSelector.java new file mode 100644 index 00000000000..3cf7174847d --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/DifferentSelector.java @@ -0,0 +1,14 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.DifferentSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.MappingSelector; + +public class DifferentSelector extends MappingSelector +{ + protected boolean selectionTest(File p0, File p1){ return false; } + public DifferentSelector(){} + public void setIgnoreContents(boolean p0){} + public void setIgnoreFileTimes(boolean p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExecutableSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExecutableSelector.java new file mode 100644 index 00000000000..c2e6fdae37b --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExecutableSelector.java @@ -0,0 +1,12 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.ExecutableSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.FileSelector; + +public class ExecutableSelector implements FileSelector +{ + public ExecutableSelector(){} + public boolean isSelected(File p0, String p1, File p2){ return false; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExtendFileSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExtendFileSelector.java new file mode 100644 index 00000000000..c38d4e8413c --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExtendFileSelector.java @@ -0,0 +1,10 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.ExtendFileSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import org.apache.tools.ant.types.Parameterizable; +import org.apache.tools.ant.types.selectors.FileSelector; + +public interface ExtendFileSelector extends FileSelector, Parameterizable +{ +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExtendSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExtendSelector.java new file mode 100644 index 00000000000..0b8815f162c --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ExtendSelector.java @@ -0,0 +1,23 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.ExtendSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.Parameter; +import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.Reference; +import org.apache.tools.ant.types.selectors.BaseSelector; + +public class ExtendSelector extends BaseSelector +{ + public ExtendSelector(){} + public boolean isSelected(File p0, String p1, File p2){ return false; } + public final Path createClasspath(){ return null; } + public final Path getClasspath(){ return null; } + public final void setClasspath(Path p0){} + public void addParam(Parameter p0){} + public void selectorCreate(){} + public void setClassname(String p0){} + public void setClasspathref(Reference p0){} + public void verifySettings(){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/FileSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/FileSelector.java new file mode 100644 index 00000000000..f97b8640cf0 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/FileSelector.java @@ -0,0 +1,13 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.FileSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.Resource; +import org.apache.tools.ant.types.resources.selectors.ResourceSelector; + +public interface FileSelector extends ResourceSelector +{ + boolean isSelected(File p0, String p1, File p2); + default boolean isSelected(Resource p0){ return false; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/FilenameSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/FilenameSelector.java new file mode 100644 index 00000000000..60f85f6ce16 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/FilenameSelector.java @@ -0,0 +1,24 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.FilenameSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.Parameter; +import org.apache.tools.ant.types.selectors.BaseExtendSelector; + +public class FilenameSelector extends BaseExtendSelector +{ + public FilenameSelector(){} + public String toString(){ return null; } + public boolean isSelected(File p0, String p1, File p2){ return false; } + public static String CASE_KEY = null; + public static String NAME_KEY = null; + public static String NEGATE_KEY = null; + public static String REGEX_KEY = null; + public void setCasesensitive(boolean p0){} + public void setName(String p0){} + public void setNegate(boolean p0){} + public void setParameters(Parameter... p0){} + public void setRegex(String p0){} + public void verifySettings(){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/MajoritySelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/MajoritySelector.java new file mode 100644 index 00000000000..d0405f52904 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/MajoritySelector.java @@ -0,0 +1,14 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.MajoritySelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.BaseSelectorContainer; + +public class MajoritySelector extends BaseSelectorContainer +{ + public MajoritySelector(){} + public String toString(){ return null; } + public boolean isSelected(File p0, String p1, File p2){ return false; } + public void setAllowtie(boolean p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/MappingSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/MappingSelector.java new file mode 100644 index 00000000000..9a6a3b243ad --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/MappingSelector.java @@ -0,0 +1,24 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.MappingSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.Mapper; +import org.apache.tools.ant.types.selectors.BaseSelector; +import org.apache.tools.ant.util.FileNameMapper; + +abstract public class MappingSelector extends BaseSelector +{ + protected File targetdir = null; + protected FileNameMapper map = null; + protected Mapper mapperElement = null; + protected abstract boolean selectionTest(File p0, File p1); + protected int granularity = 0; + public Mapper createMapper(){ return null; } + public MappingSelector(){} + public boolean isSelected(File p0, String p1, File p2){ return false; } + public void addConfigured(FileNameMapper p0){} + public void setGranularity(int p0){} + public void setTargetdir(File p0){} + public void verifySettings(){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/NoneSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/NoneSelector.java new file mode 100644 index 00000000000..f0c187d3345 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/NoneSelector.java @@ -0,0 +1,13 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.NoneSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.BaseSelectorContainer; + +public class NoneSelector extends BaseSelectorContainer +{ + public NoneSelector(){} + public String toString(){ return null; } + public boolean isSelected(File p0, String p1, File p2){ return false; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/NotSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/NotSelector.java new file mode 100644 index 00000000000..23f4d19b153 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/NotSelector.java @@ -0,0 +1,14 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.NotSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import org.apache.tools.ant.types.selectors.FileSelector; +import org.apache.tools.ant.types.selectors.NoneSelector; + +public class NotSelector extends NoneSelector +{ + public NotSelector(){} + public NotSelector(FileSelector p0){} + public String toString(){ return null; } + public void verifySettings(){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/OrSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/OrSelector.java new file mode 100644 index 00000000000..2e5e846bad7 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/OrSelector.java @@ -0,0 +1,13 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.OrSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.BaseSelectorContainer; + +public class OrSelector extends BaseSelectorContainer +{ + public OrSelector(){} + public String toString(){ return null; } + public boolean isSelected(File p0, String p1, File p2){ return false; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/OwnedBySelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/OwnedBySelector.java new file mode 100644 index 00000000000..9aecd3fd556 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/OwnedBySelector.java @@ -0,0 +1,14 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.OwnedBySelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.FileSelector; + +public class OwnedBySelector implements FileSelector +{ + public OwnedBySelector(){} + public boolean isSelected(File p0, String p1, File p2){ return false; } + public void setFollowSymlinks(boolean p0){} + public void setOwner(String p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PosixGroupSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PosixGroupSelector.java new file mode 100644 index 00000000000..a32cb5d2e84 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PosixGroupSelector.java @@ -0,0 +1,14 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.PosixGroupSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.FileSelector; + +public class PosixGroupSelector implements FileSelector +{ + public PosixGroupSelector(){} + public boolean isSelected(File p0, String p1, File p2){ return false; } + public void setFollowSymlinks(boolean p0){} + public void setGroup(String p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PosixPermissionsSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PosixPermissionsSelector.java new file mode 100644 index 00000000000..fa9af45e2b8 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PosixPermissionsSelector.java @@ -0,0 +1,14 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.PosixPermissionsSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.FileSelector; + +public class PosixPermissionsSelector implements FileSelector +{ + public PosixPermissionsSelector(){} + public boolean isSelected(File p0, String p1, File p2){ return false; } + public void setFollowSymlinks(boolean p0){} + public void setPermissions(String p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PresentSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PresentSelector.java new file mode 100644 index 00000000000..3596b4937e7 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/PresentSelector.java @@ -0,0 +1,26 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.PresentSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.EnumeratedAttribute; +import org.apache.tools.ant.types.Mapper; +import org.apache.tools.ant.types.selectors.BaseSelector; +import org.apache.tools.ant.util.FileNameMapper; + +public class PresentSelector extends BaseSelector +{ + public Mapper createMapper(){ return null; } + public PresentSelector(){} + public String toString(){ return null; } + public boolean isSelected(File p0, String p1, File p2){ return false; } + public void addConfigured(FileNameMapper p0){} + public void setPresent(PresentSelector.FilePresence p0){} + public void setTargetdir(File p0){} + public void verifySettings(){} + static public class FilePresence extends EnumeratedAttribute + { + public FilePresence(){} + public String[] getValues(){ return null; } + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ReadableSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ReadableSelector.java new file mode 100644 index 00000000000..a47e31f9f04 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/ReadableSelector.java @@ -0,0 +1,12 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.ReadableSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.FileSelector; + +public class ReadableSelector implements FileSelector +{ + public ReadableSelector(){} + public boolean isSelected(File p0, String p1, File p2){ return false; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectSelector.java new file mode 100644 index 00000000000..ba5e2cdbfe7 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectSelector.java @@ -0,0 +1,27 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.SelectSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import java.util.Enumeration; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.selectors.BaseSelectorContainer; +import org.apache.tools.ant.types.selectors.FileSelector; + +public class SelectSelector extends BaseSelectorContainer +{ + public Enumeration selectorElements(){ return null; } + public FileSelector[] getSelectors(Project p0){ return null; } + public SelectSelector(){} + public String toString(){ return null; } + public boolean hasSelectors(){ return false; } + public boolean isSelected(File p0, String p1, File p2){ return false; } + public boolean passesConditions(){ return false; } + public int selectorCount(){ return 0; } + public void appendSelector(FileSelector p0){} + public void setIf(Object p0){} + public void setIf(String p0){} + public void setUnless(Object p0){} + public void setUnless(String p0){} + public void verifySettings(){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectorContainer.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectorContainer.java new file mode 100644 index 00000000000..84d65cdf86f --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectorContainer.java @@ -0,0 +1,53 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.SelectorContainer for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.util.Enumeration; +import org.apache.tools.ant.Project; +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.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.PresentSelector; +import org.apache.tools.ant.types.selectors.SelectSelector; +import org.apache.tools.ant.types.selectors.SizeSelector; +import org.apache.tools.ant.types.selectors.TypeSelector; +import org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector; + +public interface SelectorContainer +{ + Enumeration selectorElements(); + FileSelector[] getSelectors(Project p0); + boolean hasSelectors(); + int selectorCount(); + void add(FileSelector p0); + void addAnd(AndSelector p0); + void addContains(ContainsSelector p0); + void addContainsRegexp(ContainsRegexpSelector p0); + void addCustom(ExtendSelector p0); + void addDate(DateSelector p0); + void addDepend(DependSelector p0); + void addDepth(DepthSelector p0); + void addDifferent(DifferentSelector p0); + void addFilename(FilenameSelector p0); + void addMajority(MajoritySelector p0); + void addModified(ModifiedSelector p0); + void addNone(NoneSelector p0); + void addNot(NotSelector p0); + void addOr(OrSelector p0); + void addPresent(PresentSelector p0); + void addSelector(SelectSelector p0); + void addSize(SizeSelector p0); + void addType(TypeSelector p0); + void appendSelector(FileSelector p0); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectorScanner.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectorScanner.java new file mode 100644 index 00000000000..97634f4c35c --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SelectorScanner.java @@ -0,0 +1,12 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.SelectorScanner for testing purposes + +package org.apache.tools.ant.types.selectors; + +import org.apache.tools.ant.types.selectors.FileSelector; + +public interface SelectorScanner +{ + String[] getDeselectedDirectories(); + String[] getDeselectedFiles(); + void setSelectors(FileSelector[] p0); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SizeSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SizeSelector.java new file mode 100644 index 00000000000..cd408c7961d --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SizeSelector.java @@ -0,0 +1,33 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.SizeSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.Comparison; +import org.apache.tools.ant.types.EnumeratedAttribute; +import org.apache.tools.ant.types.Parameter; +import org.apache.tools.ant.types.selectors.BaseExtendSelector; + +public class SizeSelector extends BaseExtendSelector +{ + public SizeSelector(){} + public String toString(){ return null; } + public boolean isSelected(File p0, String p1, File p2){ return false; } + public static String SIZE_KEY = null; + public static String UNITS_KEY = null; + public static String WHEN_KEY = null; + public void setParameters(Parameter... p0){} + public void setUnits(SizeSelector.ByteUnits p0){} + public void setValue(long p0){} + public void setWhen(SizeSelector.SizeComparisons p0){} + public void verifySettings(){} + static public class ByteUnits extends EnumeratedAttribute + { + public ByteUnits(){} + public String[] getValues(){ return null; } + } + static public class SizeComparisons extends Comparison + { + public SizeComparisons(){} + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SymlinkSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SymlinkSelector.java new file mode 100644 index 00000000000..948606a9a86 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/SymlinkSelector.java @@ -0,0 +1,12 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.SymlinkSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.FileSelector; + +public class SymlinkSelector implements FileSelector +{ + public SymlinkSelector(){} + public boolean isSelected(File p0, String p1, File p2){ return false; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/TypeSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/TypeSelector.java new file mode 100644 index 00000000000..c9b99f5ed8c --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/TypeSelector.java @@ -0,0 +1,26 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.TypeSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.EnumeratedAttribute; +import org.apache.tools.ant.types.Parameter; +import org.apache.tools.ant.types.selectors.BaseExtendSelector; + +public class TypeSelector extends BaseExtendSelector +{ + public String toString(){ return null; } + public TypeSelector(){} + public boolean isSelected(File p0, String p1, File p2){ return false; } + public static String TYPE_KEY = null; + public void setParameters(Parameter... p0){} + public void setType(TypeSelector.FileType p0){} + public void verifySettings(){} + static public class FileType extends EnumeratedAttribute + { + public FileType(){} + public String[] getValues(){ return null; } + public static String DIR = null; + public static String FILE = null; + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/WritableSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/WritableSelector.java new file mode 100644 index 00000000000..40eae71eafe --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/WritableSelector.java @@ -0,0 +1,12 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.WritableSelector for testing purposes + +package org.apache.tools.ant.types.selectors; + +import java.io.File; +import org.apache.tools.ant.types.selectors.FileSelector; + +public class WritableSelector implements FileSelector +{ + public WritableSelector(){} + public boolean isSelected(File p0, String p1, File p2){ return false; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/Algorithm.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/Algorithm.java new file mode 100644 index 00000000000..99e5309212f --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/Algorithm.java @@ -0,0 +1,11 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.modifiedselector.Algorithm for testing purposes + +package org.apache.tools.ant.types.selectors.modifiedselector; + +import java.io.File; + +public interface Algorithm +{ + String getValue(File p0); + boolean isValid(); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/Cache.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/Cache.java new file mode 100644 index 00000000000..20109f72f5d --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/Cache.java @@ -0,0 +1,16 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.modifiedselector.Cache for testing purposes + +package org.apache.tools.ant.types.selectors.modifiedselector; + +import java.util.Iterator; + +public interface Cache +{ + Iterator iterator(); + Object get(Object p0); + boolean isValid(); + void delete(); + void load(); + void put(Object p0, Object p1); + void save(); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java new file mode 100644 index 00000000000..ec466d03be1 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java @@ -0,0 +1,74 @@ +// Generated automatically from org.apache.tools.ant.types.selectors.modifiedselector.ModifiedSelector for testing purposes + +package org.apache.tools.ant.types.selectors.modifiedselector; + +import java.io.File; +import java.util.Comparator; +import org.apache.tools.ant.BuildEvent; +import org.apache.tools.ant.BuildListener; +import org.apache.tools.ant.types.EnumeratedAttribute; +import org.apache.tools.ant.types.Parameter; +import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.Resource; +import org.apache.tools.ant.types.resources.selectors.ResourceSelector; +import org.apache.tools.ant.types.selectors.BaseExtendSelector; +import org.apache.tools.ant.types.selectors.modifiedselector.Algorithm; +import org.apache.tools.ant.types.selectors.modifiedselector.Cache; + +public class ModifiedSelector extends BaseExtendSelector implements BuildListener, ResourceSelector +{ + protected T loadClass(String p0, String p1, java.lang.Class p2){ return null; } + protected void saveCache(){} + protected void tryToSetAParameter(Object p0, String p1, String p2){} + public Algorithm getAlgorithm(){ return null; } + public Cache getCache(){ return null; } + public ClassLoader getClassLoader(){ return null; } + public Comparator getComparator(){ return null; } + public ModifiedSelector(){} + public String toString(){ return null; } + public boolean getDelayUpdate(){ return false; } + public boolean isSelected(File p0, String p1, File p2){ return false; } + public boolean isSelected(Resource p0){ return false; } + public int getModified(){ return 0; } + public void addClasspath(Path p0){} + public void addParam(Parameter p0){} + public void addParam(String p0, Object p1){} + public void buildFinished(BuildEvent p0){} + public void buildStarted(BuildEvent p0){} + public void configure(){} + public void messageLogged(BuildEvent p0){} + public void setAlgorithm(ModifiedSelector.AlgorithmName p0){} + public void setAlgorithmClass(String p0){} + public void setCache(ModifiedSelector.CacheName p0){} + public void setCacheClass(String p0){} + public void setClassLoader(ClassLoader p0){} + public void setComparator(ModifiedSelector.ComparatorName p0){} + public void setComparatorClass(String p0){} + public void setDelayUpdate(boolean p0){} + public void setModified(int p0){} + public void setParameters(Parameter... p0){} + public void setSeldirs(boolean p0){} + public void setSelres(boolean p0){} + public void setUpdate(boolean p0){} + public void targetFinished(BuildEvent p0){} + public void targetStarted(BuildEvent p0){} + public void taskFinished(BuildEvent p0){} + public void taskStarted(BuildEvent p0){} + public void useParameter(Parameter p0){} + public void verifySettings(){} + static public class AlgorithmName extends EnumeratedAttribute + { + public AlgorithmName(){} + public String[] getValues(){ return null; } + } + static public class CacheName extends EnumeratedAttribute + { + public CacheName(){} + public String[] getValues(){ return null; } + } + static public class ComparatorName extends EnumeratedAttribute + { + public ComparatorName(){} + public String[] getValues(){ return null; } + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileNameMapper.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileNameMapper.java new file mode 100644 index 00000000000..acfb318da43 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileNameMapper.java @@ -0,0 +1,11 @@ +// Generated automatically from org.apache.tools.ant.util.FileNameMapper for testing purposes + +package org.apache.tools.ant.util; + + +public interface FileNameMapper +{ + String[] mapFileName(String p0); + void setFrom(String p0); + void setTo(String p0); +} From 7455c2708621d2376432ca8c6a7f6fb0ae3acb79 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 17:28:35 +0100 Subject: [PATCH 14/22] org.apache.tools.ant.taskdefs tests --- .../CWE-022/semmle/tests/TaintedPath.expected | 456 ++++++++++-------- .../CWE-022/semmle/tests/mad/Test.java | 21 + .../tools/ant/filters/BaseFilterReader.java | 45 ++ .../ant/filters/BaseParamFilterReader.java | 16 + .../tools/ant/filters/ChainableReader.java | 10 + .../tools/ant/filters/ClassConstants.java | 15 + .../tools/ant/filters/EscapeUnicode.java | 15 + .../tools/ant/filters/ExpandProperties.java | 17 + .../apache/tools/ant/filters/HeadFilter.java | 17 + .../tools/ant/filters/LineContains.java | 26 + .../tools/ant/filters/LineContainsRegExp.java | 21 + .../apache/tools/ant/filters/PrefixLines.java | 16 + .../tools/ant/filters/ReplaceTokens.java | 28 ++ .../tools/ant/filters/StripJavaComments.java | 15 + .../tools/ant/filters/StripLineBreaks.java | 16 + .../tools/ant/filters/StripLineComments.java | 23 + .../apache/tools/ant/filters/SuffixLines.java | 16 + .../tools/ant/filters/TabsToSpaces.java | 16 + .../apache/tools/ant/filters/TailFilter.java | 17 + .../apache/tools/ant/filters/TokenFilter.java | 97 ++++ .../org/apache/tools/ant/taskdefs/Copy.java | 79 +++ .../org/apache/tools/ant/taskdefs/Expand.java | 47 ++ .../tools/ant/types/AntFilterReader.java | 25 + .../apache/tools/ant/types/FilterChain.java | 57 +++ .../tools/ant/types/FilterSetCollection.java | 14 + .../tools/ant/types/RegularExpression.java | 17 + .../apache/tools/ant/util/FileTokenizer.java | 14 + .../org/apache/tools/ant/util/FileUtils.java | 98 ++++ .../apache/tools/ant/util/LineTokenizer.java | 15 + .../tools/ant/util/StringTokenizer.java | 18 + .../org/apache/tools/ant/util/Tokenizer.java | 11 + .../apache/tools/ant/util/regexp/Regexp.java | 12 + .../tools/ant/util/regexp/RegexpMatcher.java | 19 + 33 files changed, 1116 insertions(+), 213 deletions(-) create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/BaseFilterReader.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/BaseParamFilterReader.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ChainableReader.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ClassConstants.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/EscapeUnicode.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ExpandProperties.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/HeadFilter.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/LineContains.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/LineContainsRegExp.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/PrefixLines.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ReplaceTokens.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripJavaComments.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripLineBreaks.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripLineComments.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/SuffixLines.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TabsToSpaces.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TailFilter.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TokenFilter.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/Copy.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/Expand.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/AntFilterReader.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterChain.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterSetCollection.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/RegularExpression.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileTokenizer.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileUtils.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/LineTokenizer.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/StringTokenizer.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/Tokenizer.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/regexp/Regexp.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/regexp/RegexpMatcher.java diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected index ed83476d7d6..55b473ab2ed 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected @@ -14,92 +14,104 @@ 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:23:16:23:36 | getHostName(...) : String | mad/Test.java:28:61:28:68 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:30:41:30:48 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:32:56:32:63 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:34:46:34:53 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:36:38:36:45 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:38:36:38:43 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:40:31:40:38 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:42:33:42:40 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:44:27:44:34 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:45:27:45:34 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:46:34:46:41 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:48:40:48:47 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:49:48:49:55 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:50:47:50:54 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:52:40:52:47 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:54:38:54:45 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:56:33:56:40 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:58:33:58:40 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:60:41:60:48 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:62:42:62:49 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:64:37:64:44 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:66:29:66:36 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:68:37:68:44 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:70:28:70:35 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:72:33:72:40 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:74:40:74:47 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:76:40:76:47 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:77:40:77:47 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:79:38:79:45 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:81:28:81:35 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:82:28:82:35 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:83:28:83:35 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:85:34:85:41 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:86:34:86:41 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:88:33:88:40 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:90:42:90:49 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:92:50:92:57 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:94:54:94:61 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:99:37:99:44 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:101:74:101:81 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:103:68:103:75 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:105:68:105:75 | source(...) : String | -| mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:110:30:110:37 | source(...) : String | -| mad/Test.java:28:61:28:68 | source(...) : String | mad/Test.java:28:52:28:68 | (...)... | -| mad/Test.java:30:41:30:48 | source(...) : String | mad/Test.java:30:32:30:48 | (...)... | -| mad/Test.java:32:56:32:63 | source(...) : String | mad/Test.java:32:47:32:63 | (...)... | -| mad/Test.java:34:46:34:53 | source(...) : String | mad/Test.java:34:39:34:53 | (...)... | -| mad/Test.java:36:38:36:45 | source(...) : String | mad/Test.java:36:31:36:45 | (...)... | -| mad/Test.java:38:36:38:43 | source(...) : String | mad/Test.java:38:29:38:43 | (...)... | -| mad/Test.java:40:31:40:38 | source(...) : String | mad/Test.java:40:24:40:38 | (...)... | -| mad/Test.java:42:33:42:40 | source(...) : String | mad/Test.java:42:24:42:40 | (...)... | -| mad/Test.java:44:27:44:34 | source(...) : String | mad/Test.java:44:20:44:34 | (...)... | -| mad/Test.java:45:27:45:34 | source(...) : String | mad/Test.java:45:20:45:34 | (...)... | -| mad/Test.java:46:34:46:41 | source(...) : String | mad/Test.java:46:20:46:41 | (...)... | -| mad/Test.java:48:40:48:47 | source(...) : String | mad/Test.java:48:33:48:47 | (...)... | -| mad/Test.java:49:48:49:55 | source(...) : String | mad/Test.java:49:33:49:55 | (...)... | -| mad/Test.java:50:47:50:54 | source(...) : String | mad/Test.java:50:40:50:54 | (...)... | -| mad/Test.java:52:40:52:47 | source(...) : String | mad/Test.java:52:33:52:47 | (...)... | -| mad/Test.java:54:38:54:45 | source(...) : String | mad/Test.java:54:31:54:45 | (...)... | -| mad/Test.java:56:33:56:40 | source(...) : String | mad/Test.java:56:26:56:40 | (...)... | -| mad/Test.java:58:33:58:40 | source(...) : String | mad/Test.java:58:26:58:40 | (...)... | -| mad/Test.java:60:41:60:48 | source(...) : String | mad/Test.java:60:34:60:48 | (...)... | -| mad/Test.java:62:42:62:49 | source(...) : String | mad/Test.java:62:35:62:49 | (...)... | -| mad/Test.java:64:37:64:44 | source(...) : String | mad/Test.java:64:30:64:44 | (...)... | -| mad/Test.java:66:29:66:36 | source(...) : String | mad/Test.java:66:22:66:36 | (...)... | -| mad/Test.java:68:37:68:44 | source(...) : String | mad/Test.java:68:30:68:44 | (...)... | -| mad/Test.java:70:28:70:35 | source(...) : String | mad/Test.java:70:21:70:35 | (...)... | -| mad/Test.java:72:33:72:40 | source(...) : String | mad/Test.java:72:26:72:40 | (...)... | -| mad/Test.java:74:40:74:47 | source(...) : String | mad/Test.java:74:33:74:47 | (...)... | -| mad/Test.java:76:40:76:47 | source(...) : String | mad/Test.java:76:33:76:47 | (...)... | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:31:61:31:68 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:33:41:33:48 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:35:56:35:63 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:37:46:37:53 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:39:38:39:45 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:41:36:41:43 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:43:31:43:38 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:45:33:45:40 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:47:27:47:34 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:48:27:48:34 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:49:34:49:41 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:51:40:51:47 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:52:48:52:55 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:53:47:53:54 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:55:40:55:47 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:57:38:57:45 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:59:33:59:40 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:61:33:61:40 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:63:41:63:48 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:65:42:65:49 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:67:37:67:44 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:69:29:69:36 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:71:37:71:44 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:73:28:73:35 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:75:33:75:40 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:77:40:77:47 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:79:40:79:47 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:80:40:80:47 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:82:38:82:45 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:84:28:84:35 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:85:28:85:35 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:86:28:86:35 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:88:34:88:41 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:89:34:89:41 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:91:33:91:40 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:93:42:93:49 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:95:50:95:57 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:97:54:97:61 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:102:37:102:44 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:104:74:104:81 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:106:68:106:75 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:108:68:108:75 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:113:30:113:37 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:118:33:118:40 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:120:27:120:34 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:122:28:122:35 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:124:29:124:36 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:129:27:129:34 | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:131:26:131:33 | source(...) : String | +| mad/Test.java:31:61:31:68 | source(...) : String | mad/Test.java:31:52:31:68 | (...)... | +| mad/Test.java:33:41:33:48 | source(...) : String | mad/Test.java:33:32:33:48 | (...)... | +| mad/Test.java:35:56:35:63 | source(...) : String | mad/Test.java:35:47:35:63 | (...)... | +| mad/Test.java:37:46:37:53 | source(...) : String | mad/Test.java:37:39:37:53 | (...)... | +| mad/Test.java:39:38:39:45 | source(...) : String | mad/Test.java:39:31:39:45 | (...)... | +| mad/Test.java:41:36:41:43 | source(...) : String | mad/Test.java:41:29:41:43 | (...)... | +| mad/Test.java:43:31:43:38 | source(...) : String | mad/Test.java:43:24:43:38 | (...)... | +| mad/Test.java:45:33:45:40 | source(...) : String | mad/Test.java:45:24:45:40 | (...)... | +| mad/Test.java:47:27:47:34 | source(...) : String | mad/Test.java:47:20:47:34 | (...)... | +| mad/Test.java:48:27:48:34 | source(...) : String | mad/Test.java:48:20:48:34 | (...)... | +| mad/Test.java:49:34:49:41 | source(...) : String | mad/Test.java:49:20:49:41 | (...)... | +| mad/Test.java:51:40:51:47 | source(...) : String | mad/Test.java:51:33:51:47 | (...)... | +| mad/Test.java:52:48:52:55 | source(...) : String | mad/Test.java:52:33:52:55 | (...)... | +| mad/Test.java:53:47:53:54 | source(...) : String | mad/Test.java:53:40:53:54 | (...)... | +| mad/Test.java:55:40:55:47 | source(...) : String | mad/Test.java:55:33:55:47 | (...)... | +| mad/Test.java:57:38:57:45 | source(...) : String | mad/Test.java:57:31:57:45 | (...)... | +| mad/Test.java:59:33:59:40 | source(...) : String | mad/Test.java:59:26:59:40 | (...)... | +| mad/Test.java:61:33:61:40 | source(...) : String | mad/Test.java:61:26:61:40 | (...)... | +| mad/Test.java:63:41:63:48 | source(...) : String | mad/Test.java:63:34:63:48 | (...)... | +| mad/Test.java:65:42:65:49 | source(...) : String | mad/Test.java:65:35:65:49 | (...)... | +| mad/Test.java:67:37:67:44 | source(...) : String | mad/Test.java:67:30:67:44 | (...)... | +| mad/Test.java:69:29:69:36 | source(...) : String | mad/Test.java:69:22:69:36 | (...)... | +| mad/Test.java:71:37:71:44 | source(...) : String | mad/Test.java:71:30:71:44 | (...)... | +| mad/Test.java:73:28:73:35 | source(...) : String | mad/Test.java:73:21:73:35 | (...)... | +| mad/Test.java:75:33:75:40 | source(...) : String | mad/Test.java:75:26:75:40 | (...)... | | mad/Test.java:77:40:77:47 | source(...) : String | mad/Test.java:77:33:77:47 | (...)... | -| mad/Test.java:79:38:79:45 | source(...) : String | mad/Test.java:79:31:79:45 | (...)... | -| mad/Test.java:81:28:81:35 | source(...) : String | mad/Test.java:81:21:81:35 | (...)... | -| mad/Test.java:82:28:82:35 | source(...) : String | mad/Test.java:82:21:82:35 | (...)... | -| mad/Test.java:83:28:83:35 | source(...) : String | mad/Test.java:83:21:83:35 | (...)... | -| mad/Test.java:85:34:85:41 | source(...) : String | mad/Test.java:85:27:85:41 | (...)... | -| mad/Test.java:86:34:86:41 | source(...) : String | mad/Test.java:86:27:86:41 | (...)... | -| mad/Test.java:88:33:88:40 | source(...) : String | mad/Test.java:88:26:88:40 | (...)... | -| mad/Test.java:90:42:90:49 | source(...) : String | mad/Test.java:90:35:90:49 | (...)... | -| mad/Test.java:92:50:92:57 | source(...) : String | mad/Test.java:92:41:92:57 | (...)... | -| mad/Test.java:94:54:94:61 | source(...) : String | mad/Test.java:94:45:94:61 | (...)... | -| mad/Test.java:99:37:99:44 | source(...) : String | mad/Test.java:99:30:99:44 | (...)... | -| mad/Test.java:101:74:101:81 | source(...) : String | mad/Test.java:101:40:101:81 | (...)... | -| mad/Test.java:103:68:103:75 | source(...) : String | mad/Test.java:103:34:103:75 | (...)... | -| mad/Test.java:105:68:105:75 | source(...) : String | mad/Test.java:105:34:105:75 | (...)... | -| mad/Test.java:110:30:110:37 | source(...) : String | mad/Test.java:110:23:110:37 | (...)... | +| mad/Test.java:79:40:79:47 | source(...) : String | mad/Test.java:79:33:79:47 | (...)... | +| mad/Test.java:80:40:80:47 | source(...) : String | mad/Test.java:80:33:80:47 | (...)... | +| mad/Test.java:82:38:82:45 | source(...) : String | mad/Test.java:82:31:82:45 | (...)... | +| mad/Test.java:84:28:84:35 | source(...) : String | mad/Test.java:84:21:84:35 | (...)... | +| mad/Test.java:85:28:85:35 | source(...) : String | mad/Test.java:85:21:85:35 | (...)... | +| mad/Test.java:86:28:86:35 | source(...) : String | mad/Test.java:86:21:86:35 | (...)... | +| mad/Test.java:88:34:88:41 | source(...) : String | mad/Test.java:88:27:88:41 | (...)... | +| mad/Test.java:89:34:89:41 | source(...) : String | mad/Test.java:89:27:89:41 | (...)... | +| mad/Test.java:91:33:91:40 | source(...) : String | mad/Test.java:91:26:91:40 | (...)... | +| mad/Test.java:93:42:93:49 | source(...) : String | mad/Test.java:93:35:93:49 | (...)... | +| mad/Test.java:95:50:95:57 | source(...) : String | mad/Test.java:95:41:95:57 | (...)... | +| mad/Test.java:97:54:97:61 | source(...) : String | mad/Test.java:97:45:97:61 | (...)... | +| mad/Test.java:102:37:102:44 | source(...) : String | mad/Test.java:102:30:102:44 | (...)... | +| mad/Test.java:104:74:104:81 | source(...) : String | mad/Test.java:104:40:104:81 | (...)... | +| mad/Test.java:106:68:106:75 | source(...) : String | mad/Test.java:106:34:106:75 | (...)... | +| mad/Test.java:108:68:108:75 | source(...) : String | mad/Test.java:108:34:108:75 | (...)... | +| mad/Test.java:113:30:113:37 | source(...) : String | mad/Test.java:113:23:113:37 | (...)... | +| mad/Test.java:118:33:118:40 | source(...) : String | mad/Test.java:118:23:118:40 | (...)... | +| mad/Test.java:120:27:120:34 | source(...) : String | mad/Test.java:120:20:120:34 | (...)... | +| mad/Test.java:122:28:122:35 | source(...) : String | mad/Test.java:122:21:122:35 | (...)... | +| mad/Test.java:124:29:124:36 | source(...) : String | mad/Test.java:124:22:124:36 | (...)... | +| mad/Test.java:129:27:129:34 | source(...) : String | mad/Test.java:129:20:129:34 | (...)... | +| mad/Test.java:131:26:131:33 | source(...) : String | mad/Test.java:131:19:131:33 | (...)... | nodes | Test.java:19:18:19:38 | getHostName(...) : String | semmle.label | getHostName(...) : String | | Test.java:24:20:24:23 | temp | semmle.label | temp | @@ -120,93 +132,105 @@ 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:23:16:23:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | -| mad/Test.java:28:52:28:68 | (...)... | semmle.label | (...)... | -| mad/Test.java:28:61:28:68 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:30:32:30:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:30:41:30:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:32:47:32:63 | (...)... | semmle.label | (...)... | -| mad/Test.java:32:56:32:63 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:34:39:34:53 | (...)... | semmle.label | (...)... | -| mad/Test.java:34:46:34:53 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:36:31:36:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:36:38:36:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:38:29:38:43 | (...)... | semmle.label | (...)... | -| mad/Test.java:38:36:38:43 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:40:24:40:38 | (...)... | semmle.label | (...)... | -| mad/Test.java:40:31:40:38 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:42:24:42:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:42:33:42:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:44:20:44:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:44:27:44:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:45:20:45:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:45:27:45:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:46:20:46:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:46:34:46:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:48:33:48:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:48:40:48:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:49:33:49:55 | (...)... | semmle.label | (...)... | -| mad/Test.java:49:48:49:55 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:50:40:50:54 | (...)... | semmle.label | (...)... | -| mad/Test.java:50:47:50:54 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:52:33:52:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:52:40:52:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:54:31:54:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:54:38:54:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:56:26:56:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:56:33:56:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:58:26:58:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:58:33:58:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:60:34:60:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:60:41:60:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:62:35:62:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:62:42:62:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:64:30:64:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:64:37:64:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:66:22:66:36 | (...)... | semmle.label | (...)... | -| mad/Test.java:66:29:66:36 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:68:30:68:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:68:37:68:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:70:21:70:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:70:28:70:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:72:26:72:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:72:33:72:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:74:33:74:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:74:40:74:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:76:33:76:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:76:40:76:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:26:16:26:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | +| mad/Test.java:31:52:31:68 | (...)... | semmle.label | (...)... | +| mad/Test.java:31:61:31:68 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:33:32:33:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:33:41:33:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:35:47:35:63 | (...)... | semmle.label | (...)... | +| mad/Test.java:35:56:35:63 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:37:39:37:53 | (...)... | semmle.label | (...)... | +| mad/Test.java:37:46:37:53 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:39:31:39:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:39:38:39:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:41:29:41:43 | (...)... | semmle.label | (...)... | +| mad/Test.java:41:36:41:43 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:43:24:43:38 | (...)... | semmle.label | (...)... | +| mad/Test.java:43:31:43:38 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:45:24:45:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:45:33:45:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:47:20:47:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:47:27:47:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:48:20:48:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:48:27:48:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:49:20:49:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:49:34:49:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:51:33:51:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:51:40:51:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:52:33:52:55 | (...)... | semmle.label | (...)... | +| mad/Test.java:52:48:52:55 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:53:40:53:54 | (...)... | semmle.label | (...)... | +| mad/Test.java:53:47:53:54 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:55:33:55:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:55:40:55:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:57:31:57:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:57:38:57:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:59:26:59:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:59:33:59:40 | 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:34:63:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:63:41:63:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:65:35:65:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:65:42:65:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:67:30:67:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:67:37:67:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:69:22:69:36 | (...)... | semmle.label | (...)... | +| mad/Test.java:69:29:69:36 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:71:30:71:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:71:37:71:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:73:21:73:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:73:28:73:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:75:26:75:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:75:33:75:40 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:77:33:77:47 | (...)... | semmle.label | (...)... | | mad/Test.java:77:40:77:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:79:31:79:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:79:38:79:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:81:21:81:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:81:28:81:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:82:21:82:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:82:28:82:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:83:21:83:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:83:28:83:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:85:27:85:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:85:34:85:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:86:27:86:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:86:34:86:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:88:26:88:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:88:33:88:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:90:35:90:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:90:42:90:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:92:41:92:57 | (...)... | semmle.label | (...)... | -| mad/Test.java:92:50:92:57 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:94:45:94:61 | (...)... | semmle.label | (...)... | -| mad/Test.java:94:54:94:61 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:99:30:99:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:99:37:99:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:101:40:101:81 | (...)... | semmle.label | (...)... | -| mad/Test.java:101:74:101:81 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:103:34:103:75 | (...)... | semmle.label | (...)... | -| mad/Test.java:103:68:103:75 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:105:34:105:75 | (...)... | semmle.label | (...)... | -| mad/Test.java:105:68:105:75 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:110:23:110:37 | (...)... | semmle.label | (...)... | -| mad/Test.java:110:30:110:37 | 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:80:33:80:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:80:40:80:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:82:31:82:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:82:38:82:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:84:21:84:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:84:28:84:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:85:21:85:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:85:28:85:35 | 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:88:27:88:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:88:34:88:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:89:27:89:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:89:34:89:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:91:26:91:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:91:33:91:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:93:35:93:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:93:42:93:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:95:41:95:57 | (...)... | semmle.label | (...)... | +| mad/Test.java:95:50:95:57 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:97:45:97:61 | (...)... | semmle.label | (...)... | +| mad/Test.java:97:54:97:61 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:102:30:102:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:102:37:102:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:104:40:104:81 | (...)... | semmle.label | (...)... | +| mad/Test.java:104:74:104:81 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:106:34:106:75 | (...)... | semmle.label | (...)... | +| mad/Test.java:106:68:106:75 | 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:113:23:113:37 | (...)... | semmle.label | (...)... | +| mad/Test.java:113:30:113:37 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:118:23:118:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:118:33:118:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:120:20:120:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:120:27:120:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:122:21:122:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:122:28:122:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:124:22:124:36 | (...)... | semmle.label | (...)... | +| mad/Test.java:124:29:124:36 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:129:20:129:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:129:27:129:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:131:19:131:33 | (...)... | semmle.label | (...)... | +| mad/Test.java:131:26:131:33 | 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 | @@ -220,46 +244,52 @@ 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:28:52:28:68 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:28:52:28:68 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:30:32:30:48 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:30:32:30:48 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:32:47:32:63 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:32:47:32:63 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:34:39:34:53 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:34:39:34:53 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:36:31:36:45 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:36:31:36:45 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:38:29:38:43 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:38:29:38:43 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:40:24:40:38 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:40:24:40:38 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:42:9:42:41 | new FileReader(...) | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:42:24:42:40 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:44:20:44:34 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:44:20:44:34 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:45:20:45:34 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:45:20:45:34 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:46:20:46:41 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:46:20:46:41 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:48:33:48:47 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:48:33:48:47 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:49:33:49:55 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:49:33:49:55 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:50:40:50:54 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:50:40:50:54 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:52:33:52:47 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:52:33:52:47 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:54:31:54:45 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:54:31:54:45 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:56:26:56:40 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:56:26:56:40 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:58:26:58:40 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:58:26:58:40 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:60:34:60:48 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:60:34:60:48 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:62:35:62:49 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:62:35:62:49 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:64:30:64:44 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:64:30:64:44 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:66:22:66:36 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:66:22:66:36 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:68:30:68:44 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:68:30:68:44 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:70:21:70:35 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:70:21:70:35 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:72:26:72:40 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:72:26:72:40 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:74:33:74:47 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:74:33:74:47 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:76:33:76:47 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:76:33:76:47 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:77:33:77:47 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:77:33:77:47 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:79:31:79:45 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:79:31:79:45 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:81:21:81:35 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:81:21:81:35 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:82:21:82:35 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:82:21:82:35 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:83:21:83:35 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:83:21:83:35 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:85:27:85:41 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:85:27:85:41 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:86:27:86:41 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:86:27:86:41 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:88:26:88:40 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:88:26:88:40 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:90:35:90:49 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:90:35:90:49 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:92:41:92:57 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:92:41:92:57 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:94:45:94:61 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:94:45:94:61 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:99:30:99:44 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:99:30:99:44 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:101:40:101:81 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:101:40:101:81 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:103:34:103:75 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:103:34:103:75 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:105:34:105:75 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:105:34:105:75 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | -| mad/Test.java:110:23:110:37 | (...)... | mad/Test.java:23:16:23:36 | getHostName(...) : String | mad/Test.java:110:23:110:37 | (...)... | This path depends on a $@. | mad/Test.java:23:16:23:36 | getHostName(...) | user-provided value | +| mad/Test.java:31:52:31:68 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:31:52:31:68 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:33:32:33:48 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:33:32:33:48 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:35:47:35:63 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:35:47:35:63 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:37:39:37:53 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:37:39:37:53 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:39:31:39:45 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:39:31:39:45 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:41:29:41:43 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:41:29:41:43 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:43:24:43:38 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:43:24:43:38 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:45:9:45:41 | new FileReader(...) | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:45:24:45:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:47:20:47:34 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:47:20:47:34 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:48:20:48:34 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:48:20:48:34 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:49:20:49:41 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:49:20:49:41 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:51:33:51:47 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:51:33:51:47 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:52:33:52:55 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:52:33:52:55 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:53:40:53:54 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:53:40:53:54 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:55:33:55:47 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:55:33:55:47 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:57:31:57:45 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:57:31:57:45 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:59:26:59:40 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:59:26:59:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:61:26:61:40 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:61:26:61:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:63:34:63:48 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:63:34:63:48 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:65:35:65:49 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:65:35:65:49 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:67:30:67:44 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:67:30:67:44 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:69:22:69:36 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:69:22:69:36 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:71:30:71:44 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:71:30:71:44 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:73:21:73:35 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:73:21:73:35 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:75:26:75:40 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:75:26:75:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:77:33:77:47 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:77:33:77:47 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:79:33:79:47 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:79:33:79:47 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:80:33:80:47 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:80:33:80:47 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:82:31:82:45 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:82:31:82:45 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:84:21:84:35 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:84:21:84:35 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:85:21:85:35 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:85:21:85:35 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:86:21:86:35 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:86:21:86:35 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:88:27:88:41 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:88:27:88:41 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:89:27:89:41 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:89:27:89:41 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:91:26:91:40 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:91:26:91:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:93:35:93:49 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:93:35:93:49 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:95:41:95:57 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:95:41:95:57 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:97:45:97:61 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:97:45:97:61 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:102:30:102:44 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:102:30:102:44 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:104:40:104:81 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:104:40:104:81 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:106:34:106:75 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:106:34:106:75 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:108:34:108:75 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:108:34:108:75 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:113:23:113:37 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:113:23:113:37 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:118:23:118:40 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:118:23:118:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:120:20:120:34 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:120:20:120:34 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:122:21:122:35 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:122:21:122:35 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:124:22:124:36 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:124:22:124:36 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:129:20:129:34 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:129:20:129:34 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:131:19:131:33 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:131:19:131:33 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java index 3c647e3645b..2a2300181ab 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java @@ -13,6 +13,9 @@ 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; public class Test { @@ -109,4 +112,22 @@ public class Test { // "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()); + } } diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/BaseFilterReader.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/BaseFilterReader.java new file mode 100644 index 00000000000..a11e4870f35 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/BaseFilterReader.java @@ -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) {} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/BaseParamFilterReader.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/BaseParamFilterReader.java new file mode 100644 index 00000000000..bde1ac20333 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/BaseParamFilterReader.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ChainableReader.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ChainableReader.java new file mode 100644 index 00000000000..124918a519a --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ChainableReader.java @@ -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); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ClassConstants.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ClassConstants.java new file mode 100644 index 00000000000..8c4e0caef48 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ClassConstants.java @@ -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; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/EscapeUnicode.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/EscapeUnicode.java new file mode 100644 index 00000000000..6b3b0536434 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/EscapeUnicode.java @@ -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; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ExpandProperties.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ExpandProperties.java new file mode 100644 index 00000000000..39b02d641b3 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ExpandProperties.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/HeadFilter.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/HeadFilter.java new file mode 100644 index 00000000000..c26685b2ff9 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/HeadFilter.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/LineContains.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/LineContains.java new file mode 100644 index 00000000000..18da8e830f4 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/LineContains.java @@ -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){} + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/LineContainsRegExp.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/LineContainsRegExp.java new file mode 100644 index 00000000000..69caa9a580d --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/LineContainsRegExp.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/PrefixLines.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/PrefixLines.java new file mode 100644 index 00000000000..5f976632eab --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/PrefixLines.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ReplaceTokens.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ReplaceTokens.java new file mode 100644 index 00000000000..d467024f676 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/ReplaceTokens.java @@ -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){} + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripJavaComments.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripJavaComments.java new file mode 100644 index 00000000000..6ed04cb1ea8 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripJavaComments.java @@ -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; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripLineBreaks.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripLineBreaks.java new file mode 100644 index 00000000000..f82f45979f4 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripLineBreaks.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripLineComments.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripLineComments.java new file mode 100644 index 00000000000..f2f6bbc2535 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/StripLineComments.java @@ -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){} + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/SuffixLines.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/SuffixLines.java new file mode 100644 index 00000000000..bed26cc32e7 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/SuffixLines.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TabsToSpaces.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TabsToSpaces.java new file mode 100644 index 00000000000..1ba4a1f41d5 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TabsToSpaces.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TailFilter.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TailFilter.java new file mode 100644 index 00000000000..48311a48b50 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TailFilter.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TokenFilter.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TokenFilter.java new file mode 100644 index 00000000000..4321d0646b6 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/filters/TokenFilter.java @@ -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); + } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/Copy.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/Copy.java new file mode 100644 index 00000000000..4b183f6403f --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/Copy.java @@ -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 completeDirMap = null; + protected Hashtable dirCopyMap = null; + protected Hashtable fileCopyMap = null; + protected Map buildMap(Resource[] p0, File p1, FileNameMapper p2){ return null; } + protected Map scan(Resource[] p0, File p1){ return null; } + protected Mapper mapperElement = null; + protected Vector getFilterChains(){ return null; } + protected Vector getFilterSets(){ return null; } + protected Vector filesets = null; + protected Vector 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 p4){} + protected void doFileOperations(){} + protected void doResourceOperations(Map 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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/Expand.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/Expand.java new file mode 100644 index 00000000000..6ed748dba40 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/taskdefs/Expand.java @@ -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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/AntFilterReader.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/AntFilterReader.java new file mode 100644 index 00000000000..5ade0fb53a2 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/AntFilterReader.java @@ -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 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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterChain.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterChain.java new file mode 100644 index 00000000000..804331f1198 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterChain.java @@ -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 p0, Project p1){} + public FilterChain(){} + public Vector 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){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterSetCollection.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterSetCollection.java new file mode 100644 index 00000000000..e20a5fc2c51 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/FilterSetCollection.java @@ -0,0 +1,14 @@ +// Generated automatically from org.apache.tools.ant.types.FilterSetCollection for testing purposes + +package org.apache.tools.ant.types; + +import org.apache.tools.ant.types.FilterSet; + +public class FilterSetCollection +{ + public FilterSetCollection(){} + public FilterSetCollection(FilterSet p0){} + public String replaceTokens(String p0){ return null; } + public boolean hasFilters(){ return false; } + public void addFilterSet(FilterSet p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/RegularExpression.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/RegularExpression.java new file mode 100644 index 00000000000..310b58c058b --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/types/RegularExpression.java @@ -0,0 +1,17 @@ +// Generated automatically from org.apache.tools.ant.types.RegularExpression for testing purposes + +package org.apache.tools.ant.types; + +import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.DataType; +import org.apache.tools.ant.util.regexp.Regexp; + +public class RegularExpression extends DataType +{ + public Regexp getRegexp(Project p0){ return null; } + public RegularExpression getRef(Project p0){ return null; } + public RegularExpression(){} + public String getPattern(Project p0){ return null; } + public static String DATA_TYPE_NAME = null; + public void setPattern(String p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileTokenizer.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileTokenizer.java new file mode 100644 index 00000000000..f993b4628fd --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileTokenizer.java @@ -0,0 +1,14 @@ +// Generated automatically from org.apache.tools.ant.util.FileTokenizer for testing purposes + +package org.apache.tools.ant.util; + +import java.io.Reader; +import org.apache.tools.ant.ProjectComponent; +import org.apache.tools.ant.util.Tokenizer; + +public class FileTokenizer extends ProjectComponent implements Tokenizer +{ + public FileTokenizer(){} + public String getPostToken(){ return null; } + public String getToken(Reader p0){ return null; } +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileUtils.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileUtils.java new file mode 100644 index 00000000000..df9449407c3 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/FileUtils.java @@ -0,0 +1,98 @@ +// Generated automatically from org.apache.tools.ant.util.FileUtils for testing purposes + +package org.apache.tools.ant.util; + +import java.io.File; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.Reader; +import java.io.Writer; +import java.net.URL; +import java.net.URLConnection; +import java.nio.channels.Channel; +import java.nio.file.Path; +import java.util.List; +import java.util.Optional; +import java.util.Vector; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.FilterChain; +import org.apache.tools.ant.types.FilterSetCollection; + +public class FileUtils +{ + protected FileUtils(){} + public File createTempFile(Project p0, String p1, String p2, File p3, boolean p4, boolean p5){ return null; } + public File createTempFile(String p0, String p1, File p2){ return null; } + public File createTempFile(String p0, String p1, File p2, boolean p3){ return null; } + public File createTempFile(String p0, String p1, File p2, boolean p3, boolean p4){ return null; } + public File getParentFile(File p0){ return null; } + public File normalize(String p0){ return null; } + public File resolveFile(File p0, String p1){ return null; } + public String fromURI(String p0){ return null; } + public String getDefaultEncoding(){ return null; } + public String removeLeadingPath(File p0, File p1){ return null; } + public String toURI(String p0){ return null; } + public String toVMSPath(File p0){ return null; } + public String[] dissect(String p0){ return null; } + public URL getFileURL(File p0){ return null; } + public boolean areSame(File p0, File p1){ return false; } + public boolean contentEquals(File p0, File p1){ return false; } + public boolean contentEquals(File p0, File p1, boolean p2){ return false; } + public boolean createNewFile(File p0){ return false; } + public boolean createNewFile(File p0, boolean p1){ return false; } + public boolean fileNameEquals(File p0, File p1){ return false; } + public boolean hasErrorInCase(File p0){ return false; } + public boolean isLeadingPath(File p0, File p1){ return false; } + public boolean isLeadingPath(File p0, File p1, boolean p2){ return false; } + public boolean isSymbolicLink(File p0, String p1){ return false; } + public boolean isUpToDate(File p0, File p1){ return false; } + public boolean isUpToDate(File p0, File p1, long p2){ return false; } + public boolean isUpToDate(long p0, long p1){ return false; } + public boolean isUpToDate(long p0, long p1, long p2){ return false; } + public boolean tryHardToDelete(File p0){ return false; } + public boolean tryHardToDelete(File p0, boolean p1){ return false; } + public long getFileTimestampGranularity(){ return 0; } + public static FileUtils getFileUtils(){ return null; } + public static FileUtils newFileUtils(){ return null; } + public static Optional isCaseSensitiveFileSystem(Path p0){ return null; } + public static OutputStream newOutputStream(Path p0, boolean p1){ return null; } + public static String getPath(List p0){ return null; } + public static String getPath(List p0, char p1){ return null; } + public static String getRelativePath(File p0, File p1){ return null; } + public static String readFully(Reader p0){ return null; } + public static String readFully(Reader p0, int p1){ return null; } + public static String safeReadFully(Reader p0){ return null; } + public static String translatePath(String p0){ return null; } + public static String[] getPathStack(String p0){ return null; } + public static boolean isAbsolutePath(String p0){ return false; } + public static boolean isContextRelativePath(String p0){ return false; } + public static long FAT_FILE_TIMESTAMP_GRANULARITY = 0; + public static long NTFS_FILE_TIMESTAMP_GRANULARITY = 0; + public static long UNIX_FILE_TIMESTAMP_GRANULARITY = 0; + public static void close(AutoCloseable p0){} + public static void close(Channel p0){} + public static void close(InputStream p0){} + public static void close(OutputStream p0){} + public static void close(Reader p0){} + public static void close(URLConnection p0){} + public static void close(Writer p0){} + public static void delete(File p0){} + public void copyFile(File p0, File p1){} + public void copyFile(File p0, File p1, FilterSetCollection p2){} + public void copyFile(File p0, File p1, FilterSetCollection p2, Vector p3, boolean p4, boolean p5, String p6, Project p7){} + public void copyFile(File p0, File p1, FilterSetCollection p2, Vector p3, boolean p4, boolean p5, String p6, String p7, Project p8){} + public void copyFile(File p0, File p1, FilterSetCollection p2, Vector p3, boolean p4, boolean p5, boolean p6, String p7, String p8, Project p9){} + public void copyFile(File p0, File p1, FilterSetCollection p2, Vector p3, boolean p4, boolean p5, boolean p6, String p7, String p8, Project p9, boolean p10){} + public void copyFile(File p0, File p1, FilterSetCollection p2, boolean p3){} + public void copyFile(File p0, File p1, FilterSetCollection p2, boolean p3, boolean p4){} + public void copyFile(File p0, File p1, FilterSetCollection p2, boolean p3, boolean p4, String p5){} + public void copyFile(String p0, String p1){} + public void copyFile(String p0, String p1, FilterSetCollection p2){} + public void copyFile(String p0, String p1, FilterSetCollection p2, Vector p3, boolean p4, boolean p5, String p6, Project p7){} + public void copyFile(String p0, String p1, FilterSetCollection p2, Vector p3, boolean p4, boolean p5, String p6, String p7, Project p8){} + public void copyFile(String p0, String p1, FilterSetCollection p2, boolean p3){} + public void copyFile(String p0, String p1, FilterSetCollection p2, boolean p3, boolean p4){} + public void copyFile(String p0, String p1, FilterSetCollection p2, boolean p3, boolean p4, String p5){} + public void rename(File p0, File p1){} + public void setFileLastModified(File p0, long p1){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/LineTokenizer.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/LineTokenizer.java new file mode 100644 index 00000000000..84643aea199 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/LineTokenizer.java @@ -0,0 +1,15 @@ +// Generated automatically from org.apache.tools.ant.util.LineTokenizer for testing purposes + +package org.apache.tools.ant.util; + +import java.io.Reader; +import org.apache.tools.ant.ProjectComponent; +import org.apache.tools.ant.util.Tokenizer; + +public class LineTokenizer extends ProjectComponent implements Tokenizer +{ + public LineTokenizer(){} + public String getPostToken(){ return null; } + public String getToken(Reader p0){ return null; } + public void setIncludeDelims(boolean p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/StringTokenizer.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/StringTokenizer.java new file mode 100644 index 00000000000..22a567cb474 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/StringTokenizer.java @@ -0,0 +1,18 @@ +// Generated automatically from org.apache.tools.ant.util.StringTokenizer for testing purposes + +package org.apache.tools.ant.util; + +import java.io.Reader; +import org.apache.tools.ant.ProjectComponent; +import org.apache.tools.ant.util.Tokenizer; + +public class StringTokenizer extends ProjectComponent implements Tokenizer +{ + public String getPostToken(){ return null; } + public String getToken(Reader p0){ return null; } + public StringTokenizer(){} + public void setDelims(String p0){} + public void setDelimsAreTokens(boolean p0){} + public void setIncludeDelims(boolean p0){} + public void setSuppressDelims(boolean p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/Tokenizer.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/Tokenizer.java new file mode 100644 index 00000000000..1277448a253 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/Tokenizer.java @@ -0,0 +1,11 @@ +// Generated automatically from org.apache.tools.ant.util.Tokenizer for testing purposes + +package org.apache.tools.ant.util; + +import java.io.Reader; + +public interface Tokenizer +{ + String getPostToken(); + String getToken(Reader p0); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/regexp/Regexp.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/regexp/Regexp.java new file mode 100644 index 00000000000..020a9af164c --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/regexp/Regexp.java @@ -0,0 +1,12 @@ +// Generated automatically from org.apache.tools.ant.util.regexp.Regexp for testing purposes + +package org.apache.tools.ant.util.regexp; + +import org.apache.tools.ant.util.regexp.RegexpMatcher; + +public interface Regexp extends RegexpMatcher +{ + String substitute(String p0, String p1, int p2); + static int REPLACE_ALL = 0; + static int REPLACE_FIRST = 0; +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/regexp/RegexpMatcher.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/regexp/RegexpMatcher.java new file mode 100644 index 00000000000..857014c4498 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/ant/util/regexp/RegexpMatcher.java @@ -0,0 +1,19 @@ +// Generated automatically from org.apache.tools.ant.util.regexp.RegexpMatcher for testing purposes + +package org.apache.tools.ant.util.regexp; + +import java.util.Vector; + +public interface RegexpMatcher +{ + String getPattern(); + Vector getGroups(String p0); + Vector getGroups(String p0, int p1); + boolean matches(String p0); + boolean matches(String p0, int p1); + static int MATCH_CASE_INSENSITIVE = 0; + static int MATCH_DEFAULT = 0; + static int MATCH_MULTILINE = 0; + static int MATCH_SINGLELINE = 0; + void setPattern(String p0); +} From cbc0ba6ac66aba094053f891103d3368a5de7d38 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 17:36:25 +0100 Subject: [PATCH 15/22] org.apache.tools.zip tests --- .../frameworks/apache-ant/Test.java | 26 +++ .../frameworks/apache-ant/options | 1 + .../frameworks/apache-ant/test.expected | 0 .../frameworks/apache-ant/test.ql | 2 + .../CentralDirectoryParsingZipExtraField.java | 10 ++ .../apache/tools/zip/GeneralPurposeBit.java | 24 +++ .../tools/zip/UnparseableExtraFieldData.java | 18 +++ .../org/apache/tools/zip/ZipEntry.java | 152 ++++++++++++++++++ .../org/apache/tools/zip/ZipExtraField.java | 15 ++ .../org/apache/tools/zip/ZipShort.java | 22 +++ 10 files changed, 270 insertions(+) create mode 100644 java/ql/test/library-tests/frameworks/apache-ant/Test.java create mode 100644 java/ql/test/library-tests/frameworks/apache-ant/options create mode 100644 java/ql/test/library-tests/frameworks/apache-ant/test.expected create mode 100644 java/ql/test/library-tests/frameworks/apache-ant/test.ql create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/CentralDirectoryParsingZipExtraField.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/GeneralPurposeBit.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/UnparseableExtraFieldData.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipEntry.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipExtraField.java create mode 100644 java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipShort.java diff --git a/java/ql/test/library-tests/frameworks/apache-ant/Test.java b/java/ql/test/library-tests/frameworks/apache-ant/Test.java new file mode 100644 index 00000000000..13ba98041c5 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/apache-ant/Test.java @@ -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 + } + + } + +} diff --git a/java/ql/test/library-tests/frameworks/apache-ant/options b/java/ql/test/library-tests/frameworks/apache-ant/options new file mode 100644 index 00000000000..ded896502ed --- /dev/null +++ b/java/ql/test/library-tests/frameworks/apache-ant/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/apache-ant-1.10.13 \ No newline at end of file diff --git a/java/ql/test/library-tests/frameworks/apache-ant/test.expected b/java/ql/test/library-tests/frameworks/apache-ant/test.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/frameworks/apache-ant/test.ql b/java/ql/test/library-tests/frameworks/apache-ant/test.ql new file mode 100644 index 00000000000..5d91e4e8e26 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/apache-ant/test.ql @@ -0,0 +1,2 @@ +import java +import TestUtilities.InlineFlowTest diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/CentralDirectoryParsingZipExtraField.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/CentralDirectoryParsingZipExtraField.java new file mode 100644 index 00000000000..6fcf116aa25 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/CentralDirectoryParsingZipExtraField.java @@ -0,0 +1,10 @@ +// Generated automatically from org.apache.tools.zip.CentralDirectoryParsingZipExtraField for testing purposes + +package org.apache.tools.zip; + +import org.apache.tools.zip.ZipExtraField; + +public interface CentralDirectoryParsingZipExtraField extends ZipExtraField +{ + void parseFromCentralDirectoryData(byte[] p0, int p1, int p2); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/GeneralPurposeBit.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/GeneralPurposeBit.java new file mode 100644 index 00000000000..16beb77481d --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/GeneralPurposeBit.java @@ -0,0 +1,24 @@ +// Generated automatically from org.apache.tools.zip.GeneralPurposeBit for testing purposes + +package org.apache.tools.zip; + + +public class GeneralPurposeBit implements Cloneable +{ + public GeneralPurposeBit(){} + public Object clone(){ return null; } + public boolean equals(Object p0){ return false; } + public boolean usesDataDescriptor(){ return false; } + public boolean usesEncryption(){ return false; } + public boolean usesStrongEncryption(){ return false; } + public boolean usesUTF8ForNames(){ return false; } + public byte[] encode(){ return null; } + public int hashCode(){ return 0; } + public static GeneralPurposeBit parse(byte[] p0, int p1){ return null; } + public static int UFT8_NAMES_FLAG = 0; + public void encode(byte[] p0, int p1){} + public void useDataDescriptor(boolean p0){} + public void useEncryption(boolean p0){} + public void useStrongEncryption(boolean p0){} + public void useUTF8ForNames(boolean p0){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/UnparseableExtraFieldData.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/UnparseableExtraFieldData.java new file mode 100644 index 00000000000..df24aad1a79 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/UnparseableExtraFieldData.java @@ -0,0 +1,18 @@ +// Generated automatically from org.apache.tools.zip.UnparseableExtraFieldData for testing purposes + +package org.apache.tools.zip; + +import org.apache.tools.zip.CentralDirectoryParsingZipExtraField; +import org.apache.tools.zip.ZipShort; + +public class UnparseableExtraFieldData implements CentralDirectoryParsingZipExtraField +{ + public UnparseableExtraFieldData(){} + public ZipShort getCentralDirectoryLength(){ return null; } + public ZipShort getHeaderId(){ return null; } + public ZipShort getLocalFileDataLength(){ return null; } + public byte[] getCentralDirectoryData(){ return null; } + public byte[] getLocalFileDataData(){ return null; } + public void parseFromCentralDirectoryData(byte[] p0, int p1, int p2){} + public void parseFromLocalFileData(byte[] p0, int p1, int p2){} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipEntry.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipEntry.java new file mode 100644 index 00000000000..83ab406142d --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipEntry.java @@ -0,0 +1,152 @@ +// Generated automatically from org.apache.tools.zip.ZipEntry for testing purposes + +package org.apache.tools.zip; + +import java.io.File; +import java.util.Date; +import org.apache.tools.zip.GeneralPurposeBit; +import org.apache.tools.zip.UnparseableExtraFieldData; +import org.apache.tools.zip.ZipExtraField; +import org.apache.tools.zip.ZipShort; + +public class ZipEntry extends java.util.zip.ZipEntry implements Cloneable { + protected ZipEntry() { + super(""); + } + + protected void setExtra() {} + + protected void setName(String p0) {} + + protected void setName(String p0, byte[] p1) {} + + protected void setPlatform(int p0) {} + + public Date getLastModifiedDate() { + return null; + } + + public GeneralPurposeBit getGeneralPurposeBit() { + return null; + } + + public Object clone() { + return null; + } + + public String getName() { + return null; + } + + public UnparseableExtraFieldData getUnparseableExtraFieldData() { + return null; + } + + public ZipEntry(File p0, String p1) { + super(""); + } + + public ZipEntry(String p0) { + super(""); + } + + public ZipEntry(java.util.zip.ZipEntry p0) { + super(""); + } + + public ZipEntry(org.apache.tools.zip.ZipEntry p0) { + super(""); + } + + public ZipExtraField getExtraField(ZipShort p0) { + return null; + } + + public ZipExtraField[] getExtraFields() { + return null; + } + + public ZipExtraField[] getExtraFields(boolean p0) { + return null; + } + + public boolean equals(Object p0) { + return false; + } + + public boolean isDirectory() { + return false; + } + + public byte[] getCentralDirectoryExtra() { + return null; + } + + public byte[] getLocalFileDataExtra() { + return null; + } + + public byte[] getRawName() { + return null; + } + + public int getInternalAttributes() { + return 0; + } + + public int getMethod() { + return 0; + } + + public int getPlatform() { + return 0; + } + + public int getUnixMode() { + return 0; + } + + public int hashCode() { + return 0; + } + + public long getExternalAttributes() { + return 0; + } + + public long getSize() { + return 0; + } + + public static int CRC_UNKNOWN = 0; + public static int PLATFORM_FAT = 0; + public static int PLATFORM_UNIX = 0; + + public void addAsFirstExtraField(ZipExtraField p0) {} + + public void addExtraField(ZipExtraField p0) {} + + public void removeExtraField(ZipShort p0) {} + + public void removeUnparseableExtraFieldData() {} + + public void setCentralDirectoryExtra(byte[] p0) {} + + public void setComprSize(long p0) {} + + public void setExternalAttributes(long p0) {} + + public void setExtra(byte[] p0) {} + + public void setExtraFields(ZipExtraField[] p0) {} + + public void setGeneralPurposeBit(GeneralPurposeBit p0) {} + + public void setInternalAttributes(int p0) {} + + public void setMethod(int p0) {} + + public void setSize(long p0) {} + + public void setUnixMode(int p0) {} +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipExtraField.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipExtraField.java new file mode 100644 index 00000000000..9fbac163529 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipExtraField.java @@ -0,0 +1,15 @@ +// Generated automatically from org.apache.tools.zip.ZipExtraField for testing purposes + +package org.apache.tools.zip; + +import org.apache.tools.zip.ZipShort; + +public interface ZipExtraField +{ + ZipShort getCentralDirectoryLength(); + ZipShort getHeaderId(); + ZipShort getLocalFileDataLength(); + byte[] getCentralDirectoryData(); + byte[] getLocalFileDataData(); + void parseFromLocalFileData(byte[] p0, int p1, int p2); +} diff --git a/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipShort.java b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipShort.java new file mode 100644 index 00000000000..7d60df12c47 --- /dev/null +++ b/java/ql/test/stubs/apache-ant-1.10.13/org/apache/tools/zip/ZipShort.java @@ -0,0 +1,22 @@ +// Generated automatically from org.apache.tools.zip.ZipShort for testing purposes + +package org.apache.tools.zip; + + +public class ZipShort implements Cloneable +{ + protected ZipShort() {} + public Object clone(){ return null; } + public String toString(){ return null; } + public ZipShort(byte[] p0){} + public ZipShort(byte[] p0, int p1){} + public ZipShort(int p0){} + public boolean equals(Object p0){ return false; } + public byte[] getBytes(){ return null; } + public int getValue(){ return 0; } + public int hashCode(){ return 0; } + public static byte[] getBytes(int p0){ return null; } + public static int getValue(byte[] p0){ return 0; } + public static int getValue(byte[] p0, int p1){ return 0; } + public static void putShort(int p0, byte[] p1, int p2){} +} From 44f239f4a43b161fa2e904d5f50ccdcadf01a463 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 18:21:19 +0100 Subject: [PATCH 16/22] Fix org.kohsuke.stapler.framework.adjunct models --- java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml b/java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml index 9376c09210d..2d855a9aa42 100644 --- a/java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml +++ b/java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml @@ -3,4 +3,4 @@ extensions: 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.AdjunctManager.rootURL]", "taint", "ai-generated"] # the class never accesses the URL, but the field is public + - ["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 From fe1cc405ebbf31a7d4d70bac72028c99747219b4 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 14 Mar 2023 18:21:38 +0100 Subject: [PATCH 17/22] org.kohsuke.stapler.framework.adjunct tests --- .../frameworks/stapler/Test.java | 26 ++++ .../library-tests/frameworks/stapler/options | 1 + .../frameworks/stapler/test.expected | 0 .../library-tests/frameworks/stapler/test.ql | 2 + .../commons/beanutils/ConvertUtilsBean.java | 37 +++++ .../apache/commons/beanutils/Converter.java | 9 ++ .../apache/commons/fileupload/FileItem.java | 27 ++++ .../commons/fileupload/FileItemHeaders.java | 12 ++ .../fileupload/FileItemHeadersSupport.java | 11 ++ .../commons/lang/exception/Nestable.java | 22 +++ .../lang/exception/NestableDelegate.java | 30 ++++ .../exception/NestableRuntimeException.java | 30 ++++ .../javax-servlet-2.5/javax/AsyncContext.java | 31 ++++ .../javax-servlet-2.5/javax/AsyncEvent.java | 20 +++ .../javax/AsyncListener.java | 14 ++ .../javax/DispatcherType.java | 10 ++ .../stubs/javax-servlet-2.5/javax/Filter.java | 15 ++ .../javax-servlet-2.5/javax/FilterChain.java | 11 ++ .../javax-servlet-2.5/javax/FilterConfig.java | 14 ++ .../javax/FilterRegistration.java | 19 +++ .../javax/GenericServlet.java | 28 ++++ .../javax/HttpConstraintElement.java | 16 ++ .../javax/HttpMethodConstraintElement.java | 13 ++ .../javax/MultipartConfigElement.java | 17 ++ .../javax-servlet-2.5/javax/ReadListener.java | 12 ++ .../javax-servlet-2.5/javax/Registration.java | 20 +++ .../javax/RequestDispatcher.java | 30 ++++ .../javax-servlet-2.5/javax/Servlet.java | 16 ++ .../javax/ServletConfig.java | 14 ++ .../javax/ServletContext.java | 83 ++++++++++ .../javax/ServletContextEvent.java | 13 ++ .../javax/ServletInputStream.java | 15 ++ .../javax/ServletOutputStream.java | 28 ++++ .../javax/ServletRegistration.java | 23 +++ .../javax/ServletRequest.java | 55 +++++++ .../javax/ServletRequestWrapper.java | 62 ++++++++ .../javax/ServletResponse.java | 27 ++++ .../javax/ServletResponseWrapper.java | 34 ++++ .../javax/ServletSecurityElement.java | 19 +++ .../javax/SessionCookieConfig.java | 22 +++ .../javax/SessionTrackingMode.java | 10 ++ .../javax/WriteListener.java | 11 ++ .../javax/annotation/HttpConstraint.java | 18 +++ .../annotation/HttpMethodConstraint.java | 19 +++ .../javax/annotation/MultipartConfig.java | 19 +++ .../javax/annotation/ServletSecurity.java | 33 ++++ .../javax/descriptor/JspConfigDescriptor.java | 13 ++ .../JspPropertyGroupDescriptor.java | 21 +++ .../javax/descriptor/TaglibDescriptor.java | 10 ++ .../javax-servlet-2.5/javax/http/Cookie.java | 29 ++++ .../javax/http/HttpServlet.java | 24 +++ .../javax/http/HttpServletMapping.java | 13 ++ .../javax/http/HttpServletRequest.java | 60 +++++++ .../javax/http/HttpServletRequestWrapper.java | 59 +++++++ .../javax/http/HttpServletResponse.java | 77 +++++++++ .../http/HttpServletResponseWrapper.java | 39 +++++ .../javax/http/HttpSession.java | 28 ++++ .../javax/http/HttpSessionContext.java | 12 ++ .../javax/http/HttpUpgradeHandler.java | 11 ++ .../javax/http/MappingMatch.java | 10 ++ .../javax-servlet-2.5/javax/http/Part.java | 20 +++ .../javax/http/PushBuilder.java | 23 +++ .../javax/http/WebConnection.java | 12 ++ .../javax/servlet/AsyncContext.java | 2 +- .../javax/servlet/GenericServlet.java | 28 ++++ .../javax/servlet/ServletContext.java | 6 +- .../javax/servlet/ServletContextEvent.java | 20 +++ .../servlet/annotation/HttpConstraint.java | 7 +- .../annotation/HttpMethodConstraint.java | 19 +++ .../servlet/annotation/MultipartConfig.java | 8 +- .../servlet/annotation/ServletSecurity.java | 14 +- .../javax/servlet/http/HttpServlet.java | 24 +++ .../servlet/http/HttpServletRequest.java | 2 + .../http/HttpServletRequestWrapper.java | 2 + .../servlet/http/HttpUpgradeHandler.java | 11 ++ .../javax/servlet/http/WebConnection.java | 12 ++ .../net/sf/json/AbstractJSON.java | 51 ++++++ .../stubs/saxon-xqj-9.x/net/sf/json/JSON.java | 17 ++ .../saxon-xqj-9.x/net/sf/json/JSONArray.java | 133 ++++++++++++++++ .../net/sf/json/JSONException.java | 13 ++ .../saxon-xqj-9.x/net/sf/json/JSONNull.java | 22 +++ .../saxon-xqj-9.x/net/sf/json/JSONObject.java | 100 ++++++++++++ .../saxon-xqj-9.x/net/sf/json/JsonConfig.java | 146 ++++++++++++++++++ .../processors/DefaultValueProcessor.java | 9 ++ .../DefaultValueProcessorMatcher.java | 12 ++ .../sf/json/processors/JsonBeanProcessor.java | 11 ++ .../processors/JsonBeanProcessorMatcher.java | 12 ++ .../json/processors/JsonValueProcessor.java | 11 ++ .../processors/JsonValueProcessorMatcher.java | 12 ++ .../processors/PropertyNameProcessor.java | 9 ++ .../PropertyNameProcessorMatcher.java | 12 ++ .../sf/json/util/CycleDetectionStrategy.java | 18 +++ .../json/util/JavaIdentifierTransformer.java | 16 ++ .../net/sf/json/util/JsonEventListener.java | 17 ++ .../sf/json/util/NewBeanInstanceStrategy.java | 12 ++ .../util/PropertyExclusionClassMatcher.java | 12 ++ .../net/sf/json/util/PropertyFilter.java | 9 ++ .../net/sf/json/util/PropertySetStrategy.java | 13 ++ .../org/kohsuke/stapler/AbstractTearOff.java | 23 +++ .../org/kohsuke/stapler/Ancestor.java | 16 ++ .../org/kohsuke/stapler/AncestorImpl.java | 19 +++ .../org/kohsuke/stapler/BindInterceptor.java | 15 ++ .../kohsuke/stapler/CachingScriptLoader.java | 14 ++ .../org/kohsuke/stapler/CrumbIssuer.java | 16 ++ .../kohsuke/stapler/DispatchValidator.java | 15 ++ .../org/kohsuke/stapler/Dispatcher.java | 25 +++ .../kohsuke/stapler/DispatchersFilter.java | 13 ++ .../org/kohsuke/stapler/Facet.java | 35 +++++ .../org/kohsuke/stapler/Function.java | 30 ++++ .../org/kohsuke/stapler/FunctionList.java | 29 ++++ .../org/kohsuke/stapler/HttpResponse.java | 11 ++ .../kohsuke/stapler/HttpResponseRenderer.java | 12 ++ .../stapler/JsonInErrorMessageSanitizer.java | 11 ++ .../org/kohsuke/stapler/MetaClass.java | 28 ++++ .../org/kohsuke/stapler/MetaClassLoader.java | 15 ++ .../org/kohsuke/stapler/RequestImpl.java | 80 ++++++++++ .../org/kohsuke/stapler/ResponseImpl.java | 48 ++++++ .../org/kohsuke/stapler/ScriptExecutor.java | 11 ++ .../org/kohsuke/stapler/SingleLinkedList.java | 20 +++ .../org/kohsuke/stapler/Stapler.java | 41 +++++ .../org/kohsuke/stapler/StaplerFallback.java | 9 ++ .../org/kohsuke/stapler/StaplerRequest.java | 64 ++++++++ .../org/kohsuke/stapler/StaplerResponse.java | 37 +++++ .../org/kohsuke/stapler/TearOffSupport.java | 12 ++ .../org/kohsuke/stapler/TokenList.java | 26 ++++ .../org/kohsuke/stapler/WebApp.java | 76 +++++++++ .../org/kohsuke/stapler/bind/Bound.java | 14 ++ .../stapler/bind/BoundObjectTable.java | 25 +++ .../FilteredDispatchTriggerListener.java | 12 ++ .../FilteredDoActionTriggerListener.java | 13 ++ .../event/FilteredFieldTriggerListener.java | 13 ++ .../event/FilteredGetterTriggerListener.java | 13 ++ .../export/ClassAttributeBehaviour.java | 15 ++ .../kohsuke/stapler/export/DataWriter.java | 21 +++ .../kohsuke/stapler/export/ExportConfig.java | 23 +++ .../stapler/export/ExportInterceptor.java | 16 ++ .../org/kohsuke/stapler/export/Flavor.java | 28 ++++ .../org/kohsuke/stapler/export/Model.java | 19 +++ .../org/kohsuke/stapler/export/Property.java | 25 +++ .../org/kohsuke/stapler/export/Range.java | 19 +++ .../kohsuke/stapler/export/TreePruner.java | 14 ++ .../stapler/framework/adjunct/Adjunct.java | 27 ++++ .../framework/adjunct/AdjunctManager.java | 23 +++ .../kohsuke/stapler/lang/AnnotatedRef.java | 11 ++ .../org/kohsuke/stapler/lang/FieldRef.java | 24 +++ .../org/kohsuke/stapler/lang/Klass.java | 34 ++++ .../kohsuke/stapler/lang/KlassNavigator.java | 27 ++++ .../org/kohsuke/stapler/lang/MethodRef.java | 15 ++ 148 files changed, 3456 insertions(+), 7 deletions(-) create mode 100644 java/ql/test/library-tests/frameworks/stapler/Test.java create mode 100644 java/ql/test/library-tests/frameworks/stapler/options create mode 100644 java/ql/test/library-tests/frameworks/stapler/test.expected create mode 100644 java/ql/test/library-tests/frameworks/stapler/test.ql create mode 100644 java/ql/test/stubs/apache-commons-beanutils/org/apache/commons/beanutils/ConvertUtilsBean.java create mode 100644 java/ql/test/stubs/apache-commons-beanutils/org/apache/commons/beanutils/Converter.java create mode 100644 java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItem.java create mode 100644 java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItemHeaders.java create mode 100644 java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItemHeadersSupport.java create mode 100644 java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/Nestable.java create mode 100644 java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/NestableDelegate.java create mode 100644 java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/NestableRuntimeException.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/AsyncContext.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/AsyncEvent.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/AsyncListener.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/DispatcherType.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/Filter.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/FilterChain.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/FilterConfig.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/FilterRegistration.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/GenericServlet.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/HttpConstraintElement.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/HttpMethodConstraintElement.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/MultipartConfigElement.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ReadListener.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/Registration.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/RequestDispatcher.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/Servlet.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ServletConfig.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ServletContext.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ServletContextEvent.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ServletInputStream.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ServletOutputStream.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ServletRegistration.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ServletRequest.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ServletRequestWrapper.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ServletResponse.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ServletResponseWrapper.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/ServletSecurityElement.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/SessionCookieConfig.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/SessionTrackingMode.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/WriteListener.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpConstraint.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpMethodConstraint.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/annotation/MultipartConfig.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/annotation/ServletSecurity.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspConfigDescriptor.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspPropertyGroupDescriptor.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/TaglibDescriptor.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/Cookie.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServlet.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletMapping.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequest.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequestWrapper.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponse.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponseWrapper.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSession.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSessionContext.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpUpgradeHandler.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/MappingMatch.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/Part.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/PushBuilder.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/WebConnection.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/servlet/GenericServlet.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextEvent.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/HttpMethodConstraint.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServlet.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpUpgradeHandler.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/WebConnection.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/AbstractJSON.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSON.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONArray.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONException.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONNull.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONObject.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JsonConfig.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/DefaultValueProcessor.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/DefaultValueProcessorMatcher.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonBeanProcessor.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonBeanProcessorMatcher.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonValueProcessor.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonValueProcessorMatcher.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/PropertyNameProcessor.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/PropertyNameProcessorMatcher.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/CycleDetectionStrategy.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/JavaIdentifierTransformer.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/JsonEventListener.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/NewBeanInstanceStrategy.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertyExclusionClassMatcher.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertyFilter.java create mode 100644 java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertySetStrategy.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/AbstractTearOff.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Ancestor.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/AncestorImpl.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/BindInterceptor.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/CachingScriptLoader.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/CrumbIssuer.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/DispatchValidator.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Dispatcher.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/DispatchersFilter.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Facet.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Function.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/FunctionList.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponse.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponseRenderer.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/JsonInErrorMessageSanitizer.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/MetaClass.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/MetaClassLoader.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/RequestImpl.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ResponseImpl.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ScriptExecutor.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/SingleLinkedList.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Stapler.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerFallback.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerRequest.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerResponse.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/TearOffSupport.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/TokenList.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/WebApp.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/bind/Bound.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/bind/BoundObjectTable.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredDispatchTriggerListener.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredDoActionTriggerListener.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredFieldTriggerListener.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredGetterTriggerListener.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ClassAttributeBehaviour.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/DataWriter.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ExportConfig.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ExportInterceptor.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Flavor.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Model.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Property.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Range.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/TreePruner.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/adjunct/Adjunct.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/adjunct/AdjunctManager.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/AnnotatedRef.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/FieldRef.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/Klass.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/KlassNavigator.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/MethodRef.java diff --git a/java/ql/test/library-tests/frameworks/stapler/Test.java b/java/ql/test/library-tests/frameworks/stapler/Test.java new file mode 100644 index 00000000000..b034ec7ff40 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/stapler/Test.java @@ -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 + } + + } + +} diff --git a/java/ql/test/library-tests/frameworks/stapler/options b/java/ql/test/library-tests/frameworks/stapler/options new file mode 100644 index 00000000000..5b75976846a --- /dev/null +++ b/java/ql/test/library-tests/frameworks/stapler/options @@ -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 \ No newline at end of file diff --git a/java/ql/test/library-tests/frameworks/stapler/test.expected b/java/ql/test/library-tests/frameworks/stapler/test.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/frameworks/stapler/test.ql b/java/ql/test/library-tests/frameworks/stapler/test.ql new file mode 100644 index 00000000000..5d91e4e8e26 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/stapler/test.ql @@ -0,0 +1,2 @@ +import java +import TestUtilities.InlineFlowTest diff --git a/java/ql/test/stubs/apache-commons-beanutils/org/apache/commons/beanutils/ConvertUtilsBean.java b/java/ql/test/stubs/apache-commons-beanutils/org/apache/commons/beanutils/ConvertUtilsBean.java new file mode 100644 index 00000000000..778efe2ca42 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-beanutils/org/apache/commons/beanutils/ConvertUtilsBean.java @@ -0,0 +1,37 @@ +// Generated automatically from org.apache.commons.beanutils.ConvertUtilsBean for testing purposes + +package org.apache.commons.beanutils; + +import org.apache.commons.beanutils.Converter; + +public class ConvertUtilsBean +{ + protected static ConvertUtilsBean getInstance(){ return null; } + public ConvertUtilsBean(){} + public Converter lookup(Class p0){ return null; } + public Converter lookup(Class p0, Class p1){ return null; } + public Object convert(Object p0, Class p1){ return null; } + public Object convert(String p0, Class p1){ return null; } + public Object convert(String[] p0, Class p1){ return null; } + public String convert(Object p0){ return null; } + public boolean getDefaultBoolean(){ return false; } + public byte getDefaultByte(){ return 0; } + public char getDefaultCharacter(){ return '0'; } + public double getDefaultDouble(){ return 0; } + public float getDefaultFloat(){ return 0; } + public int getDefaultInteger(){ return 0; } + public long getDefaultLong(){ return 0; } + public short getDefaultShort(){ return 0; } + public void deregister(){} + public void deregister(Class p0){} + public void register(Converter p0, Class p1){} + public void register(boolean p0, boolean p1, int p2){} + public void setDefaultBoolean(boolean p0){} + public void setDefaultByte(byte p0){} + public void setDefaultCharacter(char p0){} + public void setDefaultDouble(double p0){} + public void setDefaultFloat(float p0){} + public void setDefaultInteger(int p0){} + public void setDefaultLong(long p0){} + public void setDefaultShort(short p0){} +} diff --git a/java/ql/test/stubs/apache-commons-beanutils/org/apache/commons/beanutils/Converter.java b/java/ql/test/stubs/apache-commons-beanutils/org/apache/commons/beanutils/Converter.java new file mode 100644 index 00000000000..b83205d5cda --- /dev/null +++ b/java/ql/test/stubs/apache-commons-beanutils/org/apache/commons/beanutils/Converter.java @@ -0,0 +1,9 @@ +// Generated automatically from org.apache.commons.beanutils.Converter for testing purposes + +package org.apache.commons.beanutils; + + +public interface Converter +{ + T convert(java.lang.Class p0, Object p1); +} diff --git a/java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItem.java b/java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItem.java new file mode 100644 index 00000000000..bb16bf3338f --- /dev/null +++ b/java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItem.java @@ -0,0 +1,27 @@ +// Generated automatically from org.apache.commons.fileupload.FileItem for testing purposes + +package org.apache.commons.fileupload; + +import java.io.File; +import java.io.InputStream; +import java.io.OutputStream; +import org.apache.commons.fileupload.FileItemHeadersSupport; + +public interface FileItem extends FileItemHeadersSupport +{ + InputStream getInputStream(); + OutputStream getOutputStream(); + String getContentType(); + String getFieldName(); + String getName(); + String getString(); + String getString(String p0); + boolean isFormField(); + boolean isInMemory(); + byte[] get(); + long getSize(); + void delete(); + void setFieldName(String p0); + void setFormField(boolean p0); + void write(File p0); +} diff --git a/java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItemHeaders.java b/java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItemHeaders.java new file mode 100644 index 00000000000..b502807edae --- /dev/null +++ b/java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItemHeaders.java @@ -0,0 +1,12 @@ +// Generated automatically from org.apache.commons.fileupload.FileItemHeaders for testing purposes + +package org.apache.commons.fileupload; + +import java.util.Iterator; + +public interface FileItemHeaders +{ + Iterator getHeaderNames(); + Iterator getHeaders(String p0); + String getHeader(String p0); +} diff --git a/java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItemHeadersSupport.java b/java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItemHeadersSupport.java new file mode 100644 index 00000000000..2b5b27d7361 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-fileupload-1.4/org/apache/commons/fileupload/FileItemHeadersSupport.java @@ -0,0 +1,11 @@ +// Generated automatically from org.apache.commons.fileupload.FileItemHeadersSupport for testing purposes + +package org.apache.commons.fileupload; + +import org.apache.commons.fileupload.FileItemHeaders; + +public interface FileItemHeadersSupport +{ + FileItemHeaders getHeaders(); + void setHeaders(FileItemHeaders p0); +} diff --git a/java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/Nestable.java b/java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/Nestable.java new file mode 100644 index 00000000000..343212afa54 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/Nestable.java @@ -0,0 +1,22 @@ +// Generated automatically from org.apache.commons.lang.exception.Nestable for testing purposes + +package org.apache.commons.lang.exception; + +import java.io.PrintStream; +import java.io.PrintWriter; + +public interface Nestable +{ + String getMessage(); + String getMessage(int p0); + String[] getMessages(); + Throwable getCause(); + Throwable getThrowable(int p0); + Throwable[] getThrowables(); + int getThrowableCount(); + int indexOfThrowable(Class p0); + int indexOfThrowable(Class p0, int p1); + void printPartialStackTrace(PrintWriter p0); + void printStackTrace(PrintStream p0); + void printStackTrace(PrintWriter p0); +} diff --git a/java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/NestableDelegate.java b/java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/NestableDelegate.java new file mode 100644 index 00000000000..67a94cd97d2 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/NestableDelegate.java @@ -0,0 +1,30 @@ +// Generated automatically from org.apache.commons.lang.exception.NestableDelegate for testing purposes + +package org.apache.commons.lang.exception; + +import java.io.PrintStream; +import java.io.PrintWriter; +import java.io.Serializable; +import java.util.List; +import org.apache.commons.lang.exception.Nestable; + +public class NestableDelegate implements Serializable +{ + protected NestableDelegate() {} + protected String[] getStackFrames(Throwable p0){ return null; } + protected void trimStackFrames(List p0){} + public NestableDelegate(Nestable p0){} + public String getMessage(String p0){ return null; } + public String getMessage(int p0){ return null; } + public String[] getMessages(){ return null; } + public Throwable getThrowable(int p0){ return null; } + public Throwable[] getThrowables(){ return null; } + public int getThrowableCount(){ return 0; } + public int indexOfThrowable(Class p0, int p1){ return 0; } + public static boolean matchSubclasses = false; + public static boolean topDown = false; + public static boolean trimStackFrames = false; + public void printStackTrace(){} + public void printStackTrace(PrintStream p0){} + public void printStackTrace(PrintWriter p0){} +} diff --git a/java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/NestableRuntimeException.java b/java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/NestableRuntimeException.java new file mode 100644 index 00000000000..353fabe4707 --- /dev/null +++ b/java/ql/test/stubs/apache-commons-lang/org/apache/commons/lang/exception/NestableRuntimeException.java @@ -0,0 +1,30 @@ +// Generated automatically from org.apache.commons.lang.exception.NestableRuntimeException for testing purposes + +package org.apache.commons.lang.exception; + +import java.io.PrintStream; +import java.io.PrintWriter; +import org.apache.commons.lang.exception.Nestable; +import org.apache.commons.lang.exception.NestableDelegate; + +public class NestableRuntimeException extends RuntimeException implements Nestable +{ + protected NestableDelegate delegate = null; + public NestableRuntimeException(){} + public NestableRuntimeException(String p0){} + public NestableRuntimeException(String p0, Throwable p1){} + public NestableRuntimeException(Throwable p0){} + public String getMessage(){ return null; } + public String getMessage(int p0){ return null; } + public String[] getMessages(){ return null; } + public Throwable getCause(){ return null; } + public Throwable getThrowable(int p0){ return null; } + public Throwable[] getThrowables(){ return null; } + public final void printPartialStackTrace(PrintWriter p0){} + public int getThrowableCount(){ return 0; } + public int indexOfThrowable(Class p0){ return 0; } + public int indexOfThrowable(Class p0, int p1){ return 0; } + public void printStackTrace(){} + public void printStackTrace(PrintStream p0){} + public void printStackTrace(PrintWriter p0){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/AsyncContext.java b/java/ql/test/stubs/javax-servlet-2.5/javax/AsyncContext.java new file mode 100644 index 00000000000..70a39f55ac9 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/AsyncContext.java @@ -0,0 +1,31 @@ +// Generated automatically from javax.servlet.AsyncContext for testing purposes + +package javax.servlet; + +import javax.servlet.AsyncListener; +import javax.servlet.ServletContext; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +public interface AsyncContext +{ + T createListener(java.lang.Class p0); + ServletRequest getRequest(); + ServletResponse getResponse(); + boolean hasOriginalRequestAndResponse(); + long getTimeout(); + static String ASYNC_CONTEXT_PATH = null; + static String ASYNC_MAPPING = null; + static String ASYNC_PATH_INFO = null; + static String ASYNC_QUERY_STRING = null; + static String ASYNC_REQUEST_URI = null; + static String ASYNC_SERVLET_PATH = null; + void addListener(AsyncListener p0); + void addListener(AsyncListener p0, ServletRequest p1, ServletResponse p2); + void complete(); + void dispatch(); + void dispatch(ServletContext p0, String p1); + void dispatch(String p0); + void setTimeout(long p0); + void start(Runnable p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/AsyncEvent.java b/java/ql/test/stubs/javax-servlet-2.5/javax/AsyncEvent.java new file mode 100644 index 00000000000..d7cb9c2b175 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/AsyncEvent.java @@ -0,0 +1,20 @@ +// Generated automatically from javax.servlet.AsyncEvent for testing purposes + +package javax.servlet; + +import javax.servlet.AsyncContext; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +public class AsyncEvent +{ + protected AsyncEvent() {} + public AsyncContext getAsyncContext(){ return null; } + public AsyncEvent(AsyncContext p0){} + public AsyncEvent(AsyncContext p0, ServletRequest p1, ServletResponse p2){} + public AsyncEvent(AsyncContext p0, ServletRequest p1, ServletResponse p2, Throwable p3){} + public AsyncEvent(AsyncContext p0, Throwable p1){} + public ServletRequest getSuppliedRequest(){ return null; } + public ServletResponse getSuppliedResponse(){ return null; } + public Throwable getThrowable(){ return null; } +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/AsyncListener.java b/java/ql/test/stubs/javax-servlet-2.5/javax/AsyncListener.java new file mode 100644 index 00000000000..2723482f668 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/AsyncListener.java @@ -0,0 +1,14 @@ +// Generated automatically from javax.servlet.AsyncListener for testing purposes + +package javax.servlet; + +import java.util.EventListener; +import javax.servlet.AsyncEvent; + +public interface AsyncListener extends EventListener +{ + void onComplete(AsyncEvent p0); + void onError(AsyncEvent p0); + void onStartAsync(AsyncEvent p0); + void onTimeout(AsyncEvent p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/DispatcherType.java b/java/ql/test/stubs/javax-servlet-2.5/javax/DispatcherType.java new file mode 100644 index 00000000000..2b7b44f328d --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/DispatcherType.java @@ -0,0 +1,10 @@ +// Generated automatically from javax.servlet.DispatcherType for testing purposes + +package javax.servlet; + + +public enum DispatcherType +{ + ASYNC, ERROR, FORWARD, INCLUDE, REQUEST; + private DispatcherType() {} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/Filter.java b/java/ql/test/stubs/javax-servlet-2.5/javax/Filter.java new file mode 100644 index 00000000000..64b9f9d73a8 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/Filter.java @@ -0,0 +1,15 @@ +// Generated automatically from javax.servlet.Filter for testing purposes + +package javax.servlet; + +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +public interface Filter +{ + default void destroy(){} + default void init(FilterConfig p0){} + void doFilter(ServletRequest p0, ServletResponse p1, FilterChain p2); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/FilterChain.java b/java/ql/test/stubs/javax-servlet-2.5/javax/FilterChain.java new file mode 100644 index 00000000000..f64ab722684 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/FilterChain.java @@ -0,0 +1,11 @@ +// Generated automatically from javax.servlet.FilterChain for testing purposes + +package javax.servlet; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +public interface FilterChain +{ + void doFilter(ServletRequest p0, ServletResponse p1); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/FilterConfig.java b/java/ql/test/stubs/javax-servlet-2.5/javax/FilterConfig.java new file mode 100644 index 00000000000..0e140c6680c --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/FilterConfig.java @@ -0,0 +1,14 @@ +// Generated automatically from javax.servlet.FilterConfig for testing purposes + +package javax.servlet; + +import java.util.Enumeration; +import javax.servlet.ServletContext; + +public interface FilterConfig +{ + Enumeration getInitParameterNames(); + ServletContext getServletContext(); + String getFilterName(); + String getInitParameter(String p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/FilterRegistration.java b/java/ql/test/stubs/javax-servlet-2.5/javax/FilterRegistration.java new file mode 100644 index 00000000000..6ad0739ceb6 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/FilterRegistration.java @@ -0,0 +1,19 @@ +// Generated automatically from javax.servlet.FilterRegistration for testing purposes + +package javax.servlet; + +import java.util.Collection; +import java.util.EnumSet; +import javax.servlet.DispatcherType; +import javax.servlet.Registration; + +public interface FilterRegistration extends Registration +{ + Collection getServletNameMappings(); + Collection getUrlPatternMappings(); + static public interface Dynamic extends FilterRegistration, Registration.Dynamic + { + } + void addMappingForServletNames(EnumSet p0, boolean p1, String... p2); + void addMappingForUrlPatterns(EnumSet p0, boolean p1, String... p2); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/GenericServlet.java b/java/ql/test/stubs/javax-servlet-2.5/javax/GenericServlet.java new file mode 100644 index 00000000000..5f7bdcda487 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/GenericServlet.java @@ -0,0 +1,28 @@ +// Generated automatically from javax.servlet.GenericServlet for testing purposes + +package javax.servlet; + +import java.io.Serializable; +import java.util.Enumeration; +import javax.servlet.Servlet; +import javax.servlet.ServletConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +abstract public class GenericServlet implements Serializable, Servlet, ServletConfig +{ + public Enumeration getInitParameterNames(){ return null; } + public GenericServlet(){} + public ServletConfig getServletConfig(){ return null; } + public ServletContext getServletContext(){ return null; } + public String getInitParameter(String p0){ return null; } + public String getServletInfo(){ return null; } + public String getServletName(){ return null; } + public abstract void service(ServletRequest p0, ServletResponse p1); + public void destroy(){} + public void init(){} + public void init(ServletConfig p0){} + public void log(String p0){} + public void log(String p0, Throwable p1){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/HttpConstraintElement.java b/java/ql/test/stubs/javax-servlet-2.5/javax/HttpConstraintElement.java new file mode 100644 index 00000000000..6598aa47cc5 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/HttpConstraintElement.java @@ -0,0 +1,16 @@ +// Generated automatically from javax.servlet.HttpConstraintElement for testing purposes + +package javax.servlet; + +import javax.servlet.annotation.ServletSecurity; + +public class HttpConstraintElement +{ + public HttpConstraintElement(){} + public HttpConstraintElement(ServletSecurity.EmptyRoleSemantic p0){} + public HttpConstraintElement(ServletSecurity.EmptyRoleSemantic p0, ServletSecurity.TransportGuarantee p1, String... p2){} + public HttpConstraintElement(ServletSecurity.TransportGuarantee p0, String... p1){} + public ServletSecurity.EmptyRoleSemantic getEmptyRoleSemantic(){ return null; } + public ServletSecurity.TransportGuarantee getTransportGuarantee(){ return null; } + public String[] getRolesAllowed(){ return null; } +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/HttpMethodConstraintElement.java b/java/ql/test/stubs/javax-servlet-2.5/javax/HttpMethodConstraintElement.java new file mode 100644 index 00000000000..ddb52527004 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/HttpMethodConstraintElement.java @@ -0,0 +1,13 @@ +// Generated automatically from javax.servlet.HttpMethodConstraintElement for testing purposes + +package javax.servlet; + +import javax.servlet.HttpConstraintElement; + +public class HttpMethodConstraintElement extends HttpConstraintElement +{ + protected HttpMethodConstraintElement() {} + public HttpMethodConstraintElement(String p0){} + public HttpMethodConstraintElement(String p0, HttpConstraintElement p1){} + public String getMethodName(){ return null; } +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/MultipartConfigElement.java b/java/ql/test/stubs/javax-servlet-2.5/javax/MultipartConfigElement.java new file mode 100644 index 00000000000..8470d9a5317 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/MultipartConfigElement.java @@ -0,0 +1,17 @@ +// Generated automatically from javax.servlet.MultipartConfigElement for testing purposes + +package javax.servlet; + +import javax.servlet.annotation.MultipartConfig; + +public class MultipartConfigElement +{ + protected MultipartConfigElement() {} + public MultipartConfigElement(MultipartConfig p0){} + public MultipartConfigElement(String p0){} + public MultipartConfigElement(String p0, long p1, long p2, int p3){} + public String getLocation(){ return null; } + public int getFileSizeThreshold(){ return 0; } + public long getMaxFileSize(){ return 0; } + public long getMaxRequestSize(){ return 0; } +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ReadListener.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ReadListener.java new file mode 100644 index 00000000000..367594ef7da --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ReadListener.java @@ -0,0 +1,12 @@ +// Generated automatically from javax.servlet.ReadListener for testing purposes + +package javax.servlet; + +import java.util.EventListener; + +public interface ReadListener extends EventListener +{ + void onAllDataRead(); + void onDataAvailable(); + void onError(Throwable p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/Registration.java b/java/ql/test/stubs/javax-servlet-2.5/javax/Registration.java new file mode 100644 index 00000000000..5d4095813ef --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/Registration.java @@ -0,0 +1,20 @@ +// Generated automatically from javax.servlet.Registration for testing purposes + +package javax.servlet; + +import java.util.Map; +import java.util.Set; + +public interface Registration +{ + Map getInitParameters(); + Set setInitParameters(Map p0); + String getClassName(); + String getInitParameter(String p0); + String getName(); + boolean setInitParameter(String p0, String p1); + static public interface Dynamic extends Registration + { + void setAsyncSupported(boolean p0); + } +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/RequestDispatcher.java b/java/ql/test/stubs/javax-servlet-2.5/javax/RequestDispatcher.java new file mode 100644 index 00000000000..ad017e4f501 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/RequestDispatcher.java @@ -0,0 +1,30 @@ +// Generated automatically from javax.servlet.RequestDispatcher for testing purposes + +package javax.servlet; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +public interface RequestDispatcher +{ + static String ERROR_EXCEPTION = null; + static String ERROR_EXCEPTION_TYPE = null; + static String ERROR_MESSAGE = null; + static String ERROR_REQUEST_URI = null; + static String ERROR_SERVLET_NAME = null; + static String ERROR_STATUS_CODE = null; + static String FORWARD_CONTEXT_PATH = null; + static String FORWARD_MAPPING = null; + static String FORWARD_PATH_INFO = null; + static String FORWARD_QUERY_STRING = null; + static String FORWARD_REQUEST_URI = null; + static String FORWARD_SERVLET_PATH = null; + static String INCLUDE_CONTEXT_PATH = null; + static String INCLUDE_MAPPING = null; + static String INCLUDE_PATH_INFO = null; + static String INCLUDE_QUERY_STRING = null; + static String INCLUDE_REQUEST_URI = null; + static String INCLUDE_SERVLET_PATH = null; + void forward(ServletRequest p0, ServletResponse p1); + void include(ServletRequest p0, ServletResponse p1); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/Servlet.java b/java/ql/test/stubs/javax-servlet-2.5/javax/Servlet.java new file mode 100644 index 00000000000..231c011a6f8 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/Servlet.java @@ -0,0 +1,16 @@ +// Generated automatically from javax.servlet.Servlet for testing purposes + +package javax.servlet; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +public interface Servlet +{ + ServletConfig getServletConfig(); + String getServletInfo(); + void destroy(); + void init(ServletConfig p0); + void service(ServletRequest p0, ServletResponse p1); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ServletConfig.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletConfig.java new file mode 100644 index 00000000000..c483c16ac4e --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletConfig.java @@ -0,0 +1,14 @@ +// Generated automatically from javax.servlet.ServletConfig for testing purposes + +package javax.servlet; + +import java.util.Enumeration; +import javax.servlet.ServletContext; + +public interface ServletConfig +{ + Enumeration getInitParameterNames(); + ServletContext getServletContext(); + String getInitParameter(String p0); + String getServletName(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ServletContext.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletContext.java new file mode 100644 index 00000000000..812393f61e9 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletContext.java @@ -0,0 +1,83 @@ +// Generated automatically from javax.servlet.ServletContext for testing purposes + +package javax.servlet; + +import java.io.InputStream; +import java.net.URL; +import java.util.Enumeration; +import java.util.EventListener; +import java.util.Map; +import java.util.Set; +import javax.servlet.Filter; +import javax.servlet.FilterRegistration; +import javax.servlet.RequestDispatcher; +import javax.servlet.Servlet; +import javax.servlet.ServletRegistration; +import javax.servlet.SessionCookieConfig; +import javax.servlet.SessionTrackingMode; +import javax.servlet.descriptor.JspConfigDescriptor; + +public interface ServletContext +{ + T createListener(java.lang.Class p0); + void addListener(T p0); + T createFilter(java.lang.Class p0); + T createServlet(java.lang.Class p0); + ClassLoader getClassLoader(); + Enumeration getServlets(); + Enumeration getAttributeNames(); + Enumeration getInitParameterNames(); + Enumeration getServletNames(); + FilterRegistration getFilterRegistration(String p0); + FilterRegistration.Dynamic addFilter(String p0, Class p1); + FilterRegistration.Dynamic addFilter(String p0, Filter p1); + FilterRegistration.Dynamic addFilter(String p0, String p1); + InputStream getResourceAsStream(String p0); + JspConfigDescriptor getJspConfigDescriptor(); + Map getFilterRegistrations(); + Map getServletRegistrations(); + Object getAttribute(String p0); + RequestDispatcher getNamedDispatcher(String p0); + RequestDispatcher getRequestDispatcher(String p0); + Servlet getServlet(String p0); + ServletContext getContext(String p0); + ServletRegistration getServletRegistration(String p0); + ServletRegistration.Dynamic addJspFile(String p0, String p1); + ServletRegistration.Dynamic addServlet(String p0, Class p1); + ServletRegistration.Dynamic addServlet(String p0, Servlet p1); + ServletRegistration.Dynamic addServlet(String p0, String p1); + SessionCookieConfig getSessionCookieConfig(); + Set getDefaultSessionTrackingModes(); + Set getEffectiveSessionTrackingModes(); + Set getResourcePaths(String p0); + String getContextPath(); + String getInitParameter(String p0); + String getMimeType(String p0); + String getRealPath(String p0); + String getRequestCharacterEncoding(); + String getResponseCharacterEncoding(); + String getServerInfo(); + String getServletContextName(); + String getVirtualServerName(); + URL getResource(String p0); + boolean setInitParameter(String p0, String p1); + int getEffectiveMajorVersion(); + int getEffectiveMinorVersion(); + int getMajorVersion(); + int getMinorVersion(); + int getSessionTimeout(); + static String ORDERED_LIBS = null; + static String TEMPDIR = null; + void addListener(Class p0); + void addListener(String p0); + void declareRoles(String... p0); + void log(Exception p0, String p1); + void log(String p0); + void log(String p0, Throwable p1); + void removeAttribute(String p0); + void setAttribute(String p0, Object p1); + void setRequestCharacterEncoding(String p0); + void setResponseCharacterEncoding(String p0); + void setSessionTimeout(int p0); + void setSessionTrackingModes(Set p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ServletContextEvent.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletContextEvent.java new file mode 100644 index 00000000000..275fc132a87 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletContextEvent.java @@ -0,0 +1,13 @@ +// Generated automatically from javax.servlet.ServletContextEvent for testing purposes + +package javax.servlet; + +import java.util.EventObject; +import javax.servlet.ServletContext; + +public class ServletContextEvent extends EventObject +{ + protected ServletContextEvent() {} + public ServletContext getServletContext(){ return null; } + public ServletContextEvent(ServletContext p0){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ServletInputStream.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletInputStream.java new file mode 100644 index 00000000000..31034066970 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletInputStream.java @@ -0,0 +1,15 @@ +// Generated automatically from javax.servlet.ServletInputStream for testing purposes + +package javax.servlet; + +import java.io.InputStream; +import javax.servlet.ReadListener; + +abstract public class ServletInputStream extends InputStream +{ + protected ServletInputStream(){} + public abstract boolean isFinished(); + public abstract boolean isReady(); + public abstract void setReadListener(ReadListener p0); + public int readLine(byte[] p0, int p1, int p2){ return 0; } +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ServletOutputStream.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletOutputStream.java new file mode 100644 index 00000000000..52a2162c9eb --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletOutputStream.java @@ -0,0 +1,28 @@ +// Generated automatically from javax.servlet.ServletOutputStream for testing purposes + +package javax.servlet; + +import java.io.OutputStream; +import javax.servlet.WriteListener; + +abstract public class ServletOutputStream extends OutputStream +{ + protected ServletOutputStream(){} + public abstract boolean isReady(); + public abstract void setWriteListener(WriteListener p0); + public void print(String p0){} + public void print(boolean p0){} + public void print(char p0){} + public void print(double p0){} + public void print(float p0){} + public void print(int p0){} + public void print(long p0){} + public void println(){} + public void println(String p0){} + public void println(boolean p0){} + public void println(char p0){} + public void println(double p0){} + public void println(float p0){} + public void println(int p0){} + public void println(long p0){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ServletRegistration.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletRegistration.java new file mode 100644 index 00000000000..a1cc66f2d19 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletRegistration.java @@ -0,0 +1,23 @@ +// Generated automatically from javax.servlet.ServletRegistration for testing purposes + +package javax.servlet; + +import java.util.Collection; +import java.util.Set; +import javax.servlet.MultipartConfigElement; +import javax.servlet.Registration; +import javax.servlet.ServletSecurityElement; + +public interface ServletRegistration extends Registration +{ + Collection getMappings(); + Set addMapping(String... p0); + String getRunAsRole(); + static public interface Dynamic extends Registration.Dynamic, ServletRegistration + { + Set setServletSecurity(ServletSecurityElement p0); + void setLoadOnStartup(int p0); + void setMultipartConfig(MultipartConfigElement p0); + void setRunAsRole(String p0); + } +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ServletRequest.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletRequest.java new file mode 100644 index 00000000000..fc0db462cc0 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletRequest.java @@ -0,0 +1,55 @@ +// Generated automatically from javax.servlet.ServletRequest for testing purposes + +package javax.servlet; + +import java.io.BufferedReader; +import java.util.Enumeration; +import java.util.Locale; +import java.util.Map; +import javax.servlet.AsyncContext; +import javax.servlet.DispatcherType; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletContext; +import javax.servlet.ServletInputStream; +import javax.servlet.ServletResponse; + +public interface ServletRequest +{ + AsyncContext getAsyncContext(); + AsyncContext startAsync(); + AsyncContext startAsync(ServletRequest p0, ServletResponse p1); + BufferedReader getReader(); + DispatcherType getDispatcherType(); + Enumeration getLocales(); + Enumeration getAttributeNames(); + Enumeration getParameterNames(); + Locale getLocale(); + Map getParameterMap(); + Object getAttribute(String p0); + RequestDispatcher getRequestDispatcher(String p0); + ServletContext getServletContext(); + ServletInputStream getInputStream(); + String getCharacterEncoding(); + String getContentType(); + String getLocalAddr(); + String getLocalName(); + String getParameter(String p0); + String getProtocol(); + String getRealPath(String p0); + String getRemoteAddr(); + String getRemoteHost(); + String getScheme(); + String getServerName(); + String[] getParameterValues(String p0); + boolean isAsyncStarted(); + boolean isAsyncSupported(); + boolean isSecure(); + int getContentLength(); + int getLocalPort(); + int getRemotePort(); + int getServerPort(); + long getContentLengthLong(); + void removeAttribute(String p0); + void setAttribute(String p0, Object p1); + void setCharacterEncoding(String p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ServletRequestWrapper.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletRequestWrapper.java new file mode 100644 index 00000000000..df7c719c44a --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletRequestWrapper.java @@ -0,0 +1,62 @@ +// Generated automatically from javax.servlet.ServletRequestWrapper for testing purposes + +package javax.servlet; + +import java.io.BufferedReader; +import java.util.Enumeration; +import java.util.Locale; +import java.util.Map; +import javax.servlet.AsyncContext; +import javax.servlet.DispatcherType; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletContext; +import javax.servlet.ServletInputStream; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +public class ServletRequestWrapper implements ServletRequest +{ + protected ServletRequestWrapper() {} + public AsyncContext getAsyncContext(){ return null; } + public AsyncContext startAsync(){ return null; } + public AsyncContext startAsync(ServletRequest p0, ServletResponse p1){ return null; } + public BufferedReader getReader(){ return null; } + public DispatcherType getDispatcherType(){ return null; } + public Enumeration getLocales(){ return null; } + public Enumeration getAttributeNames(){ return null; } + public Enumeration getParameterNames(){ return null; } + public Locale getLocale(){ return null; } + public Map getParameterMap(){ return null; } + public Object getAttribute(String p0){ return null; } + public RequestDispatcher getRequestDispatcher(String p0){ return null; } + public ServletContext getServletContext(){ return null; } + public ServletInputStream getInputStream(){ return null; } + public ServletRequest getRequest(){ return null; } + public ServletRequestWrapper(ServletRequest p0){} + public String getCharacterEncoding(){ return null; } + public String getContentType(){ return null; } + public String getLocalAddr(){ return null; } + public String getLocalName(){ return null; } + public String getParameter(String p0){ return null; } + public String getProtocol(){ return null; } + public String getRealPath(String p0){ return null; } + public String getRemoteAddr(){ return null; } + public String getRemoteHost(){ return null; } + public String getScheme(){ return null; } + public String getServerName(){ return null; } + public String[] getParameterValues(String p0){ return null; } + public boolean isAsyncStarted(){ return false; } + public boolean isAsyncSupported(){ return false; } + public boolean isSecure(){ return false; } + public boolean isWrapperFor(Class p0){ return false; } + public boolean isWrapperFor(ServletRequest p0){ return false; } + public int getContentLength(){ return 0; } + public int getLocalPort(){ return 0; } + public int getRemotePort(){ return 0; } + public int getServerPort(){ return 0; } + public long getContentLengthLong(){ return 0; } + public void removeAttribute(String p0){} + public void setAttribute(String p0, Object p1){} + public void setCharacterEncoding(String p0){} + public void setRequest(ServletRequest p0){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ServletResponse.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletResponse.java new file mode 100644 index 00000000000..db6610bc15d --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletResponse.java @@ -0,0 +1,27 @@ +// Generated automatically from javax.servlet.ServletResponse for testing purposes + +package javax.servlet; + +import java.io.PrintWriter; +import java.util.Locale; +import javax.servlet.ServletOutputStream; + +public interface ServletResponse +{ + Locale getLocale(); + PrintWriter getWriter(); + ServletOutputStream getOutputStream(); + String getCharacterEncoding(); + String getContentType(); + boolean isCommitted(); + int getBufferSize(); + void flushBuffer(); + void reset(); + void resetBuffer(); + void setBufferSize(int p0); + void setCharacterEncoding(String p0); + void setContentLength(int p0); + void setContentLengthLong(long p0); + void setContentType(String p0); + void setLocale(Locale p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ServletResponseWrapper.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletResponseWrapper.java new file mode 100644 index 00000000000..c8105f36ce9 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletResponseWrapper.java @@ -0,0 +1,34 @@ +// Generated automatically from javax.servlet.ServletResponseWrapper for testing purposes + +package javax.servlet; + +import java.io.PrintWriter; +import java.util.Locale; +import javax.servlet.ServletOutputStream; +import javax.servlet.ServletResponse; + +public class ServletResponseWrapper implements ServletResponse +{ + protected ServletResponseWrapper() {} + public Locale getLocale(){ return null; } + public PrintWriter getWriter(){ return null; } + public ServletOutputStream getOutputStream(){ return null; } + public ServletResponse getResponse(){ return null; } + public ServletResponseWrapper(ServletResponse p0){} + public String getCharacterEncoding(){ return null; } + public String getContentType(){ return null; } + public boolean isCommitted(){ return false; } + public boolean isWrapperFor(Class p0){ return false; } + public boolean isWrapperFor(ServletResponse p0){ return false; } + public int getBufferSize(){ return 0; } + public void flushBuffer(){} + public void reset(){} + public void resetBuffer(){} + public void setBufferSize(int p0){} + public void setCharacterEncoding(String p0){} + public void setContentLength(int p0){} + public void setContentLengthLong(long p0){} + public void setContentType(String p0){} + public void setLocale(Locale p0){} + public void setResponse(ServletResponse p0){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/ServletSecurityElement.java b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletSecurityElement.java new file mode 100644 index 00000000000..def47937391 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/ServletSecurityElement.java @@ -0,0 +1,19 @@ +// Generated automatically from javax.servlet.ServletSecurityElement for testing purposes + +package javax.servlet; + +import java.util.Collection; +import javax.servlet.HttpConstraintElement; +import javax.servlet.HttpMethodConstraintElement; +import javax.servlet.annotation.ServletSecurity; + +public class ServletSecurityElement extends HttpConstraintElement +{ + public Collection getHttpMethodConstraints(){ return null; } + public Collection getMethodNames(){ return null; } + public ServletSecurityElement(){} + public ServletSecurityElement(Collection p0){} + public ServletSecurityElement(HttpConstraintElement p0){} + public ServletSecurityElement(HttpConstraintElement p0, Collection p1){} + public ServletSecurityElement(ServletSecurity p0){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/SessionCookieConfig.java b/java/ql/test/stubs/javax-servlet-2.5/javax/SessionCookieConfig.java new file mode 100644 index 00000000000..4cae9a11f30 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/SessionCookieConfig.java @@ -0,0 +1,22 @@ +// Generated automatically from javax.servlet.SessionCookieConfig for testing purposes + +package javax.servlet; + + +public interface SessionCookieConfig +{ + String getComment(); + String getDomain(); + String getName(); + String getPath(); + boolean isHttpOnly(); + boolean isSecure(); + int getMaxAge(); + void setComment(String p0); + void setDomain(String p0); + void setHttpOnly(boolean p0); + void setMaxAge(int p0); + void setName(String p0); + void setPath(String p0); + void setSecure(boolean p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/SessionTrackingMode.java b/java/ql/test/stubs/javax-servlet-2.5/javax/SessionTrackingMode.java new file mode 100644 index 00000000000..684ac40c56f --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/SessionTrackingMode.java @@ -0,0 +1,10 @@ +// Generated automatically from javax.servlet.SessionTrackingMode for testing purposes + +package javax.servlet; + + +public enum SessionTrackingMode +{ + COOKIE, SSL, URL; + private SessionTrackingMode() {} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/WriteListener.java b/java/ql/test/stubs/javax-servlet-2.5/javax/WriteListener.java new file mode 100644 index 00000000000..24fe504271c --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/WriteListener.java @@ -0,0 +1,11 @@ +// Generated automatically from javax.servlet.WriteListener for testing purposes + +package javax.servlet; + +import java.util.EventListener; + +public interface WriteListener extends EventListener +{ + void onError(Throwable p0); + void onWritePossible(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpConstraint.java b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpConstraint.java new file mode 100644 index 00000000000..f47efc62744 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpConstraint.java @@ -0,0 +1,18 @@ +// Generated automatically from javax.servlet.annotation.HttpConstraint for testing purposes + +package javax.servlet.annotation; + +import java.lang.annotation.Annotation; +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import javax.servlet.annotation.ServletSecurity; + +@Documented +@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) +public @interface HttpConstraint +{ + ServletSecurity.EmptyRoleSemantic value(); + ServletSecurity.TransportGuarantee transportGuarantee(); + String[] rolesAllowed(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpMethodConstraint.java b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpMethodConstraint.java new file mode 100644 index 00000000000..288f4651018 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpMethodConstraint.java @@ -0,0 +1,19 @@ +// Generated automatically from javax.servlet.annotation.HttpMethodConstraint for testing purposes + +package javax.servlet.annotation; + +import java.lang.annotation.Annotation; +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import javax.servlet.annotation.ServletSecurity; + +@Documented +@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) +public @interface HttpMethodConstraint +{ + ServletSecurity.EmptyRoleSemantic emptyRoleSemantic(); + ServletSecurity.TransportGuarantee transportGuarantee(); + String value(); + String[] rolesAllowed(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/MultipartConfig.java b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/MultipartConfig.java new file mode 100644 index 00000000000..baccad3e199 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/MultipartConfig.java @@ -0,0 +1,19 @@ +// Generated automatically from javax.servlet.annotation.MultipartConfig for testing purposes + +package javax.servlet.annotation; + +import java.lang.annotation.Annotation; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) +@Target(value={java.lang.annotation.ElementType.TYPE}) +public @interface MultipartConfig +{ + String location(); + int fileSizeThreshold(); + long maxFileSize(); + long maxRequestSize(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/ServletSecurity.java b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/ServletSecurity.java new file mode 100644 index 00000000000..021b6c64c2a --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/ServletSecurity.java @@ -0,0 +1,33 @@ +// Generated automatically from javax.servlet.annotation.ServletSecurity for testing purposes + +package javax.servlet.annotation; + +import java.lang.annotation.Annotation; +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import javax.servlet.annotation.HttpConstraint; +import javax.servlet.annotation.HttpMethodConstraint; + +@Documented +@Inherited +@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) +@Target(value={java.lang.annotation.ElementType.TYPE}) +public @interface ServletSecurity +{ + HttpConstraint value(); + HttpMethodConstraint[] httpMethodConstraints(); + static public enum EmptyRoleSemantic + { + DENY, PERMIT; + private EmptyRoleSemantic() {} + } + static public enum TransportGuarantee + { + CONFIDENTIAL, NONE; + private TransportGuarantee() {} + } +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspConfigDescriptor.java b/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspConfigDescriptor.java new file mode 100644 index 00000000000..8d93a4318d7 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspConfigDescriptor.java @@ -0,0 +1,13 @@ +// Generated automatically from javax.servlet.descriptor.JspConfigDescriptor for testing purposes + +package javax.servlet.descriptor; + +import java.util.Collection; +import javax.servlet.descriptor.JspPropertyGroupDescriptor; +import javax.servlet.descriptor.TaglibDescriptor; + +public interface JspConfigDescriptor +{ + Collection getJspPropertyGroups(); + Collection getTaglibs(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspPropertyGroupDescriptor.java b/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspPropertyGroupDescriptor.java new file mode 100644 index 00000000000..dd852fa1088 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspPropertyGroupDescriptor.java @@ -0,0 +1,21 @@ +// Generated automatically from javax.servlet.descriptor.JspPropertyGroupDescriptor for testing purposes + +package javax.servlet.descriptor; + +import java.util.Collection; + +public interface JspPropertyGroupDescriptor +{ + Collection getIncludeCodas(); + Collection getIncludePreludes(); + Collection getUrlPatterns(); + String getBuffer(); + String getDefaultContentType(); + String getDeferredSyntaxAllowedAsLiteral(); + String getElIgnored(); + String getErrorOnUndeclaredNamespace(); + String getIsXml(); + String getPageEncoding(); + String getScriptingInvalid(); + String getTrimDirectiveWhitespaces(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/TaglibDescriptor.java b/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/TaglibDescriptor.java new file mode 100644 index 00000000000..c3dd5c10473 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/TaglibDescriptor.java @@ -0,0 +1,10 @@ +// Generated automatically from javax.servlet.descriptor.TaglibDescriptor for testing purposes + +package javax.servlet.descriptor; + + +public interface TaglibDescriptor +{ + String getTaglibLocation(); + String getTaglibURI(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/Cookie.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/Cookie.java new file mode 100644 index 00000000000..b5a180029be --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/Cookie.java @@ -0,0 +1,29 @@ +// Generated automatically from javax.servlet.http.Cookie for testing purposes + +package javax.servlet.http; + +import java.io.Serializable; + +public class Cookie implements Cloneable, Serializable +{ + protected Cookie() {} + public Cookie(String p0, String p1){} + public Object clone(){ return null; } + public String getComment(){ return null; } + public String getDomain(){ return null; } + public String getName(){ return null; } + public String getPath(){ return null; } + public String getValue(){ return null; } + public boolean getSecure(){ return false; } + public boolean isHttpOnly(){ return false; } + public int getMaxAge(){ return 0; } + public int getVersion(){ return 0; } + public void setComment(String p0){} + public void setDomain(String p0){} + public void setHttpOnly(boolean p0){} + public void setMaxAge(int p0){} + public void setPath(String p0){} + public void setSecure(boolean p0){} + public void setValue(String p0){} + public void setVersion(int p0){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServlet.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServlet.java new file mode 100644 index 00000000000..1247f956d78 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServlet.java @@ -0,0 +1,24 @@ +// Generated automatically from javax.servlet.http.HttpServlet for testing purposes + +package javax.servlet.http; + +import javax.servlet.GenericServlet; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +abstract public class HttpServlet extends GenericServlet +{ + protected long getLastModified(HttpServletRequest p0){ return 0; } + protected void doDelete(HttpServletRequest p0, HttpServletResponse p1){} + protected void doGet(HttpServletRequest p0, HttpServletResponse p1){} + protected void doHead(HttpServletRequest p0, HttpServletResponse p1){} + protected void doOptions(HttpServletRequest p0, HttpServletResponse p1){} + protected void doPost(HttpServletRequest p0, HttpServletResponse p1){} + protected void doPut(HttpServletRequest p0, HttpServletResponse p1){} + protected void doTrace(HttpServletRequest p0, HttpServletResponse p1){} + protected void service(HttpServletRequest p0, HttpServletResponse p1){} + public HttpServlet(){} + public void service(ServletRequest p0, ServletResponse p1){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletMapping.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletMapping.java new file mode 100644 index 00000000000..1b597f27773 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletMapping.java @@ -0,0 +1,13 @@ +// Generated automatically from javax.servlet.http.HttpServletMapping for testing purposes + +package javax.servlet.http; + +import javax.servlet.http.MappingMatch; + +public interface HttpServletMapping +{ + MappingMatch getMappingMatch(); + String getMatchValue(); + String getPattern(); + String getServletName(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequest.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequest.java new file mode 100644 index 00000000000..8612c34fb69 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequest.java @@ -0,0 +1,60 @@ +// Generated automatically from javax.servlet.http.HttpServletRequest for testing purposes + +package javax.servlet.http; + +import java.security.Principal; +import java.util.Collection; +import java.util.Enumeration; +import java.util.Map; +import javax.servlet.ServletRequest; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletMapping; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpUpgradeHandler; +import javax.servlet.http.Part; +import javax.servlet.http.PushBuilder; + +public interface HttpServletRequest extends ServletRequest +{ + T upgrade(java.lang.Class p0); + Collection getParts(); + Cookie[] getCookies(); + Enumeration getHeaderNames(); + Enumeration getHeaders(String p0); + HttpSession getSession(); + HttpSession getSession(boolean p0); + Part getPart(String p0); + Principal getUserPrincipal(); + String changeSessionId(); + String getAuthType(); + String getContextPath(); + String getHeader(String p0); + String getMethod(); + String getPathInfo(); + String getPathTranslated(); + String getQueryString(); + String getRemoteUser(); + String getRequestURI(); + String getRequestedSessionId(); + String getServletPath(); + StringBuffer getRequestURL(); + boolean authenticate(HttpServletResponse p0); + boolean isRequestedSessionIdFromCookie(); + boolean isRequestedSessionIdFromURL(); + boolean isRequestedSessionIdFromUrl(); + boolean isRequestedSessionIdValid(); + boolean isUserInRole(String p0); + default HttpServletMapping getHttpServletMapping(){ return null; } + default Map getTrailerFields(){ return null; } + default PushBuilder newPushBuilder(){ return null; } + default boolean isTrailerFieldsReady(){ return false; } + int getIntHeader(String p0); + long getDateHeader(String p0); + static String BASIC_AUTH = null; + static String CLIENT_CERT_AUTH = null; + static String DIGEST_AUTH = null; + static String FORM_AUTH = null; + void login(String p0, String p1); + void logout(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequestWrapper.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequestWrapper.java new file mode 100644 index 00000000000..84a62cba278 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequestWrapper.java @@ -0,0 +1,59 @@ +// Generated automatically from javax.servlet.http.HttpServletRequestWrapper for testing purposes + +package javax.servlet.http; + +import java.security.Principal; +import java.util.Collection; +import java.util.Enumeration; +import java.util.Map; +import javax.servlet.ServletRequestWrapper; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletMapping; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpUpgradeHandler; +import javax.servlet.http.Part; +import javax.servlet.http.PushBuilder; + +public class HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest +{ + protected HttpServletRequestWrapper() {} + public T upgrade(java.lang.Class p0){ return null; } + public Collection getParts(){ return null; } + public Cookie[] getCookies(){ return null; } + public Enumeration getHeaderNames(){ return null; } + public Enumeration getHeaders(String p0){ return null; } + public HttpServletMapping getHttpServletMapping(){ return null; } + public HttpServletRequestWrapper(HttpServletRequest p0){} + public HttpSession getSession(){ return null; } + public HttpSession getSession(boolean p0){ return null; } + public Map getTrailerFields(){ return null; } + public Part getPart(String p0){ return null; } + public Principal getUserPrincipal(){ return null; } + public PushBuilder newPushBuilder(){ return null; } + public String changeSessionId(){ return null; } + public String getAuthType(){ return null; } + public String getContextPath(){ return null; } + public String getHeader(String p0){ return null; } + public String getMethod(){ return null; } + public String getPathInfo(){ return null; } + public String getPathTranslated(){ return null; } + public String getQueryString(){ return null; } + public String getRemoteUser(){ return null; } + public String getRequestURI(){ return null; } + public String getRequestedSessionId(){ return null; } + public String getServletPath(){ return null; } + public StringBuffer getRequestURL(){ return null; } + public boolean authenticate(HttpServletResponse p0){ return false; } + public boolean isRequestedSessionIdFromCookie(){ return false; } + public boolean isRequestedSessionIdFromURL(){ return false; } + public boolean isRequestedSessionIdFromUrl(){ return false; } + public boolean isRequestedSessionIdValid(){ return false; } + public boolean isTrailerFieldsReady(){ return false; } + public boolean isUserInRole(String p0){ return false; } + public int getIntHeader(String p0){ return 0; } + public long getDateHeader(String p0){ return 0; } + public void login(String p0, String p1){} + public void logout(){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponse.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponse.java new file mode 100644 index 00000000000..da902dbf30c --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponse.java @@ -0,0 +1,77 @@ +// Generated automatically from javax.servlet.http.HttpServletResponse for testing purposes + +package javax.servlet.http; + +import java.util.Collection; +import java.util.Map; +import java.util.function.Supplier; +import javax.servlet.ServletResponse; +import javax.servlet.http.Cookie; + +public interface HttpServletResponse extends ServletResponse +{ + Collection getHeaderNames(); + Collection getHeaders(String p0); + String encodeRedirectURL(String p0); + String encodeRedirectUrl(String p0); + String encodeURL(String p0); + String encodeUrl(String p0); + String getHeader(String p0); + boolean containsHeader(String p0); + default Supplier> getTrailerFields(){ return null; } + default void setTrailerFields(Supplier> p0){} + int getStatus(); + static int SC_ACCEPTED = 0; + static int SC_BAD_GATEWAY = 0; + static int SC_BAD_REQUEST = 0; + static int SC_CONFLICT = 0; + static int SC_CONTINUE = 0; + static int SC_CREATED = 0; + static int SC_EXPECTATION_FAILED = 0; + static int SC_FORBIDDEN = 0; + static int SC_FOUND = 0; + static int SC_GATEWAY_TIMEOUT = 0; + static int SC_GONE = 0; + static int SC_HTTP_VERSION_NOT_SUPPORTED = 0; + static int SC_INTERNAL_SERVER_ERROR = 0; + static int SC_LENGTH_REQUIRED = 0; + static int SC_METHOD_NOT_ALLOWED = 0; + static int SC_MOVED_PERMANENTLY = 0; + static int SC_MOVED_TEMPORARILY = 0; + static int SC_MULTIPLE_CHOICES = 0; + static int SC_NON_AUTHORITATIVE_INFORMATION = 0; + static int SC_NOT_ACCEPTABLE = 0; + static int SC_NOT_FOUND = 0; + static int SC_NOT_IMPLEMENTED = 0; + static int SC_NOT_MODIFIED = 0; + static int SC_NO_CONTENT = 0; + static int SC_OK = 0; + static int SC_PARTIAL_CONTENT = 0; + static int SC_PAYMENT_REQUIRED = 0; + static int SC_PRECONDITION_FAILED = 0; + static int SC_PROXY_AUTHENTICATION_REQUIRED = 0; + static int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 0; + static int SC_REQUEST_ENTITY_TOO_LARGE = 0; + static int SC_REQUEST_TIMEOUT = 0; + static int SC_REQUEST_URI_TOO_LONG = 0; + static int SC_RESET_CONTENT = 0; + static int SC_SEE_OTHER = 0; + static int SC_SERVICE_UNAVAILABLE = 0; + static int SC_SWITCHING_PROTOCOLS = 0; + static int SC_TEMPORARY_REDIRECT = 0; + static int SC_UNAUTHORIZED = 0; + static int SC_UNSUPPORTED_MEDIA_TYPE = 0; + static int SC_USE_PROXY = 0; + void addCookie(Cookie p0); + void addDateHeader(String p0, long p1); + void addHeader(String p0, String p1); + void addIntHeader(String p0, int p1); + void sendError(int p0); + void sendError(int p0, String p1); + void sendRedirect(String p0); + void setDateHeader(String p0, long p1); + void setHeader(String p0, String p1); + void setIntHeader(String p0, int p1); + void setStatus(int p0); + void setStatus(int p0, String p1); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponseWrapper.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponseWrapper.java new file mode 100644 index 00000000000..01f33f73794 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponseWrapper.java @@ -0,0 +1,39 @@ +// Generated automatically from javax.servlet.http.HttpServletResponseWrapper for testing purposes + +package javax.servlet.http; + +import java.util.Collection; +import java.util.Map; +import java.util.function.Supplier; +import javax.servlet.ServletResponseWrapper; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; + +public class HttpServletResponseWrapper extends ServletResponseWrapper implements HttpServletResponse +{ + protected HttpServletResponseWrapper() {} + public Collection getHeaderNames(){ return null; } + public Collection getHeaders(String p0){ return null; } + public HttpServletResponseWrapper(HttpServletResponse p0){} + public String encodeRedirectURL(String p0){ return null; } + public String encodeRedirectUrl(String p0){ return null; } + public String encodeURL(String p0){ return null; } + public String encodeUrl(String p0){ return null; } + public String getHeader(String p0){ return null; } + public Supplier> getTrailerFields(){ return null; } + public boolean containsHeader(String p0){ return false; } + public int getStatus(){ return 0; } + public void addCookie(Cookie p0){} + public void addDateHeader(String p0, long p1){} + public void addHeader(String p0, String p1){} + public void addIntHeader(String p0, int p1){} + public void sendError(int p0){} + public void sendError(int p0, String p1){} + public void sendRedirect(String p0){} + public void setDateHeader(String p0, long p1){} + public void setHeader(String p0, String p1){} + public void setIntHeader(String p0, int p1){} + public void setStatus(int p0){} + public void setStatus(int p0, String p1){} + public void setTrailerFields(Supplier> p0){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSession.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSession.java new file mode 100644 index 00000000000..f8f455b1423 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSession.java @@ -0,0 +1,28 @@ +// Generated automatically from javax.servlet.http.HttpSession for testing purposes + +package javax.servlet.http; + +import java.util.Enumeration; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpSessionContext; + +public interface HttpSession +{ + Enumeration getAttributeNames(); + HttpSessionContext getSessionContext(); + Object getAttribute(String p0); + Object getValue(String p0); + ServletContext getServletContext(); + String getId(); + String[] getValueNames(); + boolean isNew(); + int getMaxInactiveInterval(); + long getCreationTime(); + long getLastAccessedTime(); + void invalidate(); + void putValue(String p0, Object p1); + void removeAttribute(String p0); + void removeValue(String p0); + void setAttribute(String p0, Object p1); + void setMaxInactiveInterval(int p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSessionContext.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSessionContext.java new file mode 100644 index 00000000000..97a77b48358 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSessionContext.java @@ -0,0 +1,12 @@ +// Generated automatically from javax.servlet.http.HttpSessionContext for testing purposes + +package javax.servlet.http; + +import java.util.Enumeration; +import javax.servlet.http.HttpSession; + +public interface HttpSessionContext +{ + Enumeration getIds(); + HttpSession getSession(String p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpUpgradeHandler.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpUpgradeHandler.java new file mode 100644 index 00000000000..987d49dbde2 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpUpgradeHandler.java @@ -0,0 +1,11 @@ +// Generated automatically from javax.servlet.http.HttpUpgradeHandler for testing purposes + +package javax.servlet.http; + +import javax.servlet.http.WebConnection; + +public interface HttpUpgradeHandler +{ + void destroy(); + void init(WebConnection p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/MappingMatch.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/MappingMatch.java new file mode 100644 index 00000000000..0432fd2ef7d --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/MappingMatch.java @@ -0,0 +1,10 @@ +// Generated automatically from javax.servlet.http.MappingMatch for testing purposes + +package javax.servlet.http; + + +public enum MappingMatch +{ + CONTEXT_ROOT, DEFAULT, EXACT, EXTENSION, PATH; + private MappingMatch() {} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/Part.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/Part.java new file mode 100644 index 00000000000..a4e599748a5 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/Part.java @@ -0,0 +1,20 @@ +// Generated automatically from javax.servlet.http.Part for testing purposes + +package javax.servlet.http; + +import java.io.InputStream; +import java.util.Collection; + +public interface Part +{ + Collection getHeaderNames(); + Collection getHeaders(String p0); + InputStream getInputStream(); + String getContentType(); + String getHeader(String p0); + String getName(); + String getSubmittedFileName(); + long getSize(); + void delete(); + void write(String p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/PushBuilder.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/PushBuilder.java new file mode 100644 index 00000000000..195e2426a83 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/PushBuilder.java @@ -0,0 +1,23 @@ +// Generated automatically from javax.servlet.http.PushBuilder for testing purposes + +package javax.servlet.http; + +import java.util.Set; + +public interface PushBuilder +{ + PushBuilder addHeader(String p0, String p1); + PushBuilder method(String p0); + PushBuilder path(String p0); + PushBuilder queryString(String p0); + PushBuilder removeHeader(String p0); + PushBuilder sessionId(String p0); + PushBuilder setHeader(String p0, String p1); + Set getHeaderNames(); + String getHeader(String p0); + String getMethod(); + String getPath(); + String getQueryString(); + String getSessionId(); + void push(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/WebConnection.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/WebConnection.java new file mode 100644 index 00000000000..5001c046400 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/http/WebConnection.java @@ -0,0 +1,12 @@ +// Generated automatically from javax.servlet.http.WebConnection for testing purposes + +package javax.servlet.http; + +import javax.servlet.ServletInputStream; +import javax.servlet.ServletOutputStream; + +public interface WebConnection extends AutoCloseable +{ + ServletInputStream getInputStream(); + ServletOutputStream getOutputStream(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/AsyncContext.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/AsyncContext.java index 1f50fb06303..70a39f55ac9 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/AsyncContext.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/AsyncContext.java @@ -9,7 +9,7 @@ import javax.servlet.ServletResponse; public interface AsyncContext { - T createListener(Class p0); + T createListener(java.lang.Class p0); ServletRequest getRequest(); ServletResponse getResponse(); boolean hasOriginalRequestAndResponse(); diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/GenericServlet.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/GenericServlet.java new file mode 100644 index 00000000000..5f7bdcda487 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/GenericServlet.java @@ -0,0 +1,28 @@ +// Generated automatically from javax.servlet.GenericServlet for testing purposes + +package javax.servlet; + +import java.io.Serializable; +import java.util.Enumeration; +import javax.servlet.Servlet; +import javax.servlet.ServletConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +abstract public class GenericServlet implements Serializable, Servlet, ServletConfig +{ + public Enumeration getInitParameterNames(){ return null; } + public GenericServlet(){} + public ServletConfig getServletConfig(){ return null; } + public ServletContext getServletContext(){ return null; } + public String getInitParameter(String p0){ return null; } + public String getServletInfo(){ return null; } + public String getServletName(){ return null; } + public abstract void service(ServletRequest p0, ServletResponse p1); + public void destroy(){} + public void init(){} + public void init(ServletConfig p0){} + public void log(String p0){} + public void log(String p0, Throwable p1){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContext.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContext.java index 5ce42a40282..812393f61e9 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContext.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContext.java @@ -19,10 +19,10 @@ import javax.servlet.descriptor.JspConfigDescriptor; public interface ServletContext { - T createListener(Class p0); + T createListener(java.lang.Class p0); void addListener(T p0); - T createFilter(Class p0); - T createServlet(Class p0); + T createFilter(java.lang.Class p0); + T createServlet(java.lang.Class p0); ClassLoader getClassLoader(); Enumeration getServlets(); Enumeration getAttributeNames(); diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextEvent.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextEvent.java new file mode 100644 index 00000000000..bc52a66f7f8 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextEvent.java @@ -0,0 +1,20 @@ +// Generated automatically from javax.servlet.ServletContextEvent for testing purposes + +package javax.servlet; + +import java.util.EventObject; +import javax.servlet.ServletContext; + +public class ServletContextEvent extends EventObject { + protected ServletContextEvent() { + super(null); + } + + public ServletContext getServletContext() { + return null; + } + + public ServletContextEvent(ServletContext p0) { + super(null); + } +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/HttpConstraint.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/HttpConstraint.java index ef2a244342c..f47efc62744 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/HttpConstraint.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/HttpConstraint.java @@ -3,9 +3,14 @@ package javax.servlet.annotation; import java.lang.annotation.Annotation; +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import javax.servlet.annotation.ServletSecurity; -public interface HttpConstraint extends Annotation +@Documented +@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) +public @interface HttpConstraint { ServletSecurity.EmptyRoleSemantic value(); ServletSecurity.TransportGuarantee transportGuarantee(); diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/HttpMethodConstraint.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/HttpMethodConstraint.java new file mode 100644 index 00000000000..288f4651018 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/HttpMethodConstraint.java @@ -0,0 +1,19 @@ +// Generated automatically from javax.servlet.annotation.HttpMethodConstraint for testing purposes + +package javax.servlet.annotation; + +import java.lang.annotation.Annotation; +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import javax.servlet.annotation.ServletSecurity; + +@Documented +@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) +public @interface HttpMethodConstraint +{ + ServletSecurity.EmptyRoleSemantic emptyRoleSemantic(); + ServletSecurity.TransportGuarantee transportGuarantee(); + String value(); + String[] rolesAllowed(); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/MultipartConfig.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/MultipartConfig.java index 6b41173f6fa..baccad3e199 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/MultipartConfig.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/MultipartConfig.java @@ -3,8 +3,14 @@ package javax.servlet.annotation; import java.lang.annotation.Annotation; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; -public interface MultipartConfig extends Annotation +@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) +@Target(value={java.lang.annotation.ElementType.TYPE}) +public @interface MultipartConfig { String location(); int fileSizeThreshold(); diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/ServletSecurity.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/ServletSecurity.java index 34e181ad6da..021b6c64c2a 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/ServletSecurity.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/annotation/ServletSecurity.java @@ -3,11 +3,23 @@ package javax.servlet.annotation; import java.lang.annotation.Annotation; +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import javax.servlet.annotation.HttpConstraint; +import javax.servlet.annotation.HttpMethodConstraint; -public interface ServletSecurity extends Annotation +@Documented +@Inherited +@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) +@Target(value={java.lang.annotation.ElementType.TYPE}) +public @interface ServletSecurity { HttpConstraint value(); + HttpMethodConstraint[] httpMethodConstraints(); static public enum EmptyRoleSemantic { DENY, PERMIT; diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServlet.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServlet.java new file mode 100644 index 00000000000..1247f956d78 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServlet.java @@ -0,0 +1,24 @@ +// Generated automatically from javax.servlet.http.HttpServlet for testing purposes + +package javax.servlet.http; + +import javax.servlet.GenericServlet; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +abstract public class HttpServlet extends GenericServlet +{ + protected long getLastModified(HttpServletRequest p0){ return 0; } + protected void doDelete(HttpServletRequest p0, HttpServletResponse p1){} + protected void doGet(HttpServletRequest p0, HttpServletResponse p1){} + protected void doHead(HttpServletRequest p0, HttpServletResponse p1){} + protected void doOptions(HttpServletRequest p0, HttpServletResponse p1){} + protected void doPost(HttpServletRequest p0, HttpServletResponse p1){} + protected void doPut(HttpServletRequest p0, HttpServletResponse p1){} + protected void doTrace(HttpServletRequest p0, HttpServletResponse p1){} + protected void service(HttpServletRequest p0, HttpServletResponse p1){} + public HttpServlet(){} + public void service(ServletRequest p0, ServletResponse p1){} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequest.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequest.java index 9667967473a..8612c34fb69 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequest.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequest.java @@ -11,11 +11,13 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletMapping; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpUpgradeHandler; import javax.servlet.http.Part; import javax.servlet.http.PushBuilder; public interface HttpServletRequest extends ServletRequest { + T upgrade(java.lang.Class p0); Collection getParts(); Cookie[] getCookies(); Enumeration getHeaderNames(); diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequestWrapper.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequestWrapper.java index 17ade0faf3a..84a62cba278 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequestWrapper.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequestWrapper.java @@ -12,12 +12,14 @@ import javax.servlet.http.HttpServletMapping; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpUpgradeHandler; import javax.servlet.http.Part; import javax.servlet.http.PushBuilder; public class HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest { protected HttpServletRequestWrapper() {} + public T upgrade(java.lang.Class p0){ return null; } public Collection getParts(){ return null; } public Cookie[] getCookies(){ return null; } public Enumeration getHeaderNames(){ return null; } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpUpgradeHandler.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpUpgradeHandler.java new file mode 100644 index 00000000000..987d49dbde2 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpUpgradeHandler.java @@ -0,0 +1,11 @@ +// Generated automatically from javax.servlet.http.HttpUpgradeHandler for testing purposes + +package javax.servlet.http; + +import javax.servlet.http.WebConnection; + +public interface HttpUpgradeHandler +{ + void destroy(); + void init(WebConnection p0); +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/WebConnection.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/WebConnection.java new file mode 100644 index 00000000000..5001c046400 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/WebConnection.java @@ -0,0 +1,12 @@ +// Generated automatically from javax.servlet.http.WebConnection for testing purposes + +package javax.servlet.http; + +import javax.servlet.ServletInputStream; +import javax.servlet.ServletOutputStream; + +public interface WebConnection extends AutoCloseable +{ + ServletInputStream getInputStream(); + ServletOutputStream getOutputStream(); +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/AbstractJSON.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/AbstractJSON.java new file mode 100644 index 00000000000..4788ceeb5c0 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/AbstractJSON.java @@ -0,0 +1,51 @@ +// Generated automatically from net.sf.json.AbstractJSON for testing purposes + +package net.sf.json; + +import java.io.Writer; +import java.util.Collection; +import net.sf.json.JSON; +import net.sf.json.JSONException; +import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; + +abstract class AbstractJSON implements JSON { + class WritingVisitor { + } + + protected Object _processValue(Object p0, JsonConfig p1) { + return null; + } + + protected abstract void write(Writer p0, AbstractJSON.WritingVisitor p1); + + protected static boolean addInstance(Object p0) { + return false; + } + + protected static void fireArrayEndEvent(JsonConfig p0) {} + + protected static void fireArrayStartEvent(JsonConfig p0) {} + + protected static void fireElementAddedEvent(int p0, Object p1, JsonConfig p2) {} + + protected static void fireErrorEvent(JSONException p0, JsonConfig p1) {} + + protected static void fireObjectEndEvent(JsonConfig p0) {} + + protected static void fireObjectStartEvent(JsonConfig p0) {} + + protected static void firePropertySetEvent(String p0, Object p1, boolean p2, JsonConfig p3) {} + + protected static void fireWarnEvent(String p0, JsonConfig p1) {} + + protected static void removeInstance(Object p0) {} + + public final Writer write(Writer p0) { + return null; + } + + public final Writer writeCanonical(Writer p0) { + return null; + } +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSON.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSON.java new file mode 100644 index 00000000000..e79a150ae79 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSON.java @@ -0,0 +1,17 @@ +// Generated automatically from net.sf.json.JSON for testing purposes + +package net.sf.json; + +import java.io.Serializable; +import java.io.Writer; + +public interface JSON extends Serializable +{ + String toString(int p0); + String toString(int p0, int p1); + Writer write(Writer p0); + Writer writeCanonical(Writer p0); + boolean isArray(); + boolean isEmpty(); + int size(); +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONArray.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONArray.java new file mode 100644 index 00000000000..80d223ebaee --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONArray.java @@ -0,0 +1,133 @@ +// Generated automatically from net.sf.json.JSONArray for testing purposes + +package net.sf.json; + +import java.beans.PropertyDescriptor; +import java.io.Writer; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; +import net.sf.json.AbstractJSON; +import net.sf.json.JSON; +import net.sf.json.JSONNull; +import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; + +public class JSONArray extends AbstractJSON implements Comparable, JSON, List +{ + protected JSONArray addString(String p0){ return null; } + protected Object _processValue(Object p0, JsonConfig p1){ return null; } + protected void write(Writer p0, AbstractJSON.WritingVisitor p1){} + public Iterator iterator(){ return null; } + public JSONArray discard(Object p0){ return null; } + public JSONArray discard(int p0){ return null; } + public JSONArray element(Collection p0){ return null; } + public JSONArray element(Collection p0, JsonConfig p1){ return null; } + public JSONArray element(JSONNull p0){ return null; } + public JSONArray element(JSONObject p0){ return null; } + public JSONArray element(Map p0){ return null; } + public JSONArray element(Map p0, JsonConfig p1){ return null; } + public JSONArray element(Object p0){ return null; } + public JSONArray element(Object p0, JsonConfig p1){ return null; } + public JSONArray element(String p0){ return null; } + public JSONArray element(String p0, JsonConfig p1){ return null; } + public JSONArray element(boolean p0){ return null; } + public JSONArray element(double p0){ return null; } + public JSONArray element(int p0){ return null; } + public JSONArray element(int p0, Collection p1){ return null; } + public JSONArray element(int p0, Collection p1, JsonConfig p2){ return null; } + public JSONArray element(int p0, Map p1){ return null; } + public JSONArray element(int p0, Map p1, JsonConfig p2){ return null; } + public JSONArray element(int p0, Object p1){ return null; } + public JSONArray element(int p0, Object p1, JsonConfig p2){ return null; } + public JSONArray element(int p0, String p1){ return null; } + public JSONArray element(int p0, String p1, JsonConfig p2){ return null; } + public JSONArray element(int p0, boolean p1){ return null; } + public JSONArray element(int p0, double p1){ return null; } + public JSONArray element(int p0, int p1){ return null; } + public JSONArray element(int p0, long p1){ return null; } + public JSONArray element(long p0){ return null; } + public JSONArray getJSONArray(int p0){ return null; } + public JSONArray optJSONArray(int p0){ return null; } + public JSONArray(){} + public JSONObject getJSONObject(int p0){ return null; } + public JSONObject optJSONObject(int p0){ return null; } + public JSONObject toJSONObject(JSONArray p0){ return null; } + public List subList(int p0, int p1){ return null; } + public ListIterator listIterator(){ return null; } + public ListIterator listIterator(int p0){ return null; } + public Object get(int p0){ return null; } + public Object opt(int p0){ return null; } + public Object remove(int p0){ return null; } + public Object set(int p0, Object p1){ return null; } + public Object set(int p0, Object p1, JsonConfig p2){ return null; } + public Object[] toArray(){ return null; } + public Object[] toArray(Object[] p0){ return null; } + public String getString(int p0){ return null; } + public String join(String p0){ return null; } + public String join(String p0, boolean p1){ return null; } + public String optString(int p0){ return null; } + public String optString(int p0, String p1){ return null; } + public String toString(){ return null; } + public String toString(int p0){ return null; } + public String toString(int p0, int p1){ return null; } + public boolean add(Object p0){ return false; } + public boolean add(Object p0, JsonConfig p1){ return false; } + public boolean addAll(Collection p0){ return false; } + public boolean addAll(Collection p0, JsonConfig p1){ return false; } + public boolean addAll(int p0, Collection p1){ return false; } + public boolean addAll(int p0, Collection p1, JsonConfig p2){ return false; } + public boolean contains(Object p0){ return false; } + public boolean contains(Object p0, JsonConfig p1){ return false; } + public boolean containsAll(Collection p0){ return false; } + public boolean containsAll(Collection p0, JsonConfig p1){ return false; } + public boolean equals(Object p0){ return false; } + public boolean getBoolean(int p0){ return false; } + public boolean isArray(){ return false; } + public boolean isEmpty(){ return false; } + public boolean isExpandElements(){ return false; } + public boolean optBoolean(int p0){ return false; } + public boolean optBoolean(int p0, boolean p1){ return false; } + public boolean remove(Object p0){ return false; } + public boolean removeAll(Collection p0){ return false; } + public boolean removeAll(Collection p0, JsonConfig p1){ return false; } + public boolean retainAll(Collection p0){ return false; } + public boolean retainAll(Collection p0, JsonConfig p1){ return false; } + public double getDouble(int p0){ return 0; } + public double optDouble(int p0){ return 0; } + public double optDouble(int p0, double p1){ return 0; } + public int compareTo(Object p0){ return 0; } + public int getInt(int p0){ return 0; } + public int hashCode(){ return 0; } + public int indexOf(Object p0){ return 0; } + public int lastIndexOf(Object p0){ return 0; } + public int optInt(int p0){ return 0; } + public int optInt(int p0, int p1){ return 0; } + public int size(){ return 0; } + public long getLong(int p0){ return 0; } + public long optLong(int p0){ return 0; } + public long optLong(int p0, long p1){ return 0; } + public static Class[] getCollectionType(PropertyDescriptor p0, boolean p1){ return null; } + public static Collection toCollection(JSONArray p0){ return null; } + public static Collection toCollection(JSONArray p0, Class p1){ return null; } + public static Collection toCollection(JSONArray p0, JsonConfig p1){ return null; } + public static JSONArray fromObject(Object p0){ return null; } + public static JSONArray fromObject(Object p0, JsonConfig p1){ return null; } + public static List toList(JSONArray p0){ return null; } + public static List toList(JSONArray p0, Class p1){ return null; } + public static List toList(JSONArray p0, Class p1, Map p2){ return null; } + public static List toList(JSONArray p0, JsonConfig p1){ return null; } + public static List toList(JSONArray p0, Object p1, JsonConfig p2){ return null; } + public static Object toArray(JSONArray p0){ return null; } + public static Object toArray(JSONArray p0, Class p1){ return null; } + public static Object toArray(JSONArray p0, Class p1, Map p2){ return null; } + public static Object toArray(JSONArray p0, JsonConfig p1){ return null; } + public static Object toArray(JSONArray p0, Object p1, JsonConfig p2){ return null; } + public static int[] getDimensions(JSONArray p0){ return null; } + public void add(int p0, Object p1){} + public void add(int p0, Object p1, JsonConfig p2){} + public void clear(){} + public void setExpandElements(boolean p0){} +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONException.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONException.java new file mode 100644 index 00000000000..7a1d1c72a4f --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONException.java @@ -0,0 +1,13 @@ +// Generated automatically from net.sf.json.JSONException for testing purposes + +package net.sf.json; + +import org.apache.commons.lang.exception.NestableRuntimeException; + +public class JSONException extends NestableRuntimeException +{ + public JSONException(){} + public JSONException(String p0){} + public JSONException(String p0, Throwable p1){} + public JSONException(Throwable p0){} +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONNull.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONNull.java new file mode 100644 index 00000000000..c456ad76336 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONNull.java @@ -0,0 +1,22 @@ +// Generated automatically from net.sf.json.JSONNull for testing purposes + +package net.sf.json; + +import java.io.Writer; +import net.sf.json.JSON; + +public class JSONNull implements JSON +{ + protected JSONNull() {} + public String toString(){ return null; } + public String toString(int p0){ return null; } + public String toString(int p0, int p1){ return null; } + public Writer write(Writer p0){ return null; } + public Writer writeCanonical(Writer p0){ return null; } + public boolean equals(Object p0){ return false; } + public boolean isArray(){ return false; } + public boolean isEmpty(){ return false; } + public int hashCode(){ return 0; } + public int size(){ return 0; } + public static JSONNull getInstance(){ return null; } +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONObject.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONObject.java new file mode 100644 index 00000000000..679887cdc8c --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JSONObject.java @@ -0,0 +1,100 @@ +// Generated automatically from net.sf.json.JSONObject for testing purposes + +package net.sf.json; + +import java.io.Writer; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import net.sf.json.AbstractJSON; +import net.sf.json.JSON; +import net.sf.json.JSONArray; +import net.sf.json.JsonConfig; + +public class JSONObject extends AbstractJSON implements Comparable, JSON, Map +{ + protected Object _processValue(Object p0, JsonConfig p1){ return null; } + protected void write(Writer p0, AbstractJSON.WritingVisitor p1){} + public Collection values(){ return null; } + public Iterator keys(){ return null; } + public JSONArray getJSONArray(String p0){ return null; } + public JSONArray names(){ return null; } + public JSONArray names(JsonConfig p0){ return null; } + public JSONArray optJSONArray(String p0){ return null; } + public JSONArray toJSONArray(JSONArray p0){ return null; } + public JSONObject accumulate(String p0, Object p1){ return null; } + public JSONObject accumulate(String p0, Object p1, JsonConfig p2){ return null; } + public JSONObject accumulate(String p0, boolean p1){ return null; } + public JSONObject accumulate(String p0, double p1){ return null; } + public JSONObject accumulate(String p0, int p1){ return null; } + public JSONObject accumulate(String p0, long p1){ return null; } + public JSONObject discard(String p0){ return null; } + public JSONObject element(String p0, Collection p1){ return null; } + public JSONObject element(String p0, Collection p1, JsonConfig p2){ return null; } + public JSONObject element(String p0, Map p1){ return null; } + public JSONObject element(String p0, Map p1, JsonConfig p2){ return null; } + public JSONObject element(String p0, Object p1){ return null; } + public JSONObject element(String p0, Object p1, JsonConfig p2){ return null; } + public JSONObject element(String p0, boolean p1){ return null; } + public JSONObject element(String p0, double p1){ return null; } + public JSONObject element(String p0, int p1){ return null; } + public JSONObject element(String p0, long p1){ return null; } + public JSONObject elementOpt(String p0, Object p1){ return null; } + public JSONObject elementOpt(String p0, Object p1, JsonConfig p2){ return null; } + public JSONObject getJSONObject(String p0){ return null; } + public JSONObject optJSONObject(String p0){ return null; } + public JSONObject(){} + public JSONObject(boolean p0){} + public Object get(Object p0){ return null; } + public Object get(String p0){ return null; } + public Object opt(String p0){ return null; } + public Object put(String p0, Object p1){ return null; } + public Object remove(Object p0){ return null; } + public Object remove(String p0){ return null; } + public Object toBean(){ return null; } + public Object toBean(Class p0){ return null; } + public Set entrySet(){ return null; } + public Set keySet(){ return null; } + public String getString(String p0){ return null; } + public String optString(String p0){ return null; } + public String optString(String p0, String p1){ return null; } + public String toString(){ return null; } + public String toString(int p0){ return null; } + public String toString(int p0, int p1){ return null; } + public boolean containsKey(Object p0){ return false; } + public boolean containsValue(Object p0){ return false; } + public boolean containsValue(Object p0, JsonConfig p1){ return false; } + public boolean equals(Object p0){ return false; } + public boolean getBoolean(String p0){ return false; } + public boolean has(String p0){ return false; } + public boolean isArray(){ return false; } + public boolean isEmpty(){ return false; } + public boolean isNullObject(){ return false; } + public boolean optBoolean(String p0){ return false; } + public boolean optBoolean(String p0, boolean p1){ return false; } + public double getDouble(String p0){ return 0; } + public double optDouble(String p0){ return 0; } + public double optDouble(String p0, double p1){ return 0; } + public int compareTo(Object p0){ return 0; } + public int getInt(String p0){ return 0; } + public int hashCode(){ return 0; } + public int optInt(String p0){ return 0; } + public int optInt(String p0, int p1){ return 0; } + public int size(){ return 0; } + public long getLong(String p0){ return 0; } + public long optLong(String p0){ return 0; } + public long optLong(String p0, long p1){ return 0; } + public static JSONObject fromObject(Object p0){ return null; } + public static JSONObject fromObject(Object p0, JsonConfig p1){ return null; } + public static Object toBean(JSONObject p0){ return null; } + public static Object toBean(JSONObject p0, Class p1){ return null; } + public static Object toBean(JSONObject p0, Class p1, Map p2){ return null; } + public static Object toBean(JSONObject p0, JsonConfig p1){ return null; } + public static Object toBean(JSONObject p0, Object p1, JsonConfig p2){ return null; } + public void accumulateAll(Map p0){} + public void accumulateAll(Map p0, JsonConfig p1){} + public void clear(){} + public void putAll(Map p0){} + public void putAll(Map p0, JsonConfig p1){} +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JsonConfig.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JsonConfig.java new file mode 100644 index 00000000000..3a845f414ce --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/JsonConfig.java @@ -0,0 +1,146 @@ +// Generated automatically from net.sf.json.JsonConfig for testing purposes + +package net.sf.json; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import net.sf.json.processors.DefaultValueProcessor; +import net.sf.json.processors.DefaultValueProcessorMatcher; +import net.sf.json.processors.JsonBeanProcessor; +import net.sf.json.processors.JsonBeanProcessorMatcher; +import net.sf.json.processors.JsonValueProcessor; +import net.sf.json.processors.JsonValueProcessorMatcher; +import net.sf.json.processors.PropertyNameProcessor; +import net.sf.json.processors.PropertyNameProcessorMatcher; +import net.sf.json.util.CycleDetectionStrategy; +import net.sf.json.util.JavaIdentifierTransformer; +import net.sf.json.util.JsonEventListener; +import net.sf.json.util.NewBeanInstanceStrategy; +import net.sf.json.util.PropertyExclusionClassMatcher; +import net.sf.json.util.PropertyFilter; +import net.sf.json.util.PropertySetStrategy; + +public class JsonConfig +{ + public Class getCollectionType(){ return null; } + public Class getEnclosedType(){ return null; } + public Class getRootClass(){ return null; } + public Collection getMergedExcludes(){ return null; } + public Collection getMergedExcludes(Class p0){ return null; } + public CycleDetectionStrategy getCycleDetectionStrategy(){ return null; } + public DefaultValueProcessor findDefaultValueProcessor(Class p0){ return null; } + public DefaultValueProcessorMatcher getDefaultValueProcessorMatcher(){ return null; } + public JavaIdentifierTransformer getJavaIdentifierTransformer(){ return null; } + public JsonBeanProcessor findJsonBeanProcessor(Class p0){ return null; } + public JsonBeanProcessorMatcher getJsonBeanProcessorMatcher(){ return null; } + public JsonConfig copy(){ return null; } + public JsonConfig(){} + public JsonValueProcessor findJsonValueProcessor(Class p0){ return null; } + public JsonValueProcessor findJsonValueProcessor(Class p0, Class p1, String p2){ return null; } + public JsonValueProcessor findJsonValueProcessor(Class p0, String p1){ return null; } + public JsonValueProcessorMatcher getJsonValueProcessorMatcher(){ return null; } + public List getIgnoreFieldAnnotations(){ return null; } + public List getJsonEventListeners(){ return null; } + public Map getClassMap(){ return null; } + public NewBeanInstanceStrategy getNewBeanInstanceStrategy(){ return null; } + public PropertyExclusionClassMatcher getPropertyExclusionClassMatcher(){ return null; } + public PropertyFilter getJavaPropertyFilter(){ return null; } + public PropertyFilter getJsonPropertyFilter(){ return null; } + public PropertyNameProcessor findJavaPropertyNameProcessor(Class p0){ return null; } + public PropertyNameProcessor findJsonPropertyNameProcessor(Class p0){ return null; } + public PropertyNameProcessor findPropertyNameProcessor(Class p0){ return null; } + public PropertyNameProcessorMatcher getJavaPropertyNameProcessorMatcher(){ return null; } + public PropertyNameProcessorMatcher getJsonPropertyNameProcessorMatcher(){ return null; } + public PropertyNameProcessorMatcher getPropertyNameProcessorMatcher(){ return null; } + public PropertySetStrategy getPropertySetStrategy(){ return null; } + public String[] getExcludes(){ return null; } + public boolean isAllowNonStringKeys(){ return false; } + public boolean isEventTriggeringEnabled(){ return false; } + public boolean isHandleJettisonEmptyElement(){ return false; } + public boolean isHandleJettisonSingleElementArray(){ return false; } + public boolean isIgnoreDefaultExcludes(){ return false; } + public boolean isIgnoreJPATransient(){ return false; } + public boolean isIgnorePublicFields(){ return false; } + public boolean isIgnoreTransientFields(){ return false; } + public boolean isIgnoreUnreadableProperty(){ return false; } + public boolean isJavascriptCompliant(){ return false; } + public boolean isSkipJavaIdentifierTransformationInMapKeys(){ return false; } + public int getArrayMode(){ return 0; } + public static DefaultValueProcessorMatcher DEFAULT_DEFAULT_VALUE_PROCESSOR_MATCHER = null; + public static JsonBeanProcessorMatcher DEFAULT_JSON_BEAN_PROCESSOR_MATCHER = null; + public static JsonValueProcessorMatcher DEFAULT_JSON_VALUE_PROCESSOR_MATCHER = null; + public static NewBeanInstanceStrategy DEFAULT_NEW_BEAN_INSTANCE_STRATEGY = null; + public static PropertyExclusionClassMatcher DEFAULT_PROPERTY_EXCLUSION_CLASS_MATCHER = null; + public static PropertyNameProcessorMatcher DEFAULT_PROPERTY_NAME_PROCESSOR_MATCHER = null; + public static int MODE_LIST = 0; + public static int MODE_OBJECT_ARRAY = 0; + public static int MODE_SET = 0; + public void addIgnoreFieldAnnotation(Class p0){} + public void addIgnoreFieldAnnotation(String p0){} + public void addJsonEventListener(JsonEventListener p0){} + public void clearJavaPropertyNameProcessors(){} + public void clearJsonBeanProcessors(){} + public void clearJsonEventListeners(){} + public void clearJsonPropertyNameProcessors(){} + public void clearJsonValueProcessors(){} + public void clearPropertyExclusions(){} + public void clearPropertyNameProcessors(){} + public void disableEventTriggering(){} + public void enableEventTriggering(){} + public void registerDefaultValueProcessor(Class p0, DefaultValueProcessor p1){} + public void registerJavaPropertyNameProcessor(Class p0, PropertyNameProcessor p1){} + public void registerJsonBeanProcessor(Class p0, JsonBeanProcessor p1){} + public void registerJsonPropertyNameProcessor(Class p0, PropertyNameProcessor p1){} + public void registerJsonValueProcessor(Class p0, Class p1, JsonValueProcessor p2){} + public void registerJsonValueProcessor(Class p0, JsonValueProcessor p1){} + public void registerJsonValueProcessor(Class p0, String p1, JsonValueProcessor p2){} + public void registerJsonValueProcessor(String p0, JsonValueProcessor p1){} + public void registerPropertyExclusion(Class p0, String p1){} + public void registerPropertyExclusions(Class p0, String[] p1){} + public void registerPropertyNameProcessor(Class p0, PropertyNameProcessor p1){} + public void removeIgnoreFieldAnnotation(Class p0){} + public void removeIgnoreFieldAnnotation(String p0){} + public void removeJsonEventListener(JsonEventListener p0){} + public void reset(){} + public void setAllowNonStringKeys(boolean p0){} + public void setArrayMode(int p0){} + public void setClassMap(Map p0){} + public void setCollectionType(Class p0){} + public void setCycleDetectionStrategy(CycleDetectionStrategy p0){} + public void setDefaultValueProcessorMatcher(DefaultValueProcessorMatcher p0){} + public void setEnclosedType(Class p0){} + public void setExcludes(String[] p0){} + public void setHandleJettisonEmptyElement(boolean p0){} + public void setHandleJettisonSingleElementArray(boolean p0){} + public void setIgnoreDefaultExcludes(boolean p0){} + public void setIgnoreJPATransient(boolean p0){} + public void setIgnorePublicFields(boolean p0){} + public void setIgnoreTransientFields(boolean p0){} + public void setIgnoreUnreadableProperty(boolean p0){} + public void setJavaIdentifierTransformer(JavaIdentifierTransformer p0){} + public void setJavaPropertyFilter(PropertyFilter p0){} + public void setJavaPropertyNameProcessorMatcher(PropertyNameProcessorMatcher p0){} + public void setJavascriptCompliant(boolean p0){} + public void setJsonBeanProcessorMatcher(JsonBeanProcessorMatcher p0){} + public void setJsonPropertyFilter(PropertyFilter p0){} + public void setJsonPropertyNameProcessorMatcher(PropertyNameProcessorMatcher p0){} + public void setJsonValueProcessorMatcher(JsonValueProcessorMatcher p0){} + public void setNewBeanInstanceStrategy(NewBeanInstanceStrategy p0){} + public void setPropertyExclusionClassMatcher(PropertyExclusionClassMatcher p0){} + public void setPropertyNameProcessorMatcher(PropertyNameProcessorMatcher p0){} + public void setPropertySetStrategy(PropertySetStrategy p0){} + public void setRootClass(Class p0){} + public void setSkipJavaIdentifierTransformationInMapKeys(boolean p0){} + public void unregisterDefaultValueProcessor(Class p0){} + public void unregisterJavaPropertyNameProcessor(Class p0){} + public void unregisterJsonBeanProcessor(Class p0){} + public void unregisterJsonPropertyNameProcessor(Class p0){} + public void unregisterJsonValueProcessor(Class p0){} + public void unregisterJsonValueProcessor(Class p0, Class p1){} + public void unregisterJsonValueProcessor(Class p0, String p1){} + public void unregisterJsonValueProcessor(String p0){} + public void unregisterPropertyExclusion(Class p0, String p1){} + public void unregisterPropertyExclusions(Class p0){} + public void unregisterPropertyNameProcessor(Class p0){} +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/DefaultValueProcessor.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/DefaultValueProcessor.java new file mode 100644 index 00000000000..23776a3c2b3 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/DefaultValueProcessor.java @@ -0,0 +1,9 @@ +// Generated automatically from net.sf.json.processors.DefaultValueProcessor for testing purposes + +package net.sf.json.processors; + + +public interface DefaultValueProcessor +{ + Object getDefaultValue(Class p0); +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/DefaultValueProcessorMatcher.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/DefaultValueProcessorMatcher.java new file mode 100644 index 00000000000..23f7ea33eb5 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/DefaultValueProcessorMatcher.java @@ -0,0 +1,12 @@ +// Generated automatically from net.sf.json.processors.DefaultValueProcessorMatcher for testing purposes + +package net.sf.json.processors; + +import java.util.Set; + +abstract public class DefaultValueProcessorMatcher +{ + public DefaultValueProcessorMatcher(){} + public abstract Object getMatch(Class p0, Set p1); + public static DefaultValueProcessorMatcher DEFAULT = null; +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonBeanProcessor.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonBeanProcessor.java new file mode 100644 index 00000000000..a7179fd9c04 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonBeanProcessor.java @@ -0,0 +1,11 @@ +// Generated automatically from net.sf.json.processors.JsonBeanProcessor for testing purposes + +package net.sf.json.processors; + +import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; + +public interface JsonBeanProcessor +{ + JSONObject processBean(Object p0, JsonConfig p1); +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonBeanProcessorMatcher.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonBeanProcessorMatcher.java new file mode 100644 index 00000000000..f83fdcd8aa4 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonBeanProcessorMatcher.java @@ -0,0 +1,12 @@ +// Generated automatically from net.sf.json.processors.JsonBeanProcessorMatcher for testing purposes + +package net.sf.json.processors; + +import java.util.Set; + +abstract public class JsonBeanProcessorMatcher +{ + public JsonBeanProcessorMatcher(){} + public abstract Object getMatch(Class p0, Set p1); + public static JsonBeanProcessorMatcher DEFAULT = null; +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonValueProcessor.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonValueProcessor.java new file mode 100644 index 00000000000..8785ceb5b95 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonValueProcessor.java @@ -0,0 +1,11 @@ +// Generated automatically from net.sf.json.processors.JsonValueProcessor for testing purposes + +package net.sf.json.processors; + +import net.sf.json.JsonConfig; + +public interface JsonValueProcessor +{ + Object processArrayValue(Object p0, JsonConfig p1); + Object processObjectValue(String p0, Object p1, JsonConfig p2); +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonValueProcessorMatcher.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonValueProcessorMatcher.java new file mode 100644 index 00000000000..bf9e76ea3c2 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/JsonValueProcessorMatcher.java @@ -0,0 +1,12 @@ +// Generated automatically from net.sf.json.processors.JsonValueProcessorMatcher for testing purposes + +package net.sf.json.processors; + +import java.util.Set; + +abstract public class JsonValueProcessorMatcher +{ + public JsonValueProcessorMatcher(){} + public abstract Object getMatch(Class p0, Set p1); + public static JsonValueProcessorMatcher DEFAULT = null; +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/PropertyNameProcessor.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/PropertyNameProcessor.java new file mode 100644 index 00000000000..73f85f2df5d --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/PropertyNameProcessor.java @@ -0,0 +1,9 @@ +// Generated automatically from net.sf.json.processors.PropertyNameProcessor for testing purposes + +package net.sf.json.processors; + + +public interface PropertyNameProcessor +{ + String processPropertyName(Class p0, String p1); +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/PropertyNameProcessorMatcher.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/PropertyNameProcessorMatcher.java new file mode 100644 index 00000000000..a1a967831ab --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/processors/PropertyNameProcessorMatcher.java @@ -0,0 +1,12 @@ +// Generated automatically from net.sf.json.processors.PropertyNameProcessorMatcher for testing purposes + +package net.sf.json.processors; + +import java.util.Set; + +abstract public class PropertyNameProcessorMatcher +{ + public PropertyNameProcessorMatcher(){} + public abstract Object getMatch(Class p0, Set p1); + public static PropertyNameProcessorMatcher DEFAULT = null; +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/CycleDetectionStrategy.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/CycleDetectionStrategy.java new file mode 100644 index 00000000000..a1ea623c1ed --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/CycleDetectionStrategy.java @@ -0,0 +1,18 @@ +// Generated automatically from net.sf.json.util.CycleDetectionStrategy for testing purposes + +package net.sf.json.util; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + +abstract public class CycleDetectionStrategy +{ + public CycleDetectionStrategy(){} + public abstract JSONArray handleRepeatedReferenceAsArray(Object p0); + public abstract JSONObject handleRepeatedReferenceAsObject(Object p0); + public static CycleDetectionStrategy LENIENT = null; + public static CycleDetectionStrategy NOPROP = null; + public static CycleDetectionStrategy STRICT = null; + public static JSONArray IGNORE_PROPERTY_ARR = null; + public static JSONObject IGNORE_PROPERTY_OBJ = null; +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/JavaIdentifierTransformer.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/JavaIdentifierTransformer.java new file mode 100644 index 00000000000..c6c548c4b11 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/JavaIdentifierTransformer.java @@ -0,0 +1,16 @@ +// Generated automatically from net.sf.json.util.JavaIdentifierTransformer for testing purposes + +package net.sf.json.util; + + +abstract public class JavaIdentifierTransformer +{ + protected final String shaveOffNonJavaIdentifierStartChars(String p0){ return null; } + public JavaIdentifierTransformer(){} + public abstract String transformToJavaIdentifier(String p0); + public static JavaIdentifierTransformer CAMEL_CASE = null; + public static JavaIdentifierTransformer NOOP = null; + public static JavaIdentifierTransformer STRICT = null; + public static JavaIdentifierTransformer UNDERSCORE = null; + public static JavaIdentifierTransformer WHITESPACE = null; +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/JsonEventListener.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/JsonEventListener.java new file mode 100644 index 00000000000..acefd497abd --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/JsonEventListener.java @@ -0,0 +1,17 @@ +// Generated automatically from net.sf.json.util.JsonEventListener for testing purposes + +package net.sf.json.util; + +import net.sf.json.JSONException; + +public interface JsonEventListener +{ + void onArrayEnd(); + void onArrayStart(); + void onElementAdded(int p0, Object p1); + void onError(JSONException p0); + void onObjectEnd(); + void onObjectStart(); + void onPropertySet(String p0, Object p1, boolean p2); + void onWarning(String p0); +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/NewBeanInstanceStrategy.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/NewBeanInstanceStrategy.java new file mode 100644 index 00000000000..e6641e815e9 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/NewBeanInstanceStrategy.java @@ -0,0 +1,12 @@ +// Generated automatically from net.sf.json.util.NewBeanInstanceStrategy for testing purposes + +package net.sf.json.util; + +import net.sf.json.JSONObject; + +abstract public class NewBeanInstanceStrategy +{ + public NewBeanInstanceStrategy(){} + public abstract Object newInstance(Class p0, JSONObject p1); + public static NewBeanInstanceStrategy DEFAULT = null; +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertyExclusionClassMatcher.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertyExclusionClassMatcher.java new file mode 100644 index 00000000000..41d86d0dfb4 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertyExclusionClassMatcher.java @@ -0,0 +1,12 @@ +// Generated automatically from net.sf.json.util.PropertyExclusionClassMatcher for testing purposes + +package net.sf.json.util; + +import java.util.Set; + +abstract public class PropertyExclusionClassMatcher +{ + public PropertyExclusionClassMatcher(){} + public abstract Object getMatch(Class p0, Set p1); + public static PropertyExclusionClassMatcher DEFAULT = null; +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertyFilter.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertyFilter.java new file mode 100644 index 00000000000..aa47574cc5d --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertyFilter.java @@ -0,0 +1,9 @@ +// Generated automatically from net.sf.json.util.PropertyFilter for testing purposes + +package net.sf.json.util; + + +public interface PropertyFilter +{ + boolean apply(Object p0, String p1, Object p2); +} diff --git a/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertySetStrategy.java b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertySetStrategy.java new file mode 100644 index 00000000000..2f1e24c5734 --- /dev/null +++ b/java/ql/test/stubs/saxon-xqj-9.x/net/sf/json/util/PropertySetStrategy.java @@ -0,0 +1,13 @@ +// Generated automatically from net.sf.json.util.PropertySetStrategy for testing purposes + +package net.sf.json.util; + +import net.sf.json.JsonConfig; + +abstract public class PropertySetStrategy +{ + public PropertySetStrategy(){} + public abstract void setProperty(Object p0, String p1, Object p2); + public static PropertySetStrategy DEFAULT = null; + public void setProperty(Object p0, String p1, Object p2, JsonConfig p3){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/AbstractTearOff.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/AbstractTearOff.java new file mode 100644 index 00000000000..43db7ead848 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/AbstractTearOff.java @@ -0,0 +1,23 @@ +// Generated automatically from org.kohsuke.stapler.AbstractTearOff for testing purposes + +package org.kohsuke.stapler; + +import java.net.URL; +import org.kohsuke.stapler.CachingScriptLoader; +import org.kohsuke.stapler.MetaClass; +import org.kohsuke.stapler.WebApp; + +abstract public class AbstractTearOff extends CachingScriptLoader +{ + protected AbstractTearOff() {} + protected AbstractTearOff(MetaClass p0, Class p1){} + protected URL getResource(String p0){ return null; } + protected abstract S parseScript(URL p0); + protected abstract String getDefaultScriptExtension(); + protected boolean hasAllowedExtension(String p0){ return false; } + protected final CLT classLoader = null; + protected final MetaClass owner = null; + protected final S loadScript(String p0){ return null; } + protected final WebApp getWebApp(){ return null; } + public S resolveScript(String p0){ return null; } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Ancestor.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Ancestor.java new file mode 100644 index 00000000000..357089de01c --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Ancestor.java @@ -0,0 +1,16 @@ +// Generated automatically from org.kohsuke.stapler.Ancestor for testing purposes + +package org.kohsuke.stapler; + + +public interface Ancestor +{ + Ancestor getNext(); + Ancestor getPrev(); + Object getObject(); + String getFullUrl(); + String getNextToken(int p0); + String getRelativePath(); + String getRestOfUrl(); + String getUrl(); +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/AncestorImpl.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/AncestorImpl.java new file mode 100644 index 00000000000..392e10fbe6e --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/AncestorImpl.java @@ -0,0 +1,19 @@ +// Generated automatically from org.kohsuke.stapler.AncestorImpl for testing purposes + +package org.kohsuke.stapler; + +import org.kohsuke.stapler.Ancestor; + +class AncestorImpl implements Ancestor +{ + protected AncestorImpl() {} + public Ancestor getNext(){ return null; } + public Ancestor getPrev(){ return null; } + public Object getObject(){ return null; } + public String getFullUrl(){ return null; } + public String getNextToken(int p0){ return null; } + public String getRelativePath(){ return null; } + public String getRestOfUrl(){ return null; } + public String getUrl(){ return null; } + public String toString(){ return null; } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/BindInterceptor.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/BindInterceptor.java new file mode 100644 index 00000000000..4dbbb6bc832 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/BindInterceptor.java @@ -0,0 +1,15 @@ +// Generated automatically from org.kohsuke.stapler.BindInterceptor for testing purposes + +package org.kohsuke.stapler; + +import java.lang.reflect.Type; +import net.sf.json.JSONObject; + +public class BindInterceptor +{ + public BindInterceptor(){} + public Object instantiate(Class p0, JSONObject p1){ return null; } + public Object onConvert(Type p0, Class p1, Object p2){ return null; } + public static BindInterceptor NOOP = null; + public static Object DEFAULT = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/CachingScriptLoader.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/CachingScriptLoader.java new file mode 100644 index 00000000000..b5341c80488 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/CachingScriptLoader.java @@ -0,0 +1,14 @@ +// Generated automatically from org.kohsuke.stapler.CachingScriptLoader for testing purposes + +package org.kohsuke.stapler; + +import java.net.URL; + +abstract public class CachingScriptLoader +{ + protected abstract S loadScript(String p0); + protected abstract URL getResource(String p0); + public CachingScriptLoader(){} + public S findScript(String p0){ return null; } + public void clearScripts(){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/CrumbIssuer.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/CrumbIssuer.java new file mode 100644 index 00000000000..9958ef87446 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/CrumbIssuer.java @@ -0,0 +1,16 @@ +// Generated automatically from org.kohsuke.stapler.CrumbIssuer for testing purposes + +package org.kohsuke.stapler; + +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.StaplerRequest; + +abstract public class CrumbIssuer +{ + public CrumbIssuer(){} + public HttpResponse doCrumb(){ return null; } + public abstract String issueCrumb(StaplerRequest p0); + public final String issueCrumb(){ return null; } + public static CrumbIssuer DEFAULT = null; + public void validateCrumb(StaplerRequest p0, String p1){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/DispatchValidator.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/DispatchValidator.java new file mode 100644 index 00000000000..d4cecf6c5e4 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/DispatchValidator.java @@ -0,0 +1,15 @@ +// Generated automatically from org.kohsuke.stapler.DispatchValidator for testing purposes + +package org.kohsuke.stapler; + +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +public interface DispatchValidator +{ + Boolean isDispatchAllowed(StaplerRequest p0, StaplerResponse p1); + default Boolean isDispatchAllowed(StaplerRequest p0, StaplerResponse p1, String p2, Object p3){ return null; } + default void requireDispatchAllowed(StaplerRequest p0, StaplerResponse p1){} + static DispatchValidator DEFAULT = null; + void allowDispatch(StaplerRequest p0, StaplerResponse p1); +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Dispatcher.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Dispatcher.java new file mode 100644 index 00000000000..ff2a860acd9 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Dispatcher.java @@ -0,0 +1,25 @@ +// Generated automatically from org.kohsuke.stapler.Dispatcher for testing purposes + +package org.kohsuke.stapler; + +import org.kohsuke.stapler.RequestImpl; +import org.kohsuke.stapler.ResponseImpl; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +abstract public class Dispatcher +{ + public Dispatcher(){} + public abstract String toString(); + public abstract boolean dispatch(RequestImpl p0, ResponseImpl p1, Object p2); + public static boolean TRACE = false; + public static boolean TRACE_PER_REQUEST = false; + public static boolean isTraceEnabled(StaplerRequest p0){ return false; } + public static boolean traceable(){ return false; } + public static void anonymizedTraceEval(StaplerRequest p0, StaplerResponse p1, Object p2, String p3, String... p4){} + public static void trace(StaplerRequest p0, StaplerResponse p1, String p2){} + public static void trace(StaplerRequest p0, StaplerResponse p1, String p2, Object... p3){} + public static void traceEval(StaplerRequest p0, StaplerResponse p1, Object p2){} + public static void traceEval(StaplerRequest p0, StaplerResponse p1, Object p2, String p3){} + public static void traceEval(StaplerRequest p0, StaplerResponse p1, Object p2, String p3, String p4){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/DispatchersFilter.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/DispatchersFilter.java new file mode 100644 index 00000000000..2255a80c536 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/DispatchersFilter.java @@ -0,0 +1,13 @@ +// Generated automatically from org.kohsuke.stapler.DispatchersFilter for testing purposes + +package org.kohsuke.stapler; + +import java.util.List; +import org.kohsuke.stapler.Dispatcher; +import org.kohsuke.stapler.FunctionList; +import org.kohsuke.stapler.MetaClass; + +public interface DispatchersFilter +{ + void applyOn(MetaClass p0, FunctionList p1, List p2); +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Facet.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Facet.java new file mode 100644 index 00000000000..4a56520a58a --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Facet.java @@ -0,0 +1,35 @@ +// Generated automatically from org.kohsuke.stapler.Facet for testing purposes + +package org.kohsuke.stapler; + +import java.util.List; +import java.util.logging.Logger; +import javax.servlet.RequestDispatcher; +import org.kohsuke.stapler.AbstractTearOff; +import org.kohsuke.stapler.Dispatcher; +import org.kohsuke.stapler.MetaClass; +import org.kohsuke.stapler.RequestImpl; +import org.kohsuke.stapler.ResponseImpl; +import org.kohsuke.stapler.ScriptExecutor; +import org.kohsuke.stapler.lang.Klass; + +abstract public class Facet +{ + protected Dispatcher createValidatingDispatcher(org.kohsuke.stapler.AbstractTearOff p0, org.kohsuke.stapler.ScriptExecutor p1){ return null; } + protected RequestDispatcher createRequestDispatcher(org.kohsuke.stapler.AbstractTearOff p0, org.kohsuke.stapler.ScriptExecutor p1, Object p2, String p3){ return null; } + protected boolean handleIndexRequest(org.kohsuke.stapler.AbstractTearOff p0, org.kohsuke.stapler.ScriptExecutor p1, RequestImpl p2, ResponseImpl p3, Object p4){ return false; } + protected String getExtensionSuffix(){ return null; } + protected boolean isBasename(String p0){ return false; } + public Facet(){} + public Klass getKlass(Object p0){ return null; } + public RequestDispatcher createRequestDispatcher(RequestImpl p0, Class p1, Object p2, String p3){ return null; } + public RequestDispatcher createRequestDispatcher(RequestImpl p0, Klass p1, Object p2, String p3){ return null; } + public abstract boolean handleIndexRequest(RequestImpl p0, ResponseImpl p1, Object p2, MetaClass p3); + public abstract void buildViewDispatchers(MetaClass p0, List p1); + public static java.util.List discoverExtensions(java.lang.Class p0, ClassLoader... p1){ return null; } + public static List discover(ClassLoader p0){ return null; } + public static Logger LOGGER = null; + public static boolean ALLOW_VIEW_NAME_PATH_TRAVERSAL = false; + public void buildFallbackDispatchers(MetaClass p0, List p1){} + public void buildIndexDispatchers(MetaClass p0, List p1){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Function.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Function.java new file mode 100644 index 00000000000..f5c64601928 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Function.java @@ -0,0 +1,30 @@ +// Generated automatically from org.kohsuke.stapler.Function for testing purposes + +package org.kohsuke.stapler; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +abstract public class Function +{ + public Function contextualize(Object p0){ return null; } + public Function(){} + public abstract A getAnnotation(java.lang.Class p0); + public abstract Annotation[] getAnnotations(); + public abstract Annotation[][] getParameterAnnotations(); + public abstract Class getDeclaringClass(); + public abstract Class getReturnType(); + public abstract Class[] getCheckedExceptionTypes(); + public abstract Class[] getParameterTypes(); + public abstract Object invoke(StaplerRequest p0, StaplerResponse p1, Object p2, Object... p3); + public abstract String getDisplayName(); + public abstract String getName(); + public abstract String getQualifiedName(); + public abstract String getSignature(); + public abstract String[] getParameterNames(); + public abstract Type[] getGenericParameterTypes(); + public abstract boolean isStatic(); + public static Object returnNull(){ return null; } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/FunctionList.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/FunctionList.java new file mode 100644 index 00000000000..c433c9998f7 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/FunctionList.java @@ -0,0 +1,29 @@ +// Generated automatically from org.kohsuke.stapler.FunctionList for testing purposes + +package org.kohsuke.stapler; + +import java.lang.annotation.Annotation; +import java.util.AbstractList; +import java.util.Collection; +import org.kohsuke.stapler.Function; + +public class FunctionList extends AbstractList +{ + protected FunctionList() {} + public Function get(int p0){ return null; } + public FunctionList annotated(Class p0){ return null; } + public FunctionList name(String p0){ return null; } + public FunctionList prefix(String p0){ return null; } + public FunctionList signature(Class... p0){ return null; } + public FunctionList signatureStartsWith(Class... p0){ return null; } + public FunctionList union(FunctionList p0){ return null; } + public FunctionList webMethodsLegacy(){ return null; } + public FunctionList(Collection p0){} + public FunctionList(Function... p0){} + public int size(){ return 0; } + static public interface Filter + { + boolean keep(Function p0); + static FunctionList.Filter ALWAYS_OK = null; + } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponse.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponse.java new file mode 100644 index 00000000000..6219e2b5b93 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponse.java @@ -0,0 +1,11 @@ +// Generated automatically from org.kohsuke.stapler.HttpResponse for testing purposes + +package org.kohsuke.stapler; + +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +public interface HttpResponse +{ + void generateResponse(StaplerRequest p0, StaplerResponse p1, Object p2); +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponseRenderer.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponseRenderer.java new file mode 100644 index 00000000000..7caae651055 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponseRenderer.java @@ -0,0 +1,12 @@ +// Generated automatically from org.kohsuke.stapler.HttpResponseRenderer for testing purposes + +package org.kohsuke.stapler; + +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +abstract public class HttpResponseRenderer +{ + public HttpResponseRenderer(){} + public abstract boolean generateResponse(StaplerRequest p0, StaplerResponse p1, Object p2, Object p3); +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/JsonInErrorMessageSanitizer.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/JsonInErrorMessageSanitizer.java new file mode 100644 index 00000000000..12485b2748f --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/JsonInErrorMessageSanitizer.java @@ -0,0 +1,11 @@ +// Generated automatically from org.kohsuke.stapler.JsonInErrorMessageSanitizer for testing purposes + +package org.kohsuke.stapler; + +import net.sf.json.JSONObject; + +public interface JsonInErrorMessageSanitizer +{ + JSONObject sanitize(JSONObject p0); + static JsonInErrorMessageSanitizer NOOP = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/MetaClass.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/MetaClass.java new file mode 100644 index 00000000000..4c8bcd6c74d --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/MetaClass.java @@ -0,0 +1,28 @@ +// Generated automatically from org.kohsuke.stapler.MetaClass for testing purposes + +package org.kohsuke.stapler; + +import java.util.List; +import org.kohsuke.stapler.Dispatcher; +import org.kohsuke.stapler.MetaClassLoader; +import org.kohsuke.stapler.SingleLinkedList; +import org.kohsuke.stapler.TearOffSupport; +import org.kohsuke.stapler.WebApp; +import org.kohsuke.stapler.lang.Klass; +import org.kohsuke.stapler.lang.MethodRef; + +public class MetaClass extends TearOffSupport +{ + protected MetaClass() {} + public SingleLinkedList getPostConstructMethods(){ return null; } + public String toString(){ return null; } + public final Class clazz = null; + public final Klass klass = null; + public final List dispatchers = null; + public final MetaClass baseClass = null; + public final MetaClassLoader classLoader = null; + public final WebApp webApp = null; + public static boolean LEGACY_GETTER_MODE = false; + public static boolean LEGACY_WEB_METHOD_MODE = false; + public static boolean NO_CACHE = false; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/MetaClassLoader.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/MetaClassLoader.java new file mode 100644 index 00000000000..1490efbf9d3 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/MetaClassLoader.java @@ -0,0 +1,15 @@ +// Generated automatically from org.kohsuke.stapler.MetaClassLoader for testing purposes + +package org.kohsuke.stapler; + +import org.kohsuke.stapler.TearOffSupport; + +public class MetaClassLoader extends TearOffSupport +{ + protected MetaClassLoader() {} + public MetaClassLoader(ClassLoader p0){} + public final ClassLoader loader = null; + public final MetaClassLoader parent = null; + public static MetaClassLoader debugLoader = null; + public static MetaClassLoader get(ClassLoader p0){ return null; } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/RequestImpl.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/RequestImpl.java new file mode 100644 index 00000000000..35e8777e8bc --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/RequestImpl.java @@ -0,0 +1,80 @@ +// Generated automatically from org.kohsuke.stapler.RequestImpl for testing purposes + +package org.kohsuke.stapler; + +import java.lang.reflect.Type; +import java.util.Calendar; +import java.util.Date; +import java.util.Enumeration; +import java.util.List; +import java.util.Map; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import net.sf.json.JSONObject; +import org.apache.commons.fileupload.FileItem; +import org.kohsuke.stapler.Ancestor; +import org.kohsuke.stapler.AncestorImpl; +import org.kohsuke.stapler.BindInterceptor; +import org.kohsuke.stapler.Stapler; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.TokenList; +import org.kohsuke.stapler.WebApp; +import org.kohsuke.stapler.bind.BoundObjectTable; +import org.kohsuke.stapler.lang.Klass; + +public class RequestImpl extends HttpServletRequestWrapper implements StaplerRequest +{ + protected RequestImpl() {} + public T bindJSON(java.lang.Class p0, JSONObject p1){ return null; } + public T bindParameters(java.lang.Class p0, String p1){ return null; } + public T bindParameters(java.lang.Class p0, String p1, int p2){ return null; } + public T findAncestorObject(java.lang.Class p0){ return null; } + public java.util.List bindJSONToList(java.lang.Class p0, Object p1){ return null; } + public java.util.List bindParametersToList(java.lang.Class p0, String p1){ return null; } + public Ancestor findAncestor(Class p0){ return null; } + public Ancestor findAncestor(Object p0){ return null; } + public BindInterceptor getBindInterceptor(){ return null; } + public BindInterceptor setBindInterceptor(BindInterceptor p0){ return null; } + public BindInterceptor setBindInterceptpr(BindInterceptor p0){ return null; } + public BindInterceptor setBindListener(BindInterceptor p0){ return null; } + public BoundObjectTable getBoundObjectTable(){ return null; } + public Enumeration getParameterNames(){ return null; } + public FileItem getFileItem(String p0){ return null; } + public JSONObject getSubmittedForm(){ return null; } + public List getAncestors(){ return null; } + public Map getParameterMap(){ return null; } + public Object bindJSON(Type p0, Class p1, Object p2){ return null; } + public RequestDispatcher getView(Class p0, String p1){ return null; } + public RequestDispatcher getView(Klass p0, Object p1, String p2){ return null; } + public RequestDispatcher getView(Klass p0, String p1){ return null; } + public RequestDispatcher getView(Object p0, String p1){ return null; } + public RequestImpl(Stapler p0, HttpServletRequest p1, List p2, TokenList p3){} + public ServletContext getServletContext(){ return null; } + public Stapler getStapler(){ return null; } + public String createJavaScriptProxy(Object p0){ return null; } + public String getOriginalRequestURI(){ return null; } + public String getOriginalRestOfPath(){ return null; } + public String getParameter(String p0){ return null; } + public String getReferer(){ return null; } + public String getRequestURIWithQueryString(){ return null; } + public String getRestOfPath(){ return null; } + public String getRootPath(){ return null; } + public StringBuffer getRequestURLWithQueryString(){ return null; } + public String[] getParameterValues(String p0){ return null; } + public WebApp getWebApp(){ return null; } + public boolean checkIfModified(Calendar p0, StaplerResponse p1){ return false; } + public boolean checkIfModified(Date p0, StaplerResponse p1){ return false; } + public boolean checkIfModified(long p0, StaplerResponse p1){ return false; } + public boolean checkIfModified(long p0, StaplerResponse p1, long p2){ return false; } + public boolean hasParameter(String p0){ return false; } + public boolean isJavaScriptProxyCall(){ return false; } + public final List ancestors = null; + public final Stapler stapler = null; + public final TokenList tokens = null; + public void bindJSON(Object p0, JSONObject p1){} + public void bindParameters(Object p0){} + public void bindParameters(Object p0, String p1){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ResponseImpl.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ResponseImpl.java new file mode 100644 index 00000000000..45aa79485cf --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ResponseImpl.java @@ -0,0 +1,48 @@ +// Generated automatically from org.kohsuke.stapler.ResponseImpl for testing purposes + +package org.kohsuke.stapler; + +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.io.Writer; +import java.net.URL; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpServletResponseWrapper; +import net.sf.json.JsonConfig; +import org.kohsuke.stapler.Stapler; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.export.ExportConfig; +import org.kohsuke.stapler.export.Flavor; + +public class ResponseImpl extends HttpServletResponseWrapper implements StaplerResponse +{ + protected ResponseImpl() {} + public JsonConfig getJsonConfig(){ return null; } + public OutputStream getCompressedOutputStream(HttpServletRequest p0){ return null; } + public PrintWriter getWriter(){ return null; } + public ResponseImpl(Stapler p0, HttpServletResponse p1){} + public ServletOutputStream getOutputStream(){ return null; } + public Writer getCompressedWriter(HttpServletRequest p0){ return null; } + public int reverseProxyTo(URL p0, StaplerRequest p1){ return 0; } + public static String encode(String p0){ return null; } + public void forward(Object p0, String p1, StaplerRequest p2){} + public void forwardToPreviousPage(StaplerRequest p0){} + public void sendRedirect(String p0){} + public void sendRedirect(int p0, String p1){} + public void sendRedirect2(String p0){} + public void serveExposedBean(StaplerRequest p0, Object p1, ExportConfig p2){} + public void serveExposedBean(StaplerRequest p0, Object p1, Flavor p2){} + public void serveFile(StaplerRequest p0, InputStream p1, long p2, int p3, String p4){} + public void serveFile(StaplerRequest p0, InputStream p1, long p2, long p3, String p4){} + public void serveFile(StaplerRequest p0, InputStream p1, long p2, long p3, int p4, String p5){} + public void serveFile(StaplerRequest p0, InputStream p1, long p2, long p3, long p4, String p5){} + public void serveFile(StaplerRequest p0, URL p1){} + public void serveFile(StaplerRequest p0, URL p1, long p2){} + public void serveLocalizedFile(StaplerRequest p0, URL p1){} + public void serveLocalizedFile(StaplerRequest p0, URL p1, long p2){} + public void setJsonConfig(JsonConfig p0){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ScriptExecutor.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ScriptExecutor.java new file mode 100644 index 00000000000..860ea9a97ff --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ScriptExecutor.java @@ -0,0 +1,11 @@ +// Generated automatically from org.kohsuke.stapler.ScriptExecutor for testing purposes + +package org.kohsuke.stapler; + +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +public interface ScriptExecutor +{ + void execute(StaplerRequest p0, StaplerResponse p1, S p2, Object p3); +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/SingleLinkedList.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/SingleLinkedList.java new file mode 100644 index 00000000000..0e47d566ede --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/SingleLinkedList.java @@ -0,0 +1,20 @@ +// Generated automatically from org.kohsuke.stapler.SingleLinkedList for testing purposes + +package org.kohsuke.stapler; + +import java.util.AbstractList; +import java.util.Iterator; + +public class SingleLinkedList extends java.util.AbstractList +{ + protected SingleLinkedList() {} + public SingleLinkedList(T p0, SingleLinkedList p1){} + public SingleLinkedList grow(T p0){ return null; } + public T get(int p0){ return null; } + public boolean isEmpty(){ return false; } + public final SingleLinkedList tail = null; + public final T head = null; + public int size(){ return 0; } + public java.util.Iterator iterator(){ return null; } + public static SingleLinkedList empty(){ return null; } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Stapler.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Stapler.java new file mode 100644 index 00000000000..0a6786ec0e7 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/Stapler.java @@ -0,0 +1,41 @@ +// Generated automatically from org.kohsuke.stapler.Stapler for testing purposes + +package org.kohsuke.stapler; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletContextEvent; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.commons.beanutils.ConvertUtilsBean; +import org.apache.commons.beanutils.Converter; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.WebApp; + +public class Stapler extends HttpServlet +{ + protected void service(HttpServletRequest p0, HttpServletResponse p1){} + public ClassLoader getClassLoader(){ return null; } + public Stapler(){} + public WebApp getWebApp(){ return null; } + public static ClassLoader getClassLoader(ServletContext p0){ return null; } + public static ConvertUtilsBean CONVERT_UTILS = null; + public static Converter lookupConverter(Class p0){ return null; } + public static Object htmlSafeArgument(Object p0){ return null; } + public static Object[] htmlSafeArguments(Object[] p0){ return null; } + public static Stapler getCurrent(){ return null; } + public static StaplerRequest getCurrentRequest(){ return null; } + public static StaplerResponse getCurrentResponse(){ return null; } + public static String escape(String p0){ return null; } + public static String getViewURL(Class p0, String p1){ return null; } + public static boolean isSocketException(Throwable p0){ return false; } + public static void setClassLoader(ServletContext p0, ClassLoader p1){} + public static void setRoot(ServletContextEvent p0, Object p1){} + public void buildResourcePaths(){} + public void forward(RequestDispatcher p0, StaplerRequest p1, HttpServletResponse p2){} + public void init(ServletConfig p0){} + public void invoke(HttpServletRequest p0, HttpServletResponse p1, Object p2, String p3){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerFallback.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerFallback.java new file mode 100644 index 00000000000..9413eee69cf --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerFallback.java @@ -0,0 +1,9 @@ +// Generated automatically from org.kohsuke.stapler.StaplerFallback for testing purposes + +package org.kohsuke.stapler; + + +public interface StaplerFallback +{ + Object getStaplerFallback(); +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerRequest.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerRequest.java new file mode 100644 index 00000000000..10942452230 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerRequest.java @@ -0,0 +1,64 @@ +// Generated automatically from org.kohsuke.stapler.StaplerRequest for testing purposes + +package org.kohsuke.stapler; + +import java.lang.reflect.Type; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import net.sf.json.JSONObject; +import org.apache.commons.fileupload.FileItem; +import org.kohsuke.stapler.Ancestor; +import org.kohsuke.stapler.BindInterceptor; +import org.kohsuke.stapler.Stapler; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.WebApp; +import org.kohsuke.stapler.bind.BoundObjectTable; +import org.kohsuke.stapler.lang.Klass; + +public interface StaplerRequest extends HttpServletRequest +{ + T bindJSON(Type p0, java.lang.Class p1, Object p2); + T bindJSON(java.lang.Class p0, JSONObject p1); + T bindParameters(java.lang.Class p0, String p1); + T bindParameters(java.lang.Class p0, String p1, int p2); + T findAncestorObject(java.lang.Class p0); + java.util.List bindJSONToList(java.lang.Class p0, Object p1); + java.util.List bindParametersToList(java.lang.Class p0, String p1); + Ancestor findAncestor(Class p0); + Ancestor findAncestor(Object p0); + BindInterceptor getBindInterceptor(); + BindInterceptor setBindInterceptor(BindInterceptor p0); + BindInterceptor setBindInterceptpr(BindInterceptor p0); + BindInterceptor setBindListener(BindInterceptor p0); + BoundObjectTable getBoundObjectTable(); + FileItem getFileItem(String p0); + JSONObject getSubmittedForm(); + List getAncestors(); + RequestDispatcher getView(Class p0, String p1); + RequestDispatcher getView(Klass p0, String p1); + RequestDispatcher getView(Object p0, String p1); + ServletContext getServletContext(); + Stapler getStapler(); + String createJavaScriptProxy(Object p0); + String getOriginalRequestURI(); + String getOriginalRestOfPath(); + String getReferer(); + String getRequestURIWithQueryString(); + String getRestOfPath(); + String getRootPath(); + StringBuffer getRequestURLWithQueryString(); + WebApp getWebApp(); + boolean checkIfModified(Calendar p0, StaplerResponse p1); + boolean checkIfModified(Date p0, StaplerResponse p1); + boolean checkIfModified(long p0, StaplerResponse p1); + boolean checkIfModified(long p0, StaplerResponse p1, long p2); + boolean hasParameter(String p0); + boolean isJavaScriptProxyCall(); + void bindJSON(Object p0, JSONObject p1); + void bindParameters(Object p0); + void bindParameters(Object p0, String p1); +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerResponse.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerResponse.java new file mode 100644 index 00000000000..26e530b3b32 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerResponse.java @@ -0,0 +1,37 @@ +// Generated automatically from org.kohsuke.stapler.StaplerResponse for testing purposes + +package org.kohsuke.stapler; + +import java.io.InputStream; +import java.io.OutputStream; +import java.io.Writer; +import java.net.URL; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import net.sf.json.JsonConfig; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.export.ExportConfig; +import org.kohsuke.stapler.export.Flavor; + +public interface StaplerResponse extends HttpServletResponse +{ + JsonConfig getJsonConfig(); + OutputStream getCompressedOutputStream(HttpServletRequest p0); + Writer getCompressedWriter(HttpServletRequest p0); + default void serveExposedBean(StaplerRequest p0, Object p1, ExportConfig p2){} + int reverseProxyTo(URL p0, StaplerRequest p1); + void forward(Object p0, String p1, StaplerRequest p2); + void forwardToPreviousPage(StaplerRequest p0); + void sendRedirect(int p0, String p1); + void sendRedirect2(String p0); + void serveExposedBean(StaplerRequest p0, Object p1, Flavor p2); + void serveFile(StaplerRequest p0, InputStream p1, long p2, int p3, String p4); + void serveFile(StaplerRequest p0, InputStream p1, long p2, long p3, String p4); + void serveFile(StaplerRequest p0, InputStream p1, long p2, long p3, int p4, String p5); + void serveFile(StaplerRequest p0, InputStream p1, long p2, long p3, long p4, String p5); + void serveFile(StaplerRequest p0, URL p1); + void serveFile(StaplerRequest p0, URL p1, long p2); + void serveLocalizedFile(StaplerRequest p0, URL p1); + void serveLocalizedFile(StaplerRequest p0, URL p1, long p2); + void setJsonConfig(JsonConfig p0); +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/TearOffSupport.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/TearOffSupport.java new file mode 100644 index 00000000000..54a6aa9292b --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/TearOffSupport.java @@ -0,0 +1,12 @@ +// Generated automatically from org.kohsuke.stapler.TearOffSupport for testing purposes + +package org.kohsuke.stapler; + + +abstract public class TearOffSupport +{ + public void setTearOff(java.lang.Class p0, T p1){} + public TearOffSupport(){} + public final T getTearOff(java.lang.Class p0){ return null; } + public final T loadTearOff(java.lang.Class p0){ return null; } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/TokenList.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/TokenList.java new file mode 100644 index 00000000000..2a66efbcfc7 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/TokenList.java @@ -0,0 +1,26 @@ +// Generated automatically from org.kohsuke.stapler.TokenList for testing purposes + +package org.kohsuke.stapler; + + +public class TokenList +{ + protected TokenList() {} + public String assembleOriginalRestOfPath(){ return null; } + public String assembleRestOfPath(){ return null; } + public String get(int p0){ return null; } + public String next(){ return null; } + public String peek(){ return null; } + public String prev(){ return null; } + public String toString(){ return null; } + public boolean hasMore(){ return false; } + public final String[] rawTokens = null; + public final String[] tokens = null; + public final boolean endsWithSlash = false; + public int countRemainingTokens(){ return 0; } + public int idx = 0; + public int length(){ return 0; } + public int nextAsInt(){ return 0; } + public long nextAsLong(){ return 0; } + public static String decode(String p0){ return null; } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/WebApp.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/WebApp.java new file mode 100644 index 00000000000..2a021f5da08 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/WebApp.java @@ -0,0 +1,76 @@ +// Generated automatically from org.kohsuke.stapler.WebApp for testing purposes + +package org.kohsuke.stapler; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.CopyOnWriteArrayList; +import javax.servlet.ServletContext; +import org.kohsuke.stapler.AbstractTearOff; +import org.kohsuke.stapler.BindInterceptor; +import org.kohsuke.stapler.CrumbIssuer; +import org.kohsuke.stapler.DispatchValidator; +import org.kohsuke.stapler.DispatchersFilter; +import org.kohsuke.stapler.Facet; +import org.kohsuke.stapler.FunctionList; +import org.kohsuke.stapler.HttpResponseRenderer; +import org.kohsuke.stapler.JsonInErrorMessageSanitizer; +import org.kohsuke.stapler.MetaClass; +import org.kohsuke.stapler.Stapler; +import org.kohsuke.stapler.bind.BoundObjectTable; +import org.kohsuke.stapler.event.FilteredDispatchTriggerListener; +import org.kohsuke.stapler.event.FilteredDoActionTriggerListener; +import org.kohsuke.stapler.event.FilteredFieldTriggerListener; +import org.kohsuke.stapler.event.FilteredGetterTriggerListener; +import org.kohsuke.stapler.lang.FieldRef; +import org.kohsuke.stapler.lang.Klass; + +public class WebApp +{ + protected WebApp() {} + public T getFacet(java.lang.Class p0){ return null; } + public ClassLoader getClassLoader(){ return null; } + public CopyOnWriteArrayList getResponseRenderers(){ return null; } + public CrumbIssuer getCrumbIssuer(){ return null; } + public DispatchValidator getDispatchValidator(){ return null; } + public DispatchersFilter getDispatchersFilter(){ return null; } + public FieldRef.Filter getFilterForFields(){ return null; } + public FilteredDispatchTriggerListener getFilteredDispatchTriggerListener(){ return null; } + public FilteredDoActionTriggerListener getFilteredDoActionTriggerListener(){ return null; } + public FilteredFieldTriggerListener getFilteredFieldTriggerListener(){ return null; } + public FilteredGetterTriggerListener getFilteredGetterTriggerListener(){ return null; } + public FunctionList.Filter getFilterForDoActions(){ return null; } + public FunctionList.Filter getFilterForGetMethods(){ return null; } + public JsonInErrorMessageSanitizer getJsonInErrorMessageSanitizer(){ return null; } + public Klass getKlass(Object p0){ return null; } + public MetaClass getMetaClass(Class p0){ return null; } + public MetaClass getMetaClass(Klass p0){ return null; } + public MetaClass getMetaClass(Object p0){ return null; } + public Object getApp(){ return null; } + public Stapler getSomeStapler(){ return null; } + public WebApp(ServletContext p0){} + public final BoundObjectTable boundObjectTable = null; + public final List bindInterceptors = null; + public final List facets = null; + public final Map wrappers = null; + public final Map defaultEncodingForStaticResources = null; + public final Map mimeTypes = null; + public final ServletContext context = null; + public static WebApp get(ServletContext p0){ return null; } + public static WebApp getCurrent(){ return null; } + public void clearMetaClassCache(){} + public void clearScripts(Class p0){} + public void setApp(Object p0){} + public void setClassLoader(ClassLoader p0){} + public void setCrumbIssuer(CrumbIssuer p0){} + public void setDispatchValidator(DispatchValidator p0){} + public void setDispatchersFilter(DispatchersFilter p0){} + public void setFilterForDoActions(FunctionList.Filter p0){} + public void setFilterForFields(FieldRef.Filter p0){} + public void setFilterForGetMethods(FunctionList.Filter p0){} + public void setFilteredDispatchTriggerListener(FilteredDispatchTriggerListener p0){} + public void setFilteredDoActionTriggerListener(FilteredDoActionTriggerListener p0){} + public void setFilteredFieldTriggerListener(FilteredFieldTriggerListener p0){} + public void setFilteredGetterTriggerListener(FilteredGetterTriggerListener p0){} + public void setJsonInErrorMessageSanitizer(JsonInErrorMessageSanitizer p0){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/bind/Bound.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/bind/Bound.java new file mode 100644 index 00000000000..0cfa5accb92 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/bind/Bound.java @@ -0,0 +1,14 @@ +// Generated automatically from org.kohsuke.stapler.bind.Bound for testing purposes + +package org.kohsuke.stapler.bind; + +import org.kohsuke.stapler.HttpResponse; + +abstract public class Bound implements HttpResponse +{ + public Bound(){} + public abstract Object getTarget(); + public abstract String getURL(); + public abstract void release(); + public final String getProxyScript(){ return null; } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/bind/BoundObjectTable.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/bind/BoundObjectTable.java new file mode 100644 index 00000000000..b2cedbc2c60 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/bind/BoundObjectTable.java @@ -0,0 +1,25 @@ +// Generated automatically from org.kohsuke.stapler.bind.BoundObjectTable for testing purposes + +package org.kohsuke.stapler.bind; + +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.StaplerFallback; +import org.kohsuke.stapler.bind.Bound; + +public class BoundObjectTable implements StaplerFallback +{ + public Bound bind(Object p0){ return null; } + public Bound bindWeak(Object p0){ return null; } + public BoundObjectTable(){} + public BoundObjectTable.Table getStaplerFallback(){ return null; } + public BoundObjectTable.Table getTable(){ return null; } + public static String PREFIX = null; + public static boolean DEBUG_LOGGING = false; + public void releaseMe(){} + static public class Table + { + public HttpResponse doEnableLogging(){ return null; } + public Object getDynamic(String p0){ return null; } + public Table(){} + } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredDispatchTriggerListener.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredDispatchTriggerListener.java new file mode 100644 index 00000000000..9d4ff0b82ce --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredDispatchTriggerListener.java @@ -0,0 +1,12 @@ +// Generated automatically from org.kohsuke.stapler.event.FilteredDispatchTriggerListener for testing purposes + +package org.kohsuke.stapler.event; + +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +public interface FilteredDispatchTriggerListener +{ + boolean onDispatchTrigger(StaplerRequest p0, StaplerResponse p1, Object p2, String p3); + static FilteredDispatchTriggerListener JUST_WARN = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredDoActionTriggerListener.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredDoActionTriggerListener.java new file mode 100644 index 00000000000..6e383450d2f --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredDoActionTriggerListener.java @@ -0,0 +1,13 @@ +// Generated automatically from org.kohsuke.stapler.event.FilteredDoActionTriggerListener for testing purposes + +package org.kohsuke.stapler.event; + +import org.kohsuke.stapler.Function; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +public interface FilteredDoActionTriggerListener +{ + boolean onDoActionTrigger(Function p0, StaplerRequest p1, StaplerResponse p2, Object p3); + static FilteredDoActionTriggerListener JUST_WARN = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredFieldTriggerListener.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredFieldTriggerListener.java new file mode 100644 index 00000000000..59c836f6cc2 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredFieldTriggerListener.java @@ -0,0 +1,13 @@ +// Generated automatically from org.kohsuke.stapler.event.FilteredFieldTriggerListener for testing purposes + +package org.kohsuke.stapler.event; + +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.lang.FieldRef; + +public interface FilteredFieldTriggerListener +{ + boolean onFieldTrigger(FieldRef p0, StaplerRequest p1, StaplerResponse p2, Object p3, String p4); + static FilteredFieldTriggerListener JUST_WARN = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredGetterTriggerListener.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredGetterTriggerListener.java new file mode 100644 index 00000000000..5f6830aaf60 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/event/FilteredGetterTriggerListener.java @@ -0,0 +1,13 @@ +// Generated automatically from org.kohsuke.stapler.event.FilteredGetterTriggerListener for testing purposes + +package org.kohsuke.stapler.event; + +import org.kohsuke.stapler.Function; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +public interface FilteredGetterTriggerListener +{ + boolean onGetterTrigger(Function p0, StaplerRequest p1, StaplerResponse p2, Object p3, String p4); + static FilteredGetterTriggerListener JUST_WARN = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ClassAttributeBehaviour.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ClassAttributeBehaviour.java new file mode 100644 index 00000000000..be81fe91239 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ClassAttributeBehaviour.java @@ -0,0 +1,15 @@ +// Generated automatically from org.kohsuke.stapler.export.ClassAttributeBehaviour for testing purposes + +package org.kohsuke.stapler.export; + + +abstract public class ClassAttributeBehaviour +{ + protected ClassAttributeBehaviour() {} + protected String print(Class p0){ return null; } + public ClassAttributeBehaviour simple(){ return null; } + public String toString(){ return null; } + public static ClassAttributeBehaviour ALWAYS = null; + public static ClassAttributeBehaviour IF_NEEDED = null; + public static ClassAttributeBehaviour NONE = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/DataWriter.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/DataWriter.java new file mode 100644 index 00000000000..2d64ea1bb31 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/DataWriter.java @@ -0,0 +1,21 @@ +// Generated automatically from org.kohsuke.stapler.export.DataWriter for testing purposes + +package org.kohsuke.stapler.export; + +import java.lang.reflect.Type; +import org.kohsuke.stapler.export.ExportConfig; + +public interface DataWriter +{ + default ExportConfig getExportConfig(){ return null; } + default void type(Type p0, Class p1){} + static String CLASS_PROPERTY_NAME = null; + void endArray(); + void endObject(); + void name(String p0); + void startArray(); + void startObject(); + void value(String p0); + void valueNull(); + void valuePrimitive(Object p0); +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ExportConfig.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ExportConfig.java new file mode 100644 index 00000000000..701b8b9f040 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ExportConfig.java @@ -0,0 +1,23 @@ +// Generated automatically from org.kohsuke.stapler.export.ExportConfig for testing purposes + +package org.kohsuke.stapler.export; + +import org.kohsuke.stapler.export.ClassAttributeBehaviour; +import org.kohsuke.stapler.export.ExportInterceptor; +import org.kohsuke.stapler.export.Flavor; + +public class ExportConfig +{ + public ClassAttributeBehaviour getClassAttribute(){ return null; } + public ExportConfig withClassAttribute(ClassAttributeBehaviour p0){ return null; } + public ExportConfig withExportInterceptor(ExportInterceptor p0){ return null; } + public ExportConfig withFlavor(Flavor p0){ return null; } + public ExportConfig withPrettyPrint(boolean p0){ return null; } + public ExportConfig withSkipIfFail(boolean p0){ return null; } + public ExportConfig(){} + public ExportInterceptor getExportInterceptor(){ return null; } + public Flavor getFlavor(){ return null; } + public boolean isPrettyPrint(){ return false; } + public boolean isSkipIfFail(){ return false; } + public boolean prettyPrint = false; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ExportInterceptor.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ExportInterceptor.java new file mode 100644 index 00000000000..450ee6d70ce --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/ExportInterceptor.java @@ -0,0 +1,16 @@ +// Generated automatically from org.kohsuke.stapler.export.ExportInterceptor for testing purposes + +package org.kohsuke.stapler.export; + +import java.util.logging.Logger; +import org.kohsuke.stapler.export.ExportConfig; +import org.kohsuke.stapler.export.Property; + +abstract public class ExportInterceptor +{ + public ExportInterceptor(){} + public abstract Object getValue(Property p0, Object p1, ExportConfig p2); + public static ExportInterceptor DEFAULT = null; + public static Logger LOGGER = null; + public static Object SKIP = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Flavor.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Flavor.java new file mode 100644 index 00000000000..8d5a15c6e83 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Flavor.java @@ -0,0 +1,28 @@ +// Generated automatically from org.kohsuke.stapler.export.Flavor for testing purposes + +package org.kohsuke.stapler.export; + +import java.io.Writer; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.export.DataWriter; +import org.kohsuke.stapler.export.ExportConfig; + +public enum Flavor { + JSON, JSONP, PYTHON, RUBY, XML; + + private Flavor() {} + + public DataWriter createDataWriter(Object p0, StaplerResponse p1) { + return null; + } + + public DataWriter createDataWriter(Object p0, Writer p1) { + return null; + } + + public DataWriter createDataWriter(Object p0, Writer p1, ExportConfig p2) { + return null; + } + + public final String contentType = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Model.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Model.java new file mode 100644 index 00000000000..0fb1daca5a7 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Model.java @@ -0,0 +1,19 @@ +// Generated automatically from org.kohsuke.stapler.export.Model for testing purposes + +package org.kohsuke.stapler.export; + +import java.util.List; +import org.kohsuke.stapler.export.DataWriter; +import org.kohsuke.stapler.export.Property; +import org.kohsuke.stapler.export.TreePruner; + +public class Model +{ + protected Model() {} + public List getProperties(){ return null; } + public final Model superModel = null; + public final java.lang.Class type = null; + public void writeTo(T p0, DataWriter p1){} + public void writeTo(T p0, TreePruner p1, DataWriter p2){} + public void writeTo(T p0, int p1, DataWriter p2){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Property.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Property.java new file mode 100644 index 00000000000..cfd7576a3de --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Property.java @@ -0,0 +1,25 @@ +// Generated automatically from org.kohsuke.stapler.export.Property for testing purposes + +package org.kohsuke.stapler.export; + +import java.lang.reflect.Type; +import org.kohsuke.stapler.export.DataWriter; +import org.kohsuke.stapler.export.Model; +import org.kohsuke.stapler.export.TreePruner; + +abstract public class Property implements Comparable +{ + protected Property() {} + public abstract Class getType(); + public abstract Object getValue(Object p0); + public abstract String getJavadoc(); + public abstract Type getGenericType(); + public final Model parent = null; + public final String name = null; + public final boolean inline = false; + public final boolean merge = false; + public final int visibility = 0; + public int compareTo(Property p0){ return 0; } + public void writeTo(Object p0, TreePruner p1, DataWriter p2){} + public void writeTo(Object p0, int p1, DataWriter p2){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Range.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Range.java new file mode 100644 index 00000000000..fa4dae05cb0 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/Range.java @@ -0,0 +1,19 @@ +// Generated automatically from org.kohsuke.stapler.export.Range for testing purposes + +package org.kohsuke.stapler.export; + +import java.util.Collection; +import java.util.List; + +public class Range +{ + protected Range() {} + public java.lang.Iterable apply(java.lang.Iterable p0){ return null; } + public java.lang.Iterable apply(java.util.Collection p0){ return null; } + public java.util.List apply(T[] p0){ return null; } + public java.util.List apply(java.util.List p0){ return null; } + public Range(int p0, int p1){} + public final int max = 0; + public final int min = 0; + public static Range ALL = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/TreePruner.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/TreePruner.java new file mode 100644 index 00000000000..5ab95e10b5a --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/export/TreePruner.java @@ -0,0 +1,14 @@ +// Generated automatically from org.kohsuke.stapler.export.TreePruner for testing purposes + +package org.kohsuke.stapler.export; + +import org.kohsuke.stapler.export.Property; +import org.kohsuke.stapler.export.Range; + +abstract public class TreePruner +{ + public Range getRange(){ return null; } + public TreePruner(){} + public abstract TreePruner accept(Object p0, Property p1); + public static TreePruner DEFAULT = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/adjunct/Adjunct.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/adjunct/Adjunct.java new file mode 100644 index 00000000000..cea6ffe145c --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/adjunct/Adjunct.java @@ -0,0 +1,27 @@ +// Generated automatically from org.kohsuke.stapler.framework.adjunct.Adjunct for testing purposes + +package org.kohsuke.stapler.framework.adjunct; + +import java.util.List; +import org.apache.commons.jelly.XMLOutput; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.framework.adjunct.AdjunctManager; + +public class Adjunct +{ + protected Adjunct() {} + public Adjunct(AdjunctManager p0, String p1, ClassLoader p2){} + public String getPackageUrl(){ return null; } + public boolean has(Adjunct.Kind p0){ return false; } + public final AdjunctManager manager = null; + public final List required = null; + public final String name = null; + public final String packageName = null; + public final String slashedName = null; + public void write(StaplerRequest p0, XMLOutput p1){} + static public enum Kind + { + CSS, JS; + private Kind() {} + } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/adjunct/AdjunctManager.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/adjunct/AdjunctManager.java new file mode 100644 index 00000000000..59d6ca3211f --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/adjunct/AdjunctManager.java @@ -0,0 +1,23 @@ +// Generated automatically from org.kohsuke.stapler.framework.adjunct.AdjunctManager for testing purposes + +package org.kohsuke.stapler.framework.adjunct; + +import javax.servlet.ServletContext; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.WebApp; +import org.kohsuke.stapler.framework.adjunct.Adjunct; + +public class AdjunctManager +{ + protected AdjunctManager() {} + protected boolean allowResourceToBeServed(String p0){ return false; } + public Adjunct get(String p0){ return null; } + public AdjunctManager(ServletContext p0, ClassLoader p1, String p2){} + public AdjunctManager(ServletContext p0, ClassLoader p1, String p2, long p3){} + public boolean debug = false; + public final String rootURL = null; + public final WebApp webApp = null; + public static AdjunctManager get(ServletContext p0){ return null; } + public void doDynamic(StaplerRequest p0, StaplerResponse p1){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/AnnotatedRef.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/AnnotatedRef.java new file mode 100644 index 00000000000..9573d7f9bb5 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/AnnotatedRef.java @@ -0,0 +1,11 @@ +// Generated automatically from org.kohsuke.stapler.lang.AnnotatedRef for testing purposes + +package org.kohsuke.stapler.lang; + +import java.lang.annotation.Annotation; + +abstract public class AnnotatedRef +{ + public abstract T getAnnotation(java.lang.Class p0); + public boolean hasAnnotation(Class p0){ return false; } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/FieldRef.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/FieldRef.java new file mode 100644 index 00000000000..259768d1763 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/FieldRef.java @@ -0,0 +1,24 @@ +// Generated automatically from org.kohsuke.stapler.lang.FieldRef for testing purposes + +package org.kohsuke.stapler.lang; + +import java.lang.reflect.Field; +import org.kohsuke.stapler.lang.AnnotatedRef; + +abstract public class FieldRef extends AnnotatedRef +{ + public FieldRef(){} + public abstract Class getReturnType(); + public abstract Object get(Object p0); + public abstract String getName(); + public abstract String getQualifiedName(); + public abstract String getSignature(); + public abstract boolean isStatic(); + public boolean isRoutable(){ return false; } + public static FieldRef wrap(Field p0){ return null; } + static public interface Filter + { + boolean keep(FieldRef p0); + static FieldRef.Filter ALWAYS_OK = null; + } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/Klass.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/Klass.java new file mode 100644 index 00000000000..646b863d573 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/Klass.java @@ -0,0 +1,34 @@ +// Generated automatically from org.kohsuke.stapler.lang.Klass for testing purposes + +package org.kohsuke.stapler.lang; + +import java.net.URL; +import java.util.List; +import org.kohsuke.stapler.Function; +import org.kohsuke.stapler.lang.FieldRef; +import org.kohsuke.stapler.lang.KlassNavigator; +import org.kohsuke.stapler.lang.MethodRef; + +public class Klass +{ + protected Klass() {} + public Class toJavaClass(){ return null; } + public Iterable> getAncestors(){ return null; } + public Klass(C p0, KlassNavigator p1){} + public Klass getSuperClass(){ return null; } + public List getDeclaredFields(){ return null; } + public List getFields(){ return null; } + public List getFunctions(){ return null; } + public List getDeclaredMethods(){ return null; } + public Object getArrayElement(Object p0, int p1){ return null; } + public Object getMapElement(Object p0, String p1){ return null; } + public String toString(){ return null; } + public URL getResource(String p0){ return null; } + public boolean equals(Object p0){ return false; } + public boolean isArray(){ return false; } + public boolean isMap(){ return false; } + public final C clazz = null; + public final KlassNavigator navigator = null; + public int hashCode(){ return 0; } + public static Klass java(Class p0){ return null; } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/KlassNavigator.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/KlassNavigator.java new file mode 100644 index 00000000000..3cc5bbe927d --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/KlassNavigator.java @@ -0,0 +1,27 @@ +// Generated automatically from org.kohsuke.stapler.lang.KlassNavigator for testing purposes + +package org.kohsuke.stapler.lang; + +import java.net.URL; +import java.util.List; +import org.kohsuke.stapler.Function; +import org.kohsuke.stapler.lang.FieldRef; +import org.kohsuke.stapler.lang.Klass; +import org.kohsuke.stapler.lang.MethodRef; + +abstract public class KlassNavigator +{ + public KlassNavigator(){} + public List getDeclaredFields(C p0){ return null; } + public List getFunctions(C p0){ return null; } + public Object getArrayElement(Object p0, int p1){ return null; } + public Object getMapElement(Object p0, String p1){ return null; } + public abstract Class toJavaClass(C p0); + public abstract Iterable> getAncestors(C p0); + public abstract Klass getSuperClass(C p0); + public abstract List getDeclaredMethods(C p0); + public abstract URL getResource(C p0, String p1); + public boolean isArray(C p0){ return false; } + public boolean isMap(C p0){ return false; } + public static KlassNavigator JAVA = null; +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/MethodRef.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/MethodRef.java new file mode 100644 index 00000000000..dbb19d878ff --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/lang/MethodRef.java @@ -0,0 +1,15 @@ +// Generated automatically from org.kohsuke.stapler.lang.MethodRef for testing purposes + +package org.kohsuke.stapler.lang; + +import java.lang.reflect.Method; +import org.kohsuke.stapler.lang.AnnotatedRef; + +abstract public class MethodRef extends AnnotatedRef +{ + public MethodRef(){} + public String getName(){ return null; } + public abstract Object invoke(Object p0, Object... p1); + public boolean isRoutable(){ return false; } + public static MethodRef wrap(Method p0){ return null; } +} From e0c852c0b8058c43230465f84ebcf5822b140062 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Wed, 15 Mar 2023 11:33:02 +0100 Subject: [PATCH 18/22] Fix stubs and test expectations --- .../CWE-311/CWE-319/HttpsUrls.expected | 5 + .../org/dom4j/xpath/DefaultXPath.java | 174 +++++++++--------- 2 files changed, 89 insertions(+), 90 deletions(-) diff --git a/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.expected b/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.expected index 09ebc2d8b48..6c184d0516f 100644 --- a/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.expected +++ b/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.expected @@ -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 | diff --git a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/xpath/DefaultXPath.java b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/xpath/DefaultXPath.java index fc7e32ed616..e4acaaf4b0e 100644 --- a/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/xpath/DefaultXPath.java +++ b/java/ql/test/stubs/dom4j-2.1.1/org/dom4j/xpath/DefaultXPath.java @@ -1,15 +1,14 @@ /* * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. * - * This software is open source. - * See the bottom of this file for the licence. + * This software is open source. See the bottom of this file for the licence. */ /* -* Adapted from DOM4J version 2.1.1 as available at -* https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar -* Only relevant stubs of this file have been retained for test purposes. -*/ + * Adapted from DOM4J version 2.1.1 as available at + * https://search.maven.org/remotecontent?filepath=org/dom4j/dom4j/2.1.1/dom4j-2.1.1-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package org.dom4j.xpath; @@ -19,117 +18,112 @@ import java.util.Map; import org.dom4j.InvalidXPathException; import org.dom4j.Node; import org.dom4j.XPath; +import org.jaxen.FunctionContext; +import org.jaxen.NamespaceContext; +import org.jaxen.VariableContext; public class DefaultXPath implements org.dom4j.XPath, Serializable { - public DefaultXPath(String text) throws InvalidXPathException { + public DefaultXPath(String text) throws InvalidXPathException {} + + public FunctionContext getFunctionContext() { + return null; + } + + public List selectNodes(Object p0) { + return null; + } + + public List selectNodes(Object p0, XPath p1) { + return null; + } + + public List selectNodes(Object p0, XPath p1, boolean p2) { + return null; + } + + public NamespaceContext getNamespaceContext() { + return null; + } + + public Node selectSingleNode(Object p0) { + return null; + } + + public Number numberValueOf(Object p0) { + return null; + } + + public Object evaluate(Object p0) { + return null; + } + + public Object selectObject(Object p0) { + return null; } - @Override public String getText() { return null; } - @Override - public boolean matches(Node node) { + public String valueOf(Object p0) { + return null; + } + + public VariableContext getVariableContext() { + return null; + } + + public boolean booleanValueOf(Object p0) { return false; } - @Override - public Object evaluate(Object context) { - return null; - } - - @Override - public Object selectObject(Object context) { - return null; - } - - @Override - public List selectNodes(Object context) { - return null; - } - - @Override - public List selectNodes(Object context, XPath sortXPath) { - return null; - } - - @Override - public List selectNodes(Object context, XPath sortXPath, boolean distinct) { - return null; - } - - @Override - public Node selectSingleNode(Object context) { - return null; - } - - @Override - public String valueOf(Object context) { - return null; - } - - @Override - public Number numberValueOf(Object context) { - return null; - } - - @Override - public boolean booleanValueOf(Object context) { + public boolean matches(Node p0) { return false; } - @Override - public void sort(List list) { - } + public void setFunctionContext(FunctionContext p0) {} - @Override - public void sort(List list, boolean distinct) { - } + public void setNamespaceContext(NamespaceContext p0) {} - @Override - public void setNamespaceURIs(Map map) { - } + public void setNamespaceURIs(Map p0) {} - @Override - public void setVariableContext(org.jaxen.VariableContext variableContext) { - } + public void setVariableContext(VariableContext p0) {} + + public void sort(List p0) {} + + public void sort(List p0, boolean p1) {} } /* - * Redistribution and use of this software and associated documentation - * ("Software"), with or without modification, are permitted provided that the - * following conditions are met: + * Redistribution and use of this software and associated documentation ("Software"), with or + * without modification, are permitted provided that the following conditions are met: * - * 1. Redistributions of source code must retain copyright statements and - * notices. Redistributions must also contain a copy of this document. + * 1. Redistributions of source code must retain copyright statements and notices. Redistributions + * must also contain a copy of this document. * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other materials provided with + * the distribution. * - * 3. The name "DOM4J" must not be used to endorse or promote products derived - * from this Software without prior written permission of MetaStuff, Ltd. For - * written permission, please contact dom4j-info@metastuff.com. + * 3. The name "DOM4J" must not be used to endorse or promote products derived from this Software + * without prior written permission of MetaStuff, Ltd. For written permission, please contact + * dom4j-info@metastuff.com. * - * 4. Products derived from this Software may not be called "DOM4J" nor may - * "DOM4J" appear in their names without prior written permission of MetaStuff, - * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. + * 4. Products derived from this Software may not be called "DOM4J" nor may "DOM4J" appear in their + * names without prior written permission of MetaStuff, Ltd. DOM4J is a registered trademark of + * MetaStuff, Ltd. * * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org * - * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. - */ \ No newline at end of file + */ From 341590f9ad60192cc170c66dd3b535d8ee51e5e8 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Wed, 15 Mar 2023 11:43:52 +0100 Subject: [PATCH 19/22] org.kohsuke.stapler.framework.io tests --- .../CWE-022/semmle/tests/TaintedPath.expected | 467 +++++++++--------- .../CWE-022/semmle/tests/mad/Test.java | 3 + .../security/CWE-022/semmle/tests/options | 2 +- .../stapler/framework/io/ByteBuffer.java | 17 + .../stapler/framework/io/LargeText.java | 33 ++ 5 files changed, 290 insertions(+), 232 deletions(-) create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/io/ByteBuffer.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/io/LargeText.java diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected index 55b473ab2ed..a41e47a1115 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected @@ -14,104 +14,106 @@ 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:26:16:26:36 | getHostName(...) : String | mad/Test.java:31:61:31:68 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:33:41:33:48 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:35:56:35:63 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:37:46:37:53 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:39:38:39:45 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:41:36:41:43 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:43:31:43:38 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:45:33:45:40 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:47:27:47:34 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:48:27:48:34 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:49:34:49:41 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:51:40:51:47 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:52:48:52:55 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:53:47:53:54 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:55:40:55:47 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:57:38:57:45 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:59:33:59:40 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:61:33:61:40 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:63:41:63:48 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:65:42:65:49 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:67:37:67:44 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:69:29:69:36 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:71:37:71:44 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:73:28:73:35 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:75:33:75:40 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:77:40:77:47 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:79:40:79:47 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:80:40:80:47 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:82:38:82:45 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:84:28:84:35 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:85:28:85:35 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:86:28:86:35 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:88:34:88:41 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:89:34:89:41 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:91:33:91:40 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:93:42:93:49 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:95:50:95:57 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:97:54:97:61 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:102:37:102:44 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:104:74:104:81 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:106:68:106:75 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:108:68:108:75 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:113:30:113:37 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:118:33:118:40 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:120:27:120:34 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:122:28:122:35 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:124:29:124:36 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:129:27:129:34 | source(...) : String | -| mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:131:26:131:33 | source(...) : String | -| mad/Test.java:31:61:31:68 | source(...) : String | mad/Test.java:31:52:31:68 | (...)... | -| mad/Test.java:33:41:33:48 | source(...) : String | mad/Test.java:33:32:33:48 | (...)... | -| mad/Test.java:35:56:35:63 | source(...) : String | mad/Test.java:35:47:35:63 | (...)... | -| mad/Test.java:37:46:37:53 | source(...) : String | mad/Test.java:37:39:37:53 | (...)... | -| mad/Test.java:39:38:39:45 | source(...) : String | mad/Test.java:39:31:39:45 | (...)... | -| mad/Test.java:41:36:41:43 | source(...) : String | mad/Test.java:41:29:41:43 | (...)... | -| mad/Test.java:43:31:43:38 | source(...) : String | mad/Test.java:43:24:43:38 | (...)... | -| mad/Test.java:45:33:45:40 | source(...) : String | mad/Test.java:45:24:45:40 | (...)... | -| mad/Test.java:47:27:47:34 | source(...) : String | mad/Test.java:47:20:47:34 | (...)... | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:32:61:32:68 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:34:41:34:48 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:36:56:36:63 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:38:46:38:53 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:40:38:40:45 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:42:36:42:43 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:44:31:44:38 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:46:33:46:40 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:48:27:48:34 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:49:27:49:34 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:50:34:50:41 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:52:40:52:47 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:53:48:53:55 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:54:47:54:54 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:56:40:56:47 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:58:38:58:45 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:60:33:60:40 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:62:33:62:40 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:64:41:64:48 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:66:42:66:49 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:68:37:68:44 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:70:29:70:36 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:72:37:72:44 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:74:28:74:35 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:76:33:76:40 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:78:40:78:47 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:80:40:80:47 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:81:40:81:47 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:83:38:83:45 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:85:28:85:35 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:86:28:86:35 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:87:28:87:35 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:89:34:89:41 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:90:34:90:41 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:92:33:92:40 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:94:42:94:49 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:96:50:96:57 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:98:54:98:61 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:103:37:103:44 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:105:74:105:81 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:107:68:107:75 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:109:68:109:75 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:111:30:111:37 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:116:30:116:37 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:121:33:121:40 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:123:27:123:34 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:125:28:125:35 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:127:29:127:36 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:132:27:132:34 | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:134:26:134:33 | source(...) : String | +| mad/Test.java:32:61:32:68 | source(...) : String | mad/Test.java:32:52:32:68 | (...)... | +| mad/Test.java:34:41:34:48 | source(...) : String | mad/Test.java:34:32:34:48 | (...)... | +| mad/Test.java:36:56:36:63 | source(...) : String | mad/Test.java:36:47:36:63 | (...)... | +| mad/Test.java:38:46:38:53 | source(...) : String | mad/Test.java:38:39:38:53 | (...)... | +| mad/Test.java:40:38:40:45 | source(...) : String | mad/Test.java:40:31:40:45 | (...)... | +| mad/Test.java:42:36:42:43 | source(...) : String | mad/Test.java:42:29:42:43 | (...)... | +| mad/Test.java:44:31:44:38 | source(...) : String | mad/Test.java:44:24:44:38 | (...)... | +| mad/Test.java:46:33:46:40 | source(...) : String | mad/Test.java:46:24:46:40 | (...)... | | mad/Test.java:48:27:48:34 | source(...) : String | mad/Test.java:48:20:48:34 | (...)... | -| mad/Test.java:49:34:49:41 | source(...) : String | mad/Test.java:49:20:49:41 | (...)... | -| mad/Test.java:51:40:51:47 | source(...) : String | mad/Test.java:51:33:51:47 | (...)... | -| mad/Test.java:52:48:52:55 | source(...) : String | mad/Test.java:52:33:52:55 | (...)... | -| mad/Test.java:53:47:53:54 | source(...) : String | mad/Test.java:53:40:53:54 | (...)... | -| mad/Test.java:55:40:55:47 | source(...) : String | mad/Test.java:55:33:55:47 | (...)... | -| mad/Test.java:57:38:57:45 | source(...) : String | mad/Test.java:57:31:57:45 | (...)... | -| mad/Test.java:59:33:59:40 | source(...) : String | mad/Test.java:59:26:59:40 | (...)... | -| mad/Test.java:61:33:61:40 | source(...) : String | mad/Test.java:61:26:61:40 | (...)... | -| mad/Test.java:63:41:63:48 | source(...) : String | mad/Test.java:63:34:63:48 | (...)... | -| mad/Test.java:65:42:65:49 | source(...) : String | mad/Test.java:65:35:65:49 | (...)... | -| mad/Test.java:67:37:67:44 | source(...) : String | mad/Test.java:67:30:67:44 | (...)... | -| mad/Test.java:69:29:69:36 | source(...) : String | mad/Test.java:69:22:69:36 | (...)... | -| mad/Test.java:71:37:71:44 | source(...) : String | mad/Test.java:71:30:71:44 | (...)... | -| mad/Test.java:73:28:73:35 | source(...) : String | mad/Test.java:73:21:73:35 | (...)... | -| mad/Test.java:75:33:75:40 | source(...) : String | mad/Test.java:75:26:75:40 | (...)... | -| mad/Test.java:77:40:77:47 | source(...) : String | mad/Test.java:77:33:77:47 | (...)... | -| mad/Test.java:79:40:79:47 | source(...) : String | mad/Test.java:79:33:79:47 | (...)... | +| mad/Test.java:49:27:49:34 | source(...) : String | mad/Test.java:49:20:49:34 | (...)... | +| mad/Test.java:50:34:50:41 | source(...) : String | mad/Test.java:50:20:50:41 | (...)... | +| mad/Test.java:52:40:52:47 | source(...) : String | mad/Test.java:52:33:52:47 | (...)... | +| mad/Test.java:53:48:53:55 | source(...) : String | mad/Test.java:53:33:53:55 | (...)... | +| mad/Test.java:54:47:54:54 | source(...) : String | mad/Test.java:54:40:54:54 | (...)... | +| mad/Test.java:56:40:56:47 | source(...) : String | mad/Test.java:56:33:56:47 | (...)... | +| mad/Test.java:58:38:58:45 | source(...) : String | mad/Test.java:58:31:58:45 | (...)... | +| mad/Test.java:60:33:60:40 | source(...) : String | mad/Test.java:60:26:60:40 | (...)... | +| mad/Test.java:62:33:62:40 | source(...) : String | mad/Test.java:62:26:62:40 | (...)... | +| mad/Test.java:64:41:64:48 | source(...) : String | mad/Test.java:64:34:64:48 | (...)... | +| mad/Test.java:66:42:66:49 | source(...) : String | mad/Test.java:66:35:66:49 | (...)... | +| mad/Test.java:68:37:68:44 | source(...) : String | mad/Test.java:68:30:68:44 | (...)... | +| mad/Test.java:70:29:70:36 | source(...) : String | mad/Test.java:70:22:70:36 | (...)... | +| mad/Test.java:72:37:72:44 | source(...) : String | mad/Test.java:72:30:72:44 | (...)... | +| mad/Test.java:74:28:74:35 | source(...) : String | mad/Test.java:74:21:74:35 | (...)... | +| mad/Test.java:76:33:76:40 | source(...) : String | mad/Test.java:76:26:76:40 | (...)... | +| mad/Test.java:78:40:78:47 | source(...) : String | mad/Test.java:78:33:78:47 | (...)... | | mad/Test.java:80:40:80:47 | source(...) : String | mad/Test.java:80:33:80:47 | (...)... | -| mad/Test.java:82:38:82:45 | source(...) : String | mad/Test.java:82:31:82:45 | (...)... | -| mad/Test.java:84:28:84:35 | source(...) : String | mad/Test.java:84:21:84:35 | (...)... | +| mad/Test.java:81:40:81:47 | source(...) : String | mad/Test.java:81:33:81:47 | (...)... | +| mad/Test.java:83:38:83:45 | source(...) : String | mad/Test.java:83:31:83:45 | (...)... | | mad/Test.java:85:28:85:35 | source(...) : String | mad/Test.java:85:21:85:35 | (...)... | | mad/Test.java:86:28:86:35 | source(...) : String | mad/Test.java:86:21:86:35 | (...)... | -| mad/Test.java:88:34:88:41 | source(...) : String | mad/Test.java:88:27:88:41 | (...)... | +| mad/Test.java:87:28:87:35 | source(...) : String | mad/Test.java:87:21:87:35 | (...)... | | mad/Test.java:89:34:89:41 | source(...) : String | mad/Test.java:89:27:89:41 | (...)... | -| mad/Test.java:91:33:91:40 | source(...) : String | mad/Test.java:91:26:91:40 | (...)... | -| mad/Test.java:93:42:93:49 | source(...) : String | mad/Test.java:93:35:93:49 | (...)... | -| mad/Test.java:95:50:95:57 | source(...) : String | mad/Test.java:95:41:95:57 | (...)... | -| mad/Test.java:97:54:97:61 | source(...) : String | mad/Test.java:97:45:97:61 | (...)... | -| mad/Test.java:102:37:102:44 | source(...) : String | mad/Test.java:102:30:102:44 | (...)... | -| mad/Test.java:104:74:104:81 | source(...) : String | mad/Test.java:104:40:104:81 | (...)... | -| mad/Test.java:106:68:106:75 | source(...) : String | mad/Test.java:106:34:106:75 | (...)... | -| mad/Test.java:108:68:108:75 | source(...) : String | mad/Test.java:108:34:108:75 | (...)... | -| mad/Test.java:113:30:113:37 | source(...) : String | mad/Test.java:113:23:113:37 | (...)... | -| mad/Test.java:118:33:118:40 | source(...) : String | mad/Test.java:118:23:118:40 | (...)... | -| mad/Test.java:120:27:120:34 | source(...) : String | mad/Test.java:120:20:120:34 | (...)... | -| mad/Test.java:122:28:122:35 | source(...) : String | mad/Test.java:122:21:122:35 | (...)... | -| mad/Test.java:124:29:124:36 | source(...) : String | mad/Test.java:124:22:124:36 | (...)... | -| mad/Test.java:129:27:129:34 | source(...) : String | mad/Test.java:129:20:129:34 | (...)... | -| mad/Test.java:131:26:131:33 | source(...) : String | mad/Test.java:131:19:131:33 | (...)... | +| mad/Test.java:90:34:90:41 | source(...) : String | mad/Test.java:90:27:90:41 | (...)... | +| mad/Test.java:92:33:92:40 | source(...) : String | mad/Test.java:92:26:92:40 | (...)... | +| mad/Test.java:94:42:94:49 | source(...) : String | mad/Test.java:94:35:94:49 | (...)... | +| mad/Test.java:96:50:96:57 | source(...) : String | mad/Test.java:96:41:96:57 | (...)... | +| mad/Test.java:98:54:98:61 | source(...) : String | mad/Test.java:98:45:98:61 | (...)... | +| mad/Test.java:103:37:103:44 | source(...) : String | mad/Test.java:103:30:103:44 | (...)... | +| mad/Test.java:105:74:105:81 | source(...) : String | mad/Test.java:105:40:105:81 | (...)... | +| mad/Test.java:107:68:107:75 | source(...) : String | mad/Test.java:107:34:107:75 | (...)... | +| mad/Test.java:109:68:109:75 | source(...) : String | mad/Test.java:109:34:109:75 | (...)... | +| mad/Test.java:111:30:111:37 | source(...) : String | mad/Test.java:111:23:111:37 | (...)... | +| mad/Test.java:116:30:116:37 | source(...) : String | mad/Test.java:116:23:116:37 | (...)... | +| mad/Test.java:121:33:121:40 | source(...) : String | mad/Test.java:121:23:121:40 | (...)... | +| mad/Test.java:123:27:123:34 | source(...) : String | mad/Test.java:123:20:123:34 | (...)... | +| mad/Test.java:125:28:125:35 | source(...) : String | mad/Test.java:125:21:125:35 | (...)... | +| mad/Test.java:127:29:127:36 | source(...) : String | mad/Test.java:127:22:127:36 | (...)... | +| mad/Test.java:132:27:132:34 | source(...) : String | mad/Test.java:132:20:132:34 | (...)... | +| mad/Test.java:134:26:134:33 | source(...) : String | mad/Test.java:134:19:134:33 | (...)... | nodes | Test.java:19:18:19:38 | getHostName(...) : String | semmle.label | getHostName(...) : String | | Test.java:24:20:24:23 | temp | semmle.label | temp | @@ -132,105 +134,107 @@ 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:26:16:26:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | -| mad/Test.java:31:52:31:68 | (...)... | semmle.label | (...)... | -| mad/Test.java:31:61:31:68 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:33:32:33:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:33:41:33:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:35:47:35:63 | (...)... | semmle.label | (...)... | -| mad/Test.java:35:56:35:63 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:37:39:37:53 | (...)... | semmle.label | (...)... | -| mad/Test.java:37:46:37:53 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:39:31:39:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:39:38:39:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:41:29:41:43 | (...)... | semmle.label | (...)... | -| mad/Test.java:41:36:41:43 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:43:24:43:38 | (...)... | semmle.label | (...)... | -| mad/Test.java:43:31:43:38 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:45:24:45:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:45:33:45:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:47:20:47:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:47:27:47:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:27:16:27:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | +| mad/Test.java:32:52:32:68 | (...)... | semmle.label | (...)... | +| mad/Test.java:32:61:32:68 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:34:32:34:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:34:41:34:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:36:47:36:63 | (...)... | semmle.label | (...)... | +| mad/Test.java:36:56:36:63 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:38:39:38:53 | (...)... | semmle.label | (...)... | +| mad/Test.java:38:46:38:53 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:40:31:40:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:40:38:40:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:42:29:42:43 | (...)... | semmle.label | (...)... | +| mad/Test.java:42:36:42:43 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:44:24:44:38 | (...)... | semmle.label | (...)... | +| mad/Test.java:44:31:44:38 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:46:24:46:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:46:33:46:40 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:48:20:48:34 | (...)... | semmle.label | (...)... | | mad/Test.java:48:27:48:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:49:20:49:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:49:34:49:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:51:33:51:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:51:40:51:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:52:33:52:55 | (...)... | semmle.label | (...)... | -| mad/Test.java:52:48:52:55 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:53:40:53:54 | (...)... | semmle.label | (...)... | -| mad/Test.java:53:47:53:54 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:55:33:55:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:55:40:55:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:57:31:57:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:57:38:57:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:59:26:59:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:59:33:59:40 | 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:34:63:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:63:41:63:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:65:35:65:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:65:42:65:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:67:30:67:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:67:37:67:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:69:22:69:36 | (...)... | semmle.label | (...)... | -| mad/Test.java:69:29:69:36 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:71:30:71:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:71:37:71:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:73:21:73:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:73:28:73:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:75:26:75:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:75:33:75:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:77:33:77:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:77:40:77:47 | 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: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:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:50:34:50:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:52:33:52:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:52:40:52:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:53:33:53:55 | (...)... | semmle.label | (...)... | +| mad/Test.java:53:48:53:55 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:54:40:54:54 | (...)... | semmle.label | (...)... | +| mad/Test.java:54:47:54:54 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:56:33:56:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:56:40:56:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:58:31:58:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:58:38:58:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:60:26:60:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:60:33:60:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:62:26:62:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:62:33:62:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:64:34:64:48 | (...)... | semmle.label | (...)... | +| mad/Test.java:64:41:64:48 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:66:35:66:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:66:42:66:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:68:30:68:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:68:37:68:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:70:22:70:36 | (...)... | semmle.label | (...)... | +| mad/Test.java:70:29:70:36 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:72:30:72:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:72:37:72:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:74:21:74:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:74:28:74:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:76:26:76:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:76:33:76:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:78:33:78:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:78:40:78:47 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:80:33:80:47 | (...)... | semmle.label | (...)... | | mad/Test.java:80:40:80:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:82:31:82:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:82:38:82:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:84:21:84:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:84:28:84:35 | 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:83:31:83:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:83:38:83:45 | source(...) : String | semmle.label | source(...) : String | | mad/Test.java:85:21:85:35 | (...)... | semmle.label | (...)... | | mad/Test.java:85:28:85:35 | 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:88:27:88:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:88:34:88:41 | 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:89:27:89:41 | (...)... | semmle.label | (...)... | | mad/Test.java:89:34:89:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:91:26:91:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:91:33:91:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:93:35:93:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:93:42:93:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:95:41:95:57 | (...)... | semmle.label | (...)... | -| mad/Test.java:95:50:95:57 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:97:45:97:61 | (...)... | semmle.label | (...)... | -| mad/Test.java:97:54:97:61 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:102:30:102:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:102:37:102:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:104:40:104:81 | (...)... | semmle.label | (...)... | -| mad/Test.java:104:74:104:81 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:106:34:106:75 | (...)... | semmle.label | (...)... | -| mad/Test.java:106:68:106:75 | 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:113:23:113:37 | (...)... | semmle.label | (...)... | -| mad/Test.java:113:30:113:37 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:118:23:118:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:118:33:118:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:120:20:120:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:120:27:120:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:122:21:122:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:122:28:122:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:124:22:124:36 | (...)... | semmle.label | (...)... | -| mad/Test.java:124:29:124:36 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:129:20:129:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:129:27:129:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:131:19:131:33 | (...)... | semmle.label | (...)... | -| mad/Test.java:131:26:131:33 | 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:92:26:92:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:92:33:92:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:94:35:94:49 | (...)... | semmle.label | (...)... | +| mad/Test.java:94:42:94:49 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:96:41:96:57 | (...)... | semmle.label | (...)... | +| mad/Test.java:96:50:96:57 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:98:45:98:61 | (...)... | semmle.label | (...)... | +| mad/Test.java:98:54:98:61 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:103:30:103:44 | (...)... | semmle.label | (...)... | +| mad/Test.java:103:37:103:44 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:105:40:105:81 | (...)... | semmle.label | (...)... | +| mad/Test.java:105:74:105:81 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:107:34:107:75 | (...)... | semmle.label | (...)... | +| mad/Test.java:107:68:107:75 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:109:34:109:75 | (...)... | semmle.label | (...)... | +| mad/Test.java:109:68:109:75 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:111:23:111:37 | (...)... | semmle.label | (...)... | +| mad/Test.java:111:30:111:37 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:116:23:116:37 | (...)... | semmle.label | (...)... | +| mad/Test.java:116:30:116:37 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:121:23:121:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:121:33:121:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:123:20:123:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:123:27:123:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:125:21:125:35 | (...)... | semmle.label | (...)... | +| mad/Test.java:125:28:125:35 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:127:22:127:36 | (...)... | semmle.label | (...)... | +| mad/Test.java:127:29:127:36 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:132:20:132:34 | (...)... | semmle.label | (...)... | +| mad/Test.java:132:27:132:34 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:134:19:134:33 | (...)... | semmle.label | (...)... | +| mad/Test.java:134:26:134:33 | 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 | @@ -244,52 +248,53 @@ 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:31:52:31:68 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:31:52:31:68 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:33:32:33:48 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:33:32:33:48 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:35:47:35:63 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:35:47:35:63 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:37:39:37:53 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:37:39:37:53 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:39:31:39:45 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:39:31:39:45 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:41:29:41:43 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:41:29:41:43 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:43:24:43:38 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:43:24:43:38 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:45:9:45:41 | new FileReader(...) | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:45:24:45:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:47:20:47:34 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:47:20:47:34 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:48:20:48:34 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:48:20:48:34 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:49:20:49:41 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:49:20:49:41 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:51:33:51:47 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:51:33:51:47 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:52:33:52:55 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:52:33:52:55 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:53:40:53:54 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:53:40:53:54 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:55:33:55:47 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:55:33:55:47 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:57:31:57:45 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:57:31:57:45 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:59:26:59:40 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:59:26:59:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:61:26:61:40 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:61:26:61:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:63:34:63:48 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:63:34:63:48 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:65:35:65:49 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:65:35:65:49 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:67:30:67:44 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:67:30:67:44 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:69:22:69:36 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:69:22:69:36 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:71:30:71:44 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:71:30:71:44 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:73:21:73:35 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:73:21:73:35 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:75:26:75:40 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:75:26:75:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:77:33:77:47 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:77:33:77:47 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:79:33:79:47 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:79:33:79:47 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:80:33:80:47 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:80:33:80:47 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:82:31:82:45 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:82:31:82:45 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:84:21:84:35 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:84:21:84:35 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:85:21:85:35 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:85:21:85:35 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:86:21:86:35 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:86:21:86:35 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:88:27:88:41 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:88:27:88:41 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:89:27:89:41 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:89:27:89:41 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:91:26:91:40 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:91:26:91:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:93:35:93:49 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:93:35:93:49 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:95:41:95:57 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:95:41:95:57 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:97:45:97:61 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:97:45:97:61 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:102:30:102:44 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:102:30:102:44 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:104:40:104:81 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:104:40:104:81 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:106:34:106:75 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:106:34:106:75 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:108:34:108:75 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:108:34:108:75 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:113:23:113:37 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:113:23:113:37 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:118:23:118:40 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:118:23:118:40 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:120:20:120:34 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:120:20:120:34 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:122:21:122:35 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:122:21:122:35 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:124:22:124:36 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:124:22:124:36 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:129:20:129:34 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:129:20:129:34 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | -| mad/Test.java:131:19:131:33 | (...)... | mad/Test.java:26:16:26:36 | getHostName(...) : String | mad/Test.java:131:19:131:33 | (...)... | This path depends on a $@. | mad/Test.java:26:16:26:36 | getHostName(...) | user-provided value | +| mad/Test.java:32:52:32:68 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:32:52:32:68 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:34:32:34:48 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:34:32:34:48 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:36:47:36:63 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:36:47:36:63 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:38:39:38:53 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:38:39:38:53 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:40:31:40:45 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:40:31:40:45 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:42:29:42:43 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:42:29:42:43 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:44:24:44:38 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:44:24:44:38 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:46:9:46:41 | new FileReader(...) | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:46:24:46:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:48:20:48:34 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:48:20:48:34 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:49:20:49:34 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:49:20:49:34 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:50:20:50:41 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:50:20:50:41 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:52:33:52:47 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:52:33:52:47 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:53:33:53:55 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:53:33:53:55 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:54:40:54:54 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:54:40:54:54 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:56:33:56:47 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:56:33:56:47 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:58:31:58:45 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:58:31:58:45 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:60:26:60:40 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:60:26:60:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:62:26:62:40 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:62:26:62:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:64:34:64:48 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:64:34:64:48 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:66:35:66:49 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:66:35:66:49 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:68:30:68:44 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:68:30:68:44 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:70:22:70:36 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:70:22:70:36 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:72:30:72:44 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:72:30:72:44 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:74:21:74:35 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:74:21:74:35 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:76:26:76:40 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:76:26:76:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:78:33:78:47 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:78:33:78:47 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:80:33:80:47 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:80:33:80:47 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:81:33:81:47 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:81:33:81:47 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:83:31:83:45 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:83:31:83:45 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:85:21:85:35 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:85:21:85:35 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:86:21:86:35 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:86:21:86:35 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:87:21:87:35 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:87:21:87:35 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:89:27:89:41 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:89:27:89:41 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:90:27:90:41 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:90:27:90:41 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:92:26:92:40 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:92:26:92:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:94:35:94:49 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:94:35:94:49 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:96:41:96:57 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:96:41:96:57 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:98:45:98:61 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:98:45:98:61 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:103:30:103:44 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:103:30:103:44 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:105:40:105:81 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:105:40:105:81 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:107:34:107:75 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:107:34:107:75 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:109:34:109:75 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:109:34:109:75 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:111:23:111:37 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:111:23:111:37 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:116:23:116:37 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:116:23:116:37 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:121:23:121:40 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:121:23:121:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:123:20:123:34 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:123:20:123:34 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:125:21:125:35 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:125:21:125:35 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:127:22:127:36 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:127:22:127:36 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:132:20:132:34 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:132:20:132:34 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | +| mad/Test.java:134:19:134:33 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:134:19:134:33 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java index 2a2300181ab..904ebc09778 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java @@ -17,6 +17,7 @@ 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; public class Test { @@ -106,6 +107,8 @@ public class Test { 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) { diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/options b/java/ql/test/query-tests/security/CWE-022/semmle/tests/options index ede20fca100..58498830fbc 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/options +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/options @@ -1 +1 @@ -// 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 +// 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 \ No newline at end of file diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/io/ByteBuffer.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/io/ByteBuffer.java new file mode 100644 index 00000000000..f0401d840fb --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/io/ByteBuffer.java @@ -0,0 +1,17 @@ +// Generated automatically from org.kohsuke.stapler.framework.io.ByteBuffer for testing purposes + +package org.kohsuke.stapler.framework.io; + +import java.io.InputStream; +import java.io.OutputStream; + +public class ByteBuffer extends OutputStream +{ + public ByteBuffer(){} + public InputStream newInputStream(){ return null; } + public String toString(){ return null; } + public long length(){ return 0; } + public void write(byte[] p0, int p1, int p2){} + public void write(int p0){} + public void writeTo(OutputStream p0){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/io/LargeText.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/io/LargeText.java new file mode 100644 index 00000000000..3e05f6a94cc --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/framework/io/LargeText.java @@ -0,0 +1,33 @@ +// Generated automatically from org.kohsuke.stapler.framework.io.LargeText for testing purposes + +package org.kohsuke.stapler.framework.io; + +import java.io.File; +import java.io.OutputStream; +import java.io.Reader; +import java.io.Writer; +import java.nio.charset.Charset; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.framework.io.ByteBuffer; + +public class LargeText +{ + protected LargeText() {} + protected Writer createWriter(StaplerRequest p0, StaplerResponse p1, long p2){ return null; } + protected final Charset charset = null; + protected void setContentType(StaplerResponse p0){} + public LargeText(ByteBuffer p0, Charset p1, boolean p2){} + public LargeText(ByteBuffer p0, boolean p1){} + public LargeText(File p0, Charset p1, boolean p2){} + public LargeText(File p0, Charset p1, boolean p2, boolean p3){} + public LargeText(File p0, boolean p1){} + public LargeText(File p0, boolean p1, boolean p2){} + public Reader readAll(){ return null; } + public boolean isComplete(){ return false; } + public long length(){ return 0; } + public long writeLogTo(long p0, OutputStream p1){ return 0; } + public long writeLogTo(long p0, Writer p1){ return 0; } + public void doProgressText(StaplerRequest p0, StaplerResponse p1){} + public void markAsComplete(){} +} From c5a1905302d3d69dc68112b46270ba4b8e91048c Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Wed, 15 Mar 2023 12:43:45 +0100 Subject: [PATCH 20/22] Fix stubs --- .../javax/servlet/AsyncContext.java | 31 --- .../javafx-web/javax/servlet/AsyncEvent.java | 20 -- .../javax/servlet/AsyncListener.java | 14 -- .../javax/servlet/DispatcherType.java | 10 - .../javafx-web/javax/servlet/Filter.java | 15 -- .../javafx-web/javax/servlet/FilterChain.java | 11 - .../javax/servlet/FilterConfig.java | 14 -- .../javax/servlet/FilterRegistration.java | 19 -- .../javax/servlet/GenericServlet.java | 28 --- .../javax/servlet/HttpConstraintElement.java | 16 -- .../servlet/HttpMethodConstraintElement.java | 13 - .../javax/servlet/MultipartConfigElement.java | 17 -- .../javax/servlet/ReadListener.java | 12 - .../javax/servlet/Registration.java | 20 -- .../javax/servlet/RequestDispatcher.java | 30 --- .../javafx-web/javax/servlet/Servlet.java | 16 -- .../javax/servlet/ServletConfig.java | 14 -- .../javax/servlet/ServletContext.java | 83 ------- .../javax/servlet/ServletInputStream.java | 15 -- .../javax/servlet/ServletOutputStream.java | 28 --- .../javax/servlet/ServletRegistration.java | 23 -- .../javax/servlet/ServletRequest.java | 55 ----- .../javax/servlet/ServletResponse.java | 27 -- .../javax/servlet/ServletSecurityElement.java | 19 -- .../javax/servlet/SessionCookieConfig.java | 22 -- .../javax/servlet/SessionTrackingMode.java | 10 - .../javax/servlet/WriteListener.java | 11 - .../servlet/annotation/HttpConstraint.java | 18 -- .../annotation/HttpMethodConstraint.java | 19 -- .../servlet/annotation/MultipartConfig.java | 19 -- .../servlet/annotation/ServletSecurity.java | 33 --- .../descriptor/JspConfigDescriptor.java | 13 - .../JspPropertyGroupDescriptor.java | 21 -- .../servlet/descriptor/TaglibDescriptor.java | 10 - .../javafx-web/javax/servlet/http/Cookie.java | 29 --- .../javax/servlet/http/HttpServlet.java | 24 -- .../servlet/http/HttpServletMapping.java | 13 - .../servlet/http/HttpServletRequest.java | 60 ----- .../servlet/http/HttpServletResponse.java | 77 ------ .../javax/servlet/http/HttpSession.java | 28 --- .../servlet/http/HttpSessionContext.java | 12 - .../servlet/http/HttpUpgradeHandler.java | 11 - .../javax/servlet/http/MappingMatch.java | 10 - .../javafx-web/javax/servlet/http/Part.java | 20 -- .../javax/servlet/http/PushBuilder.java | 23 -- .../javax/servlet/http/WebConnection.java | 12 - .../javax/annotation/HttpConstraint.java | 18 -- .../annotation/HttpMethodConstraint.java | 19 -- .../javax/annotation/MultipartConfig.java | 19 -- .../javax/annotation/ServletSecurity.java | 33 --- .../javax/descriptor/JspConfigDescriptor.java | 13 - .../JspPropertyGroupDescriptor.java | 21 -- .../javax/descriptor/TaglibDescriptor.java | 10 - .../javax-servlet-2.5/javax/http/Cookie.java | 29 --- .../javax/http/HttpServlet.java | 24 -- .../javax/http/HttpServletMapping.java | 13 - .../javax/http/HttpServletRequest.java | 60 ----- .../javax/http/HttpServletRequestWrapper.java | 59 ----- .../javax/http/HttpServletResponse.java | 77 ------ .../http/HttpServletResponseWrapper.java | 39 --- .../javax/http/HttpSession.java | 28 --- .../javax/http/HttpSessionContext.java | 12 - .../javax/http/HttpUpgradeHandler.java | 11 - .../javax/http/MappingMatch.java | 10 - .../javax-servlet-2.5/javax/http/Part.java | 20 -- .../javax/http/PushBuilder.java | 23 -- .../javax/http/WebConnection.java | 12 - .../javax/servlet/Filter.java | 18 +- .../javax/servlet/FilterChain.java | 10 +- .../javax/servlet/FilterConfig.java | 14 +- .../javax/servlet/GenericServlet.java | 232 ++++++++++++++++-- .../javax/servlet/RequestDispatcher.java | 53 ++-- .../javax/servlet/Servlet.java | 41 +++- .../javax/servlet/ServletConfig.java | 35 ++- .../javax/servlet/ServletContext.java | 122 ++++----- .../javax/servlet/ServletContextEvent.java | 52 +++- .../javax/servlet/ServletContextListener.java | 74 ++++++ .../javax/servlet/ServletException.java | 27 ++ .../javax/servlet/ServletInputStream.java | 38 ++- .../javax/servlet/ServletOutputStream.java | 78 ++++-- .../javax/servlet/ServletRequest.java | 99 ++++---- .../javax/servlet/ServletResponse.java | 59 +++-- .../javax/servlet/http/Cookie.java | 103 ++++++-- .../javax/servlet/http/HttpServlet.java | 71 ++++-- .../servlet/http/HttpServletRequest.java | 103 ++++---- .../servlet/http/HttpServletResponse.java | 158 ++++++------ .../javax/servlet/http/HttpSession.java | 61 +++-- .../servlet/http/HttpSessionContext.java | 34 ++- 88 files changed, 1015 insertions(+), 2062 deletions(-) delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/AsyncContext.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/AsyncEvent.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/AsyncListener.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/DispatcherType.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/Filter.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/FilterChain.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/FilterConfig.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/FilterRegistration.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/GenericServlet.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/HttpConstraintElement.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/HttpMethodConstraintElement.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/MultipartConfigElement.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/ReadListener.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/Registration.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/RequestDispatcher.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/Servlet.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/ServletConfig.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/ServletContext.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/ServletInputStream.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/ServletOutputStream.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/ServletRegistration.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/ServletRequest.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/ServletResponse.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/ServletSecurityElement.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/SessionCookieConfig.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/SessionTrackingMode.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/WriteListener.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/annotation/HttpConstraint.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/annotation/HttpMethodConstraint.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/annotation/MultipartConfig.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/annotation/ServletSecurity.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/descriptor/JspConfigDescriptor.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/descriptor/JspPropertyGroupDescriptor.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/descriptor/TaglibDescriptor.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/Cookie.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServlet.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletMapping.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletRequest.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletResponse.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/HttpSession.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/HttpSessionContext.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/HttpUpgradeHandler.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/MappingMatch.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/Part.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/PushBuilder.java delete mode 100644 java/ql/test/stubs/javafx-web/javax/servlet/http/WebConnection.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpConstraint.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpMethodConstraint.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/annotation/MultipartConfig.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/annotation/ServletSecurity.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspConfigDescriptor.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspPropertyGroupDescriptor.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/TaglibDescriptor.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/Cookie.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServlet.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletMapping.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequest.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequestWrapper.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponse.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponseWrapper.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSession.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSessionContext.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpUpgradeHandler.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/MappingMatch.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/Part.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/PushBuilder.java delete mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/http/WebConnection.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextListener.java create mode 100644 java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletException.java diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/AsyncContext.java b/java/ql/test/stubs/javafx-web/javax/servlet/AsyncContext.java deleted file mode 100644 index 70a39f55ac9..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/AsyncContext.java +++ /dev/null @@ -1,31 +0,0 @@ -// Generated automatically from javax.servlet.AsyncContext for testing purposes - -package javax.servlet; - -import javax.servlet.AsyncListener; -import javax.servlet.ServletContext; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; - -public interface AsyncContext -{ - T createListener(java.lang.Class p0); - ServletRequest getRequest(); - ServletResponse getResponse(); - boolean hasOriginalRequestAndResponse(); - long getTimeout(); - static String ASYNC_CONTEXT_PATH = null; - static String ASYNC_MAPPING = null; - static String ASYNC_PATH_INFO = null; - static String ASYNC_QUERY_STRING = null; - static String ASYNC_REQUEST_URI = null; - static String ASYNC_SERVLET_PATH = null; - void addListener(AsyncListener p0); - void addListener(AsyncListener p0, ServletRequest p1, ServletResponse p2); - void complete(); - void dispatch(); - void dispatch(ServletContext p0, String p1); - void dispatch(String p0); - void setTimeout(long p0); - void start(Runnable p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/AsyncEvent.java b/java/ql/test/stubs/javafx-web/javax/servlet/AsyncEvent.java deleted file mode 100644 index d7cb9c2b175..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/AsyncEvent.java +++ /dev/null @@ -1,20 +0,0 @@ -// Generated automatically from javax.servlet.AsyncEvent for testing purposes - -package javax.servlet; - -import javax.servlet.AsyncContext; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; - -public class AsyncEvent -{ - protected AsyncEvent() {} - public AsyncContext getAsyncContext(){ return null; } - public AsyncEvent(AsyncContext p0){} - public AsyncEvent(AsyncContext p0, ServletRequest p1, ServletResponse p2){} - public AsyncEvent(AsyncContext p0, ServletRequest p1, ServletResponse p2, Throwable p3){} - public AsyncEvent(AsyncContext p0, Throwable p1){} - public ServletRequest getSuppliedRequest(){ return null; } - public ServletResponse getSuppliedResponse(){ return null; } - public Throwable getThrowable(){ return null; } -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/AsyncListener.java b/java/ql/test/stubs/javafx-web/javax/servlet/AsyncListener.java deleted file mode 100644 index 2723482f668..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/AsyncListener.java +++ /dev/null @@ -1,14 +0,0 @@ -// Generated automatically from javax.servlet.AsyncListener for testing purposes - -package javax.servlet; - -import java.util.EventListener; -import javax.servlet.AsyncEvent; - -public interface AsyncListener extends EventListener -{ - void onComplete(AsyncEvent p0); - void onError(AsyncEvent p0); - void onStartAsync(AsyncEvent p0); - void onTimeout(AsyncEvent p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/DispatcherType.java b/java/ql/test/stubs/javafx-web/javax/servlet/DispatcherType.java deleted file mode 100644 index 2b7b44f328d..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/DispatcherType.java +++ /dev/null @@ -1,10 +0,0 @@ -// Generated automatically from javax.servlet.DispatcherType for testing purposes - -package javax.servlet; - - -public enum DispatcherType -{ - ASYNC, ERROR, FORWARD, INCLUDE, REQUEST; - private DispatcherType() {} -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/Filter.java b/java/ql/test/stubs/javafx-web/javax/servlet/Filter.java deleted file mode 100644 index 64b9f9d73a8..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/Filter.java +++ /dev/null @@ -1,15 +0,0 @@ -// Generated automatically from javax.servlet.Filter for testing purposes - -package javax.servlet; - -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; - -public interface Filter -{ - default void destroy(){} - default void init(FilterConfig p0){} - void doFilter(ServletRequest p0, ServletResponse p1, FilterChain p2); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/FilterChain.java b/java/ql/test/stubs/javafx-web/javax/servlet/FilterChain.java deleted file mode 100644 index f64ab722684..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/FilterChain.java +++ /dev/null @@ -1,11 +0,0 @@ -// Generated automatically from javax.servlet.FilterChain for testing purposes - -package javax.servlet; - -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; - -public interface FilterChain -{ - void doFilter(ServletRequest p0, ServletResponse p1); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/FilterConfig.java b/java/ql/test/stubs/javafx-web/javax/servlet/FilterConfig.java deleted file mode 100644 index 0e140c6680c..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/FilterConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -// Generated automatically from javax.servlet.FilterConfig for testing purposes - -package javax.servlet; - -import java.util.Enumeration; -import javax.servlet.ServletContext; - -public interface FilterConfig -{ - Enumeration getInitParameterNames(); - ServletContext getServletContext(); - String getFilterName(); - String getInitParameter(String p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/FilterRegistration.java b/java/ql/test/stubs/javafx-web/javax/servlet/FilterRegistration.java deleted file mode 100644 index 6ad0739ceb6..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/FilterRegistration.java +++ /dev/null @@ -1,19 +0,0 @@ -// Generated automatically from javax.servlet.FilterRegistration for testing purposes - -package javax.servlet; - -import java.util.Collection; -import java.util.EnumSet; -import javax.servlet.DispatcherType; -import javax.servlet.Registration; - -public interface FilterRegistration extends Registration -{ - Collection getServletNameMappings(); - Collection getUrlPatternMappings(); - static public interface Dynamic extends FilterRegistration, Registration.Dynamic - { - } - void addMappingForServletNames(EnumSet p0, boolean p1, String... p2); - void addMappingForUrlPatterns(EnumSet p0, boolean p1, String... p2); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/GenericServlet.java b/java/ql/test/stubs/javafx-web/javax/servlet/GenericServlet.java deleted file mode 100644 index 5f7bdcda487..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/GenericServlet.java +++ /dev/null @@ -1,28 +0,0 @@ -// Generated automatically from javax.servlet.GenericServlet for testing purposes - -package javax.servlet; - -import java.io.Serializable; -import java.util.Enumeration; -import javax.servlet.Servlet; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; - -abstract public class GenericServlet implements Serializable, Servlet, ServletConfig -{ - public Enumeration getInitParameterNames(){ return null; } - public GenericServlet(){} - public ServletConfig getServletConfig(){ return null; } - public ServletContext getServletContext(){ return null; } - public String getInitParameter(String p0){ return null; } - public String getServletInfo(){ return null; } - public String getServletName(){ return null; } - public abstract void service(ServletRequest p0, ServletResponse p1); - public void destroy(){} - public void init(){} - public void init(ServletConfig p0){} - public void log(String p0){} - public void log(String p0, Throwable p1){} -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/HttpConstraintElement.java b/java/ql/test/stubs/javafx-web/javax/servlet/HttpConstraintElement.java deleted file mode 100644 index 6598aa47cc5..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/HttpConstraintElement.java +++ /dev/null @@ -1,16 +0,0 @@ -// Generated automatically from javax.servlet.HttpConstraintElement for testing purposes - -package javax.servlet; - -import javax.servlet.annotation.ServletSecurity; - -public class HttpConstraintElement -{ - public HttpConstraintElement(){} - public HttpConstraintElement(ServletSecurity.EmptyRoleSemantic p0){} - public HttpConstraintElement(ServletSecurity.EmptyRoleSemantic p0, ServletSecurity.TransportGuarantee p1, String... p2){} - public HttpConstraintElement(ServletSecurity.TransportGuarantee p0, String... p1){} - public ServletSecurity.EmptyRoleSemantic getEmptyRoleSemantic(){ return null; } - public ServletSecurity.TransportGuarantee getTransportGuarantee(){ return null; } - public String[] getRolesAllowed(){ return null; } -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/HttpMethodConstraintElement.java b/java/ql/test/stubs/javafx-web/javax/servlet/HttpMethodConstraintElement.java deleted file mode 100644 index ddb52527004..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/HttpMethodConstraintElement.java +++ /dev/null @@ -1,13 +0,0 @@ -// Generated automatically from javax.servlet.HttpMethodConstraintElement for testing purposes - -package javax.servlet; - -import javax.servlet.HttpConstraintElement; - -public class HttpMethodConstraintElement extends HttpConstraintElement -{ - protected HttpMethodConstraintElement() {} - public HttpMethodConstraintElement(String p0){} - public HttpMethodConstraintElement(String p0, HttpConstraintElement p1){} - public String getMethodName(){ return null; } -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/MultipartConfigElement.java b/java/ql/test/stubs/javafx-web/javax/servlet/MultipartConfigElement.java deleted file mode 100644 index 8470d9a5317..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/MultipartConfigElement.java +++ /dev/null @@ -1,17 +0,0 @@ -// Generated automatically from javax.servlet.MultipartConfigElement for testing purposes - -package javax.servlet; - -import javax.servlet.annotation.MultipartConfig; - -public class MultipartConfigElement -{ - protected MultipartConfigElement() {} - public MultipartConfigElement(MultipartConfig p0){} - public MultipartConfigElement(String p0){} - public MultipartConfigElement(String p0, long p1, long p2, int p3){} - public String getLocation(){ return null; } - public int getFileSizeThreshold(){ return 0; } - public long getMaxFileSize(){ return 0; } - public long getMaxRequestSize(){ return 0; } -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/ReadListener.java b/java/ql/test/stubs/javafx-web/javax/servlet/ReadListener.java deleted file mode 100644 index 367594ef7da..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/ReadListener.java +++ /dev/null @@ -1,12 +0,0 @@ -// Generated automatically from javax.servlet.ReadListener for testing purposes - -package javax.servlet; - -import java.util.EventListener; - -public interface ReadListener extends EventListener -{ - void onAllDataRead(); - void onDataAvailable(); - void onError(Throwable p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/Registration.java b/java/ql/test/stubs/javafx-web/javax/servlet/Registration.java deleted file mode 100644 index 5d4095813ef..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/Registration.java +++ /dev/null @@ -1,20 +0,0 @@ -// Generated automatically from javax.servlet.Registration for testing purposes - -package javax.servlet; - -import java.util.Map; -import java.util.Set; - -public interface Registration -{ - Map getInitParameters(); - Set setInitParameters(Map p0); - String getClassName(); - String getInitParameter(String p0); - String getName(); - boolean setInitParameter(String p0, String p1); - static public interface Dynamic extends Registration - { - void setAsyncSupported(boolean p0); - } -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/RequestDispatcher.java b/java/ql/test/stubs/javafx-web/javax/servlet/RequestDispatcher.java deleted file mode 100644 index ad017e4f501..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/RequestDispatcher.java +++ /dev/null @@ -1,30 +0,0 @@ -// Generated automatically from javax.servlet.RequestDispatcher for testing purposes - -package javax.servlet; - -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; - -public interface RequestDispatcher -{ - static String ERROR_EXCEPTION = null; - static String ERROR_EXCEPTION_TYPE = null; - static String ERROR_MESSAGE = null; - static String ERROR_REQUEST_URI = null; - static String ERROR_SERVLET_NAME = null; - static String ERROR_STATUS_CODE = null; - static String FORWARD_CONTEXT_PATH = null; - static String FORWARD_MAPPING = null; - static String FORWARD_PATH_INFO = null; - static String FORWARD_QUERY_STRING = null; - static String FORWARD_REQUEST_URI = null; - static String FORWARD_SERVLET_PATH = null; - static String INCLUDE_CONTEXT_PATH = null; - static String INCLUDE_MAPPING = null; - static String INCLUDE_PATH_INFO = null; - static String INCLUDE_QUERY_STRING = null; - static String INCLUDE_REQUEST_URI = null; - static String INCLUDE_SERVLET_PATH = null; - void forward(ServletRequest p0, ServletResponse p1); - void include(ServletRequest p0, ServletResponse p1); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/Servlet.java b/java/ql/test/stubs/javafx-web/javax/servlet/Servlet.java deleted file mode 100644 index 231c011a6f8..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/Servlet.java +++ /dev/null @@ -1,16 +0,0 @@ -// Generated automatically from javax.servlet.Servlet for testing purposes - -package javax.servlet; - -import javax.servlet.ServletConfig; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; - -public interface Servlet -{ - ServletConfig getServletConfig(); - String getServletInfo(); - void destroy(); - void init(ServletConfig p0); - void service(ServletRequest p0, ServletResponse p1); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/ServletConfig.java b/java/ql/test/stubs/javafx-web/javax/servlet/ServletConfig.java deleted file mode 100644 index c483c16ac4e..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/ServletConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -// Generated automatically from javax.servlet.ServletConfig for testing purposes - -package javax.servlet; - -import java.util.Enumeration; -import javax.servlet.ServletContext; - -public interface ServletConfig -{ - Enumeration getInitParameterNames(); - ServletContext getServletContext(); - String getInitParameter(String p0); - String getServletName(); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/ServletContext.java b/java/ql/test/stubs/javafx-web/javax/servlet/ServletContext.java deleted file mode 100644 index 812393f61e9..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/ServletContext.java +++ /dev/null @@ -1,83 +0,0 @@ -// Generated automatically from javax.servlet.ServletContext for testing purposes - -package javax.servlet; - -import java.io.InputStream; -import java.net.URL; -import java.util.Enumeration; -import java.util.EventListener; -import java.util.Map; -import java.util.Set; -import javax.servlet.Filter; -import javax.servlet.FilterRegistration; -import javax.servlet.RequestDispatcher; -import javax.servlet.Servlet; -import javax.servlet.ServletRegistration; -import javax.servlet.SessionCookieConfig; -import javax.servlet.SessionTrackingMode; -import javax.servlet.descriptor.JspConfigDescriptor; - -public interface ServletContext -{ - T createListener(java.lang.Class p0); - void addListener(T p0); - T createFilter(java.lang.Class p0); - T createServlet(java.lang.Class p0); - ClassLoader getClassLoader(); - Enumeration getServlets(); - Enumeration getAttributeNames(); - Enumeration getInitParameterNames(); - Enumeration getServletNames(); - FilterRegistration getFilterRegistration(String p0); - FilterRegistration.Dynamic addFilter(String p0, Class p1); - FilterRegistration.Dynamic addFilter(String p0, Filter p1); - FilterRegistration.Dynamic addFilter(String p0, String p1); - InputStream getResourceAsStream(String p0); - JspConfigDescriptor getJspConfigDescriptor(); - Map getFilterRegistrations(); - Map getServletRegistrations(); - Object getAttribute(String p0); - RequestDispatcher getNamedDispatcher(String p0); - RequestDispatcher getRequestDispatcher(String p0); - Servlet getServlet(String p0); - ServletContext getContext(String p0); - ServletRegistration getServletRegistration(String p0); - ServletRegistration.Dynamic addJspFile(String p0, String p1); - ServletRegistration.Dynamic addServlet(String p0, Class p1); - ServletRegistration.Dynamic addServlet(String p0, Servlet p1); - ServletRegistration.Dynamic addServlet(String p0, String p1); - SessionCookieConfig getSessionCookieConfig(); - Set getDefaultSessionTrackingModes(); - Set getEffectiveSessionTrackingModes(); - Set getResourcePaths(String p0); - String getContextPath(); - String getInitParameter(String p0); - String getMimeType(String p0); - String getRealPath(String p0); - String getRequestCharacterEncoding(); - String getResponseCharacterEncoding(); - String getServerInfo(); - String getServletContextName(); - String getVirtualServerName(); - URL getResource(String p0); - boolean setInitParameter(String p0, String p1); - int getEffectiveMajorVersion(); - int getEffectiveMinorVersion(); - int getMajorVersion(); - int getMinorVersion(); - int getSessionTimeout(); - static String ORDERED_LIBS = null; - static String TEMPDIR = null; - void addListener(Class p0); - void addListener(String p0); - void declareRoles(String... p0); - void log(Exception p0, String p1); - void log(String p0); - void log(String p0, Throwable p1); - void removeAttribute(String p0); - void setAttribute(String p0, Object p1); - void setRequestCharacterEncoding(String p0); - void setResponseCharacterEncoding(String p0); - void setSessionTimeout(int p0); - void setSessionTrackingModes(Set p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/ServletInputStream.java b/java/ql/test/stubs/javafx-web/javax/servlet/ServletInputStream.java deleted file mode 100644 index 31034066970..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/ServletInputStream.java +++ /dev/null @@ -1,15 +0,0 @@ -// Generated automatically from javax.servlet.ServletInputStream for testing purposes - -package javax.servlet; - -import java.io.InputStream; -import javax.servlet.ReadListener; - -abstract public class ServletInputStream extends InputStream -{ - protected ServletInputStream(){} - public abstract boolean isFinished(); - public abstract boolean isReady(); - public abstract void setReadListener(ReadListener p0); - public int readLine(byte[] p0, int p1, int p2){ return 0; } -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/ServletOutputStream.java b/java/ql/test/stubs/javafx-web/javax/servlet/ServletOutputStream.java deleted file mode 100644 index 52a2162c9eb..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/ServletOutputStream.java +++ /dev/null @@ -1,28 +0,0 @@ -// Generated automatically from javax.servlet.ServletOutputStream for testing purposes - -package javax.servlet; - -import java.io.OutputStream; -import javax.servlet.WriteListener; - -abstract public class ServletOutputStream extends OutputStream -{ - protected ServletOutputStream(){} - public abstract boolean isReady(); - public abstract void setWriteListener(WriteListener p0); - public void print(String p0){} - public void print(boolean p0){} - public void print(char p0){} - public void print(double p0){} - public void print(float p0){} - public void print(int p0){} - public void print(long p0){} - public void println(){} - public void println(String p0){} - public void println(boolean p0){} - public void println(char p0){} - public void println(double p0){} - public void println(float p0){} - public void println(int p0){} - public void println(long p0){} -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/ServletRegistration.java b/java/ql/test/stubs/javafx-web/javax/servlet/ServletRegistration.java deleted file mode 100644 index a1cc66f2d19..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/ServletRegistration.java +++ /dev/null @@ -1,23 +0,0 @@ -// Generated automatically from javax.servlet.ServletRegistration for testing purposes - -package javax.servlet; - -import java.util.Collection; -import java.util.Set; -import javax.servlet.MultipartConfigElement; -import javax.servlet.Registration; -import javax.servlet.ServletSecurityElement; - -public interface ServletRegistration extends Registration -{ - Collection getMappings(); - Set addMapping(String... p0); - String getRunAsRole(); - static public interface Dynamic extends Registration.Dynamic, ServletRegistration - { - Set setServletSecurity(ServletSecurityElement p0); - void setLoadOnStartup(int p0); - void setMultipartConfig(MultipartConfigElement p0); - void setRunAsRole(String p0); - } -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/ServletRequest.java b/java/ql/test/stubs/javafx-web/javax/servlet/ServletRequest.java deleted file mode 100644 index fc0db462cc0..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/ServletRequest.java +++ /dev/null @@ -1,55 +0,0 @@ -// Generated automatically from javax.servlet.ServletRequest for testing purposes - -package javax.servlet; - -import java.io.BufferedReader; -import java.util.Enumeration; -import java.util.Locale; -import java.util.Map; -import javax.servlet.AsyncContext; -import javax.servlet.DispatcherType; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletContext; -import javax.servlet.ServletInputStream; -import javax.servlet.ServletResponse; - -public interface ServletRequest -{ - AsyncContext getAsyncContext(); - AsyncContext startAsync(); - AsyncContext startAsync(ServletRequest p0, ServletResponse p1); - BufferedReader getReader(); - DispatcherType getDispatcherType(); - Enumeration getLocales(); - Enumeration getAttributeNames(); - Enumeration getParameterNames(); - Locale getLocale(); - Map getParameterMap(); - Object getAttribute(String p0); - RequestDispatcher getRequestDispatcher(String p0); - ServletContext getServletContext(); - ServletInputStream getInputStream(); - String getCharacterEncoding(); - String getContentType(); - String getLocalAddr(); - String getLocalName(); - String getParameter(String p0); - String getProtocol(); - String getRealPath(String p0); - String getRemoteAddr(); - String getRemoteHost(); - String getScheme(); - String getServerName(); - String[] getParameterValues(String p0); - boolean isAsyncStarted(); - boolean isAsyncSupported(); - boolean isSecure(); - int getContentLength(); - int getLocalPort(); - int getRemotePort(); - int getServerPort(); - long getContentLengthLong(); - void removeAttribute(String p0); - void setAttribute(String p0, Object p1); - void setCharacterEncoding(String p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/ServletResponse.java b/java/ql/test/stubs/javafx-web/javax/servlet/ServletResponse.java deleted file mode 100644 index db6610bc15d..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/ServletResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -// Generated automatically from javax.servlet.ServletResponse for testing purposes - -package javax.servlet; - -import java.io.PrintWriter; -import java.util.Locale; -import javax.servlet.ServletOutputStream; - -public interface ServletResponse -{ - Locale getLocale(); - PrintWriter getWriter(); - ServletOutputStream getOutputStream(); - String getCharacterEncoding(); - String getContentType(); - boolean isCommitted(); - int getBufferSize(); - void flushBuffer(); - void reset(); - void resetBuffer(); - void setBufferSize(int p0); - void setCharacterEncoding(String p0); - void setContentLength(int p0); - void setContentLengthLong(long p0); - void setContentType(String p0); - void setLocale(Locale p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/ServletSecurityElement.java b/java/ql/test/stubs/javafx-web/javax/servlet/ServletSecurityElement.java deleted file mode 100644 index def47937391..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/ServletSecurityElement.java +++ /dev/null @@ -1,19 +0,0 @@ -// Generated automatically from javax.servlet.ServletSecurityElement for testing purposes - -package javax.servlet; - -import java.util.Collection; -import javax.servlet.HttpConstraintElement; -import javax.servlet.HttpMethodConstraintElement; -import javax.servlet.annotation.ServletSecurity; - -public class ServletSecurityElement extends HttpConstraintElement -{ - public Collection getHttpMethodConstraints(){ return null; } - public Collection getMethodNames(){ return null; } - public ServletSecurityElement(){} - public ServletSecurityElement(Collection p0){} - public ServletSecurityElement(HttpConstraintElement p0){} - public ServletSecurityElement(HttpConstraintElement p0, Collection p1){} - public ServletSecurityElement(ServletSecurity p0){} -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/SessionCookieConfig.java b/java/ql/test/stubs/javafx-web/javax/servlet/SessionCookieConfig.java deleted file mode 100644 index 4cae9a11f30..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/SessionCookieConfig.java +++ /dev/null @@ -1,22 +0,0 @@ -// Generated automatically from javax.servlet.SessionCookieConfig for testing purposes - -package javax.servlet; - - -public interface SessionCookieConfig -{ - String getComment(); - String getDomain(); - String getName(); - String getPath(); - boolean isHttpOnly(); - boolean isSecure(); - int getMaxAge(); - void setComment(String p0); - void setDomain(String p0); - void setHttpOnly(boolean p0); - void setMaxAge(int p0); - void setName(String p0); - void setPath(String p0); - void setSecure(boolean p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/SessionTrackingMode.java b/java/ql/test/stubs/javafx-web/javax/servlet/SessionTrackingMode.java deleted file mode 100644 index 684ac40c56f..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/SessionTrackingMode.java +++ /dev/null @@ -1,10 +0,0 @@ -// Generated automatically from javax.servlet.SessionTrackingMode for testing purposes - -package javax.servlet; - - -public enum SessionTrackingMode -{ - COOKIE, SSL, URL; - private SessionTrackingMode() {} -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/WriteListener.java b/java/ql/test/stubs/javafx-web/javax/servlet/WriteListener.java deleted file mode 100644 index 24fe504271c..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/WriteListener.java +++ /dev/null @@ -1,11 +0,0 @@ -// Generated automatically from javax.servlet.WriteListener for testing purposes - -package javax.servlet; - -import java.util.EventListener; - -public interface WriteListener extends EventListener -{ - void onError(Throwable p0); - void onWritePossible(); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/annotation/HttpConstraint.java b/java/ql/test/stubs/javafx-web/javax/servlet/annotation/HttpConstraint.java deleted file mode 100644 index f47efc62744..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/annotation/HttpConstraint.java +++ /dev/null @@ -1,18 +0,0 @@ -// Generated automatically from javax.servlet.annotation.HttpConstraint for testing purposes - -package javax.servlet.annotation; - -import java.lang.annotation.Annotation; -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import javax.servlet.annotation.ServletSecurity; - -@Documented -@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) -public @interface HttpConstraint -{ - ServletSecurity.EmptyRoleSemantic value(); - ServletSecurity.TransportGuarantee transportGuarantee(); - String[] rolesAllowed(); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/annotation/HttpMethodConstraint.java b/java/ql/test/stubs/javafx-web/javax/servlet/annotation/HttpMethodConstraint.java deleted file mode 100644 index 288f4651018..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/annotation/HttpMethodConstraint.java +++ /dev/null @@ -1,19 +0,0 @@ -// Generated automatically from javax.servlet.annotation.HttpMethodConstraint for testing purposes - -package javax.servlet.annotation; - -import java.lang.annotation.Annotation; -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import javax.servlet.annotation.ServletSecurity; - -@Documented -@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) -public @interface HttpMethodConstraint -{ - ServletSecurity.EmptyRoleSemantic emptyRoleSemantic(); - ServletSecurity.TransportGuarantee transportGuarantee(); - String value(); - String[] rolesAllowed(); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/annotation/MultipartConfig.java b/java/ql/test/stubs/javafx-web/javax/servlet/annotation/MultipartConfig.java deleted file mode 100644 index baccad3e199..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/annotation/MultipartConfig.java +++ /dev/null @@ -1,19 +0,0 @@ -// Generated automatically from javax.servlet.annotation.MultipartConfig for testing purposes - -package javax.servlet.annotation; - -import java.lang.annotation.Annotation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) -@Target(value={java.lang.annotation.ElementType.TYPE}) -public @interface MultipartConfig -{ - String location(); - int fileSizeThreshold(); - long maxFileSize(); - long maxRequestSize(); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/annotation/ServletSecurity.java b/java/ql/test/stubs/javafx-web/javax/servlet/annotation/ServletSecurity.java deleted file mode 100644 index 021b6c64c2a..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/annotation/ServletSecurity.java +++ /dev/null @@ -1,33 +0,0 @@ -// Generated automatically from javax.servlet.annotation.ServletSecurity for testing purposes - -package javax.servlet.annotation; - -import java.lang.annotation.Annotation; -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import javax.servlet.annotation.HttpConstraint; -import javax.servlet.annotation.HttpMethodConstraint; - -@Documented -@Inherited -@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) -@Target(value={java.lang.annotation.ElementType.TYPE}) -public @interface ServletSecurity -{ - HttpConstraint value(); - HttpMethodConstraint[] httpMethodConstraints(); - static public enum EmptyRoleSemantic - { - DENY, PERMIT; - private EmptyRoleSemantic() {} - } - static public enum TransportGuarantee - { - CONFIDENTIAL, NONE; - private TransportGuarantee() {} - } -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/descriptor/JspConfigDescriptor.java b/java/ql/test/stubs/javafx-web/javax/servlet/descriptor/JspConfigDescriptor.java deleted file mode 100644 index 8d93a4318d7..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/descriptor/JspConfigDescriptor.java +++ /dev/null @@ -1,13 +0,0 @@ -// Generated automatically from javax.servlet.descriptor.JspConfigDescriptor for testing purposes - -package javax.servlet.descriptor; - -import java.util.Collection; -import javax.servlet.descriptor.JspPropertyGroupDescriptor; -import javax.servlet.descriptor.TaglibDescriptor; - -public interface JspConfigDescriptor -{ - Collection getJspPropertyGroups(); - Collection getTaglibs(); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/descriptor/JspPropertyGroupDescriptor.java b/java/ql/test/stubs/javafx-web/javax/servlet/descriptor/JspPropertyGroupDescriptor.java deleted file mode 100644 index dd852fa1088..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/descriptor/JspPropertyGroupDescriptor.java +++ /dev/null @@ -1,21 +0,0 @@ -// Generated automatically from javax.servlet.descriptor.JspPropertyGroupDescriptor for testing purposes - -package javax.servlet.descriptor; - -import java.util.Collection; - -public interface JspPropertyGroupDescriptor -{ - Collection getIncludeCodas(); - Collection getIncludePreludes(); - Collection getUrlPatterns(); - String getBuffer(); - String getDefaultContentType(); - String getDeferredSyntaxAllowedAsLiteral(); - String getElIgnored(); - String getErrorOnUndeclaredNamespace(); - String getIsXml(); - String getPageEncoding(); - String getScriptingInvalid(); - String getTrimDirectiveWhitespaces(); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/descriptor/TaglibDescriptor.java b/java/ql/test/stubs/javafx-web/javax/servlet/descriptor/TaglibDescriptor.java deleted file mode 100644 index c3dd5c10473..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/descriptor/TaglibDescriptor.java +++ /dev/null @@ -1,10 +0,0 @@ -// Generated automatically from javax.servlet.descriptor.TaglibDescriptor for testing purposes - -package javax.servlet.descriptor; - - -public interface TaglibDescriptor -{ - String getTaglibLocation(); - String getTaglibURI(); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/Cookie.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/Cookie.java deleted file mode 100644 index b5a180029be..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/Cookie.java +++ /dev/null @@ -1,29 +0,0 @@ -// Generated automatically from javax.servlet.http.Cookie for testing purposes - -package javax.servlet.http; - -import java.io.Serializable; - -public class Cookie implements Cloneable, Serializable -{ - protected Cookie() {} - public Cookie(String p0, String p1){} - public Object clone(){ return null; } - public String getComment(){ return null; } - public String getDomain(){ return null; } - public String getName(){ return null; } - public String getPath(){ return null; } - public String getValue(){ return null; } - public boolean getSecure(){ return false; } - public boolean isHttpOnly(){ return false; } - public int getMaxAge(){ return 0; } - public int getVersion(){ return 0; } - public void setComment(String p0){} - public void setDomain(String p0){} - public void setHttpOnly(boolean p0){} - public void setMaxAge(int p0){} - public void setPath(String p0){} - public void setSecure(boolean p0){} - public void setValue(String p0){} - public void setVersion(int p0){} -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServlet.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServlet.java deleted file mode 100644 index 1247f956d78..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServlet.java +++ /dev/null @@ -1,24 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpServlet for testing purposes - -package javax.servlet.http; - -import javax.servlet.GenericServlet; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -abstract public class HttpServlet extends GenericServlet -{ - protected long getLastModified(HttpServletRequest p0){ return 0; } - protected void doDelete(HttpServletRequest p0, HttpServletResponse p1){} - protected void doGet(HttpServletRequest p0, HttpServletResponse p1){} - protected void doHead(HttpServletRequest p0, HttpServletResponse p1){} - protected void doOptions(HttpServletRequest p0, HttpServletResponse p1){} - protected void doPost(HttpServletRequest p0, HttpServletResponse p1){} - protected void doPut(HttpServletRequest p0, HttpServletResponse p1){} - protected void doTrace(HttpServletRequest p0, HttpServletResponse p1){} - protected void service(HttpServletRequest p0, HttpServletResponse p1){} - public HttpServlet(){} - public void service(ServletRequest p0, ServletResponse p1){} -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletMapping.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletMapping.java deleted file mode 100644 index 1b597f27773..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletMapping.java +++ /dev/null @@ -1,13 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpServletMapping for testing purposes - -package javax.servlet.http; - -import javax.servlet.http.MappingMatch; - -public interface HttpServletMapping -{ - MappingMatch getMappingMatch(); - String getMatchValue(); - String getPattern(); - String getServletName(); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletRequest.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletRequest.java deleted file mode 100644 index 8612c34fb69..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletRequest.java +++ /dev/null @@ -1,60 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpServletRequest for testing purposes - -package javax.servlet.http; - -import java.security.Principal; -import java.util.Collection; -import java.util.Enumeration; -import java.util.Map; -import javax.servlet.ServletRequest; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletMapping; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpUpgradeHandler; -import javax.servlet.http.Part; -import javax.servlet.http.PushBuilder; - -public interface HttpServletRequest extends ServletRequest -{ - T upgrade(java.lang.Class p0); - Collection getParts(); - Cookie[] getCookies(); - Enumeration getHeaderNames(); - Enumeration getHeaders(String p0); - HttpSession getSession(); - HttpSession getSession(boolean p0); - Part getPart(String p0); - Principal getUserPrincipal(); - String changeSessionId(); - String getAuthType(); - String getContextPath(); - String getHeader(String p0); - String getMethod(); - String getPathInfo(); - String getPathTranslated(); - String getQueryString(); - String getRemoteUser(); - String getRequestURI(); - String getRequestedSessionId(); - String getServletPath(); - StringBuffer getRequestURL(); - boolean authenticate(HttpServletResponse p0); - boolean isRequestedSessionIdFromCookie(); - boolean isRequestedSessionIdFromURL(); - boolean isRequestedSessionIdFromUrl(); - boolean isRequestedSessionIdValid(); - boolean isUserInRole(String p0); - default HttpServletMapping getHttpServletMapping(){ return null; } - default Map getTrailerFields(){ return null; } - default PushBuilder newPushBuilder(){ return null; } - default boolean isTrailerFieldsReady(){ return false; } - int getIntHeader(String p0); - long getDateHeader(String p0); - static String BASIC_AUTH = null; - static String CLIENT_CERT_AUTH = null; - static String DIGEST_AUTH = null; - static String FORM_AUTH = null; - void login(String p0, String p1); - void logout(); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletResponse.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletResponse.java deleted file mode 100644 index da902dbf30c..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpServletResponse.java +++ /dev/null @@ -1,77 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpServletResponse for testing purposes - -package javax.servlet.http; - -import java.util.Collection; -import java.util.Map; -import java.util.function.Supplier; -import javax.servlet.ServletResponse; -import javax.servlet.http.Cookie; - -public interface HttpServletResponse extends ServletResponse -{ - Collection getHeaderNames(); - Collection getHeaders(String p0); - String encodeRedirectURL(String p0); - String encodeRedirectUrl(String p0); - String encodeURL(String p0); - String encodeUrl(String p0); - String getHeader(String p0); - boolean containsHeader(String p0); - default Supplier> getTrailerFields(){ return null; } - default void setTrailerFields(Supplier> p0){} - int getStatus(); - static int SC_ACCEPTED = 0; - static int SC_BAD_GATEWAY = 0; - static int SC_BAD_REQUEST = 0; - static int SC_CONFLICT = 0; - static int SC_CONTINUE = 0; - static int SC_CREATED = 0; - static int SC_EXPECTATION_FAILED = 0; - static int SC_FORBIDDEN = 0; - static int SC_FOUND = 0; - static int SC_GATEWAY_TIMEOUT = 0; - static int SC_GONE = 0; - static int SC_HTTP_VERSION_NOT_SUPPORTED = 0; - static int SC_INTERNAL_SERVER_ERROR = 0; - static int SC_LENGTH_REQUIRED = 0; - static int SC_METHOD_NOT_ALLOWED = 0; - static int SC_MOVED_PERMANENTLY = 0; - static int SC_MOVED_TEMPORARILY = 0; - static int SC_MULTIPLE_CHOICES = 0; - static int SC_NON_AUTHORITATIVE_INFORMATION = 0; - static int SC_NOT_ACCEPTABLE = 0; - static int SC_NOT_FOUND = 0; - static int SC_NOT_IMPLEMENTED = 0; - static int SC_NOT_MODIFIED = 0; - static int SC_NO_CONTENT = 0; - static int SC_OK = 0; - static int SC_PARTIAL_CONTENT = 0; - static int SC_PAYMENT_REQUIRED = 0; - static int SC_PRECONDITION_FAILED = 0; - static int SC_PROXY_AUTHENTICATION_REQUIRED = 0; - static int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 0; - static int SC_REQUEST_ENTITY_TOO_LARGE = 0; - static int SC_REQUEST_TIMEOUT = 0; - static int SC_REQUEST_URI_TOO_LONG = 0; - static int SC_RESET_CONTENT = 0; - static int SC_SEE_OTHER = 0; - static int SC_SERVICE_UNAVAILABLE = 0; - static int SC_SWITCHING_PROTOCOLS = 0; - static int SC_TEMPORARY_REDIRECT = 0; - static int SC_UNAUTHORIZED = 0; - static int SC_UNSUPPORTED_MEDIA_TYPE = 0; - static int SC_USE_PROXY = 0; - void addCookie(Cookie p0); - void addDateHeader(String p0, long p1); - void addHeader(String p0, String p1); - void addIntHeader(String p0, int p1); - void sendError(int p0); - void sendError(int p0, String p1); - void sendRedirect(String p0); - void setDateHeader(String p0, long p1); - void setHeader(String p0, String p1); - void setIntHeader(String p0, int p1); - void setStatus(int p0); - void setStatus(int p0, String p1); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpSession.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpSession.java deleted file mode 100644 index f8f455b1423..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpSession.java +++ /dev/null @@ -1,28 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpSession for testing purposes - -package javax.servlet.http; - -import java.util.Enumeration; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpSessionContext; - -public interface HttpSession -{ - Enumeration getAttributeNames(); - HttpSessionContext getSessionContext(); - Object getAttribute(String p0); - Object getValue(String p0); - ServletContext getServletContext(); - String getId(); - String[] getValueNames(); - boolean isNew(); - int getMaxInactiveInterval(); - long getCreationTime(); - long getLastAccessedTime(); - void invalidate(); - void putValue(String p0, Object p1); - void removeAttribute(String p0); - void removeValue(String p0); - void setAttribute(String p0, Object p1); - void setMaxInactiveInterval(int p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpSessionContext.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpSessionContext.java deleted file mode 100644 index 97a77b48358..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpSessionContext.java +++ /dev/null @@ -1,12 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpSessionContext for testing purposes - -package javax.servlet.http; - -import java.util.Enumeration; -import javax.servlet.http.HttpSession; - -public interface HttpSessionContext -{ - Enumeration getIds(); - HttpSession getSession(String p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpUpgradeHandler.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpUpgradeHandler.java deleted file mode 100644 index 987d49dbde2..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/HttpUpgradeHandler.java +++ /dev/null @@ -1,11 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpUpgradeHandler for testing purposes - -package javax.servlet.http; - -import javax.servlet.http.WebConnection; - -public interface HttpUpgradeHandler -{ - void destroy(); - void init(WebConnection p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/MappingMatch.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/MappingMatch.java deleted file mode 100644 index 0432fd2ef7d..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/MappingMatch.java +++ /dev/null @@ -1,10 +0,0 @@ -// Generated automatically from javax.servlet.http.MappingMatch for testing purposes - -package javax.servlet.http; - - -public enum MappingMatch -{ - CONTEXT_ROOT, DEFAULT, EXACT, EXTENSION, PATH; - private MappingMatch() {} -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/Part.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/Part.java deleted file mode 100644 index a4e599748a5..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/Part.java +++ /dev/null @@ -1,20 +0,0 @@ -// Generated automatically from javax.servlet.http.Part for testing purposes - -package javax.servlet.http; - -import java.io.InputStream; -import java.util.Collection; - -public interface Part -{ - Collection getHeaderNames(); - Collection getHeaders(String p0); - InputStream getInputStream(); - String getContentType(); - String getHeader(String p0); - String getName(); - String getSubmittedFileName(); - long getSize(); - void delete(); - void write(String p0); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/PushBuilder.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/PushBuilder.java deleted file mode 100644 index 195e2426a83..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/PushBuilder.java +++ /dev/null @@ -1,23 +0,0 @@ -// Generated automatically from javax.servlet.http.PushBuilder for testing purposes - -package javax.servlet.http; - -import java.util.Set; - -public interface PushBuilder -{ - PushBuilder addHeader(String p0, String p1); - PushBuilder method(String p0); - PushBuilder path(String p0); - PushBuilder queryString(String p0); - PushBuilder removeHeader(String p0); - PushBuilder sessionId(String p0); - PushBuilder setHeader(String p0, String p1); - Set getHeaderNames(); - String getHeader(String p0); - String getMethod(); - String getPath(); - String getQueryString(); - String getSessionId(); - void push(); -} diff --git a/java/ql/test/stubs/javafx-web/javax/servlet/http/WebConnection.java b/java/ql/test/stubs/javafx-web/javax/servlet/http/WebConnection.java deleted file mode 100644 index 5001c046400..00000000000 --- a/java/ql/test/stubs/javafx-web/javax/servlet/http/WebConnection.java +++ /dev/null @@ -1,12 +0,0 @@ -// Generated automatically from javax.servlet.http.WebConnection for testing purposes - -package javax.servlet.http; - -import javax.servlet.ServletInputStream; -import javax.servlet.ServletOutputStream; - -public interface WebConnection extends AutoCloseable -{ - ServletInputStream getInputStream(); - ServletOutputStream getOutputStream(); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpConstraint.java b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpConstraint.java deleted file mode 100644 index f47efc62744..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpConstraint.java +++ /dev/null @@ -1,18 +0,0 @@ -// Generated automatically from javax.servlet.annotation.HttpConstraint for testing purposes - -package javax.servlet.annotation; - -import java.lang.annotation.Annotation; -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import javax.servlet.annotation.ServletSecurity; - -@Documented -@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) -public @interface HttpConstraint -{ - ServletSecurity.EmptyRoleSemantic value(); - ServletSecurity.TransportGuarantee transportGuarantee(); - String[] rolesAllowed(); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpMethodConstraint.java b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpMethodConstraint.java deleted file mode 100644 index 288f4651018..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/HttpMethodConstraint.java +++ /dev/null @@ -1,19 +0,0 @@ -// Generated automatically from javax.servlet.annotation.HttpMethodConstraint for testing purposes - -package javax.servlet.annotation; - -import java.lang.annotation.Annotation; -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import javax.servlet.annotation.ServletSecurity; - -@Documented -@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) -public @interface HttpMethodConstraint -{ - ServletSecurity.EmptyRoleSemantic emptyRoleSemantic(); - ServletSecurity.TransportGuarantee transportGuarantee(); - String value(); - String[] rolesAllowed(); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/MultipartConfig.java b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/MultipartConfig.java deleted file mode 100644 index baccad3e199..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/MultipartConfig.java +++ /dev/null @@ -1,19 +0,0 @@ -// Generated automatically from javax.servlet.annotation.MultipartConfig for testing purposes - -package javax.servlet.annotation; - -import java.lang.annotation.Annotation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) -@Target(value={java.lang.annotation.ElementType.TYPE}) -public @interface MultipartConfig -{ - String location(); - int fileSizeThreshold(); - long maxFileSize(); - long maxRequestSize(); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/ServletSecurity.java b/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/ServletSecurity.java deleted file mode 100644 index 021b6c64c2a..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/annotation/ServletSecurity.java +++ /dev/null @@ -1,33 +0,0 @@ -// Generated automatically from javax.servlet.annotation.ServletSecurity for testing purposes - -package javax.servlet.annotation; - -import java.lang.annotation.Annotation; -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import javax.servlet.annotation.HttpConstraint; -import javax.servlet.annotation.HttpMethodConstraint; - -@Documented -@Inherited -@Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) -@Target(value={java.lang.annotation.ElementType.TYPE}) -public @interface ServletSecurity -{ - HttpConstraint value(); - HttpMethodConstraint[] httpMethodConstraints(); - static public enum EmptyRoleSemantic - { - DENY, PERMIT; - private EmptyRoleSemantic() {} - } - static public enum TransportGuarantee - { - CONFIDENTIAL, NONE; - private TransportGuarantee() {} - } -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspConfigDescriptor.java b/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspConfigDescriptor.java deleted file mode 100644 index 8d93a4318d7..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspConfigDescriptor.java +++ /dev/null @@ -1,13 +0,0 @@ -// Generated automatically from javax.servlet.descriptor.JspConfigDescriptor for testing purposes - -package javax.servlet.descriptor; - -import java.util.Collection; -import javax.servlet.descriptor.JspPropertyGroupDescriptor; -import javax.servlet.descriptor.TaglibDescriptor; - -public interface JspConfigDescriptor -{ - Collection getJspPropertyGroups(); - Collection getTaglibs(); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspPropertyGroupDescriptor.java b/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspPropertyGroupDescriptor.java deleted file mode 100644 index dd852fa1088..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/JspPropertyGroupDescriptor.java +++ /dev/null @@ -1,21 +0,0 @@ -// Generated automatically from javax.servlet.descriptor.JspPropertyGroupDescriptor for testing purposes - -package javax.servlet.descriptor; - -import java.util.Collection; - -public interface JspPropertyGroupDescriptor -{ - Collection getIncludeCodas(); - Collection getIncludePreludes(); - Collection getUrlPatterns(); - String getBuffer(); - String getDefaultContentType(); - String getDeferredSyntaxAllowedAsLiteral(); - String getElIgnored(); - String getErrorOnUndeclaredNamespace(); - String getIsXml(); - String getPageEncoding(); - String getScriptingInvalid(); - String getTrimDirectiveWhitespaces(); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/TaglibDescriptor.java b/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/TaglibDescriptor.java deleted file mode 100644 index c3dd5c10473..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/descriptor/TaglibDescriptor.java +++ /dev/null @@ -1,10 +0,0 @@ -// Generated automatically from javax.servlet.descriptor.TaglibDescriptor for testing purposes - -package javax.servlet.descriptor; - - -public interface TaglibDescriptor -{ - String getTaglibLocation(); - String getTaglibURI(); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/Cookie.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/Cookie.java deleted file mode 100644 index b5a180029be..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/Cookie.java +++ /dev/null @@ -1,29 +0,0 @@ -// Generated automatically from javax.servlet.http.Cookie for testing purposes - -package javax.servlet.http; - -import java.io.Serializable; - -public class Cookie implements Cloneable, Serializable -{ - protected Cookie() {} - public Cookie(String p0, String p1){} - public Object clone(){ return null; } - public String getComment(){ return null; } - public String getDomain(){ return null; } - public String getName(){ return null; } - public String getPath(){ return null; } - public String getValue(){ return null; } - public boolean getSecure(){ return false; } - public boolean isHttpOnly(){ return false; } - public int getMaxAge(){ return 0; } - public int getVersion(){ return 0; } - public void setComment(String p0){} - public void setDomain(String p0){} - public void setHttpOnly(boolean p0){} - public void setMaxAge(int p0){} - public void setPath(String p0){} - public void setSecure(boolean p0){} - public void setValue(String p0){} - public void setVersion(int p0){} -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServlet.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServlet.java deleted file mode 100644 index 1247f956d78..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServlet.java +++ /dev/null @@ -1,24 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpServlet for testing purposes - -package javax.servlet.http; - -import javax.servlet.GenericServlet; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -abstract public class HttpServlet extends GenericServlet -{ - protected long getLastModified(HttpServletRequest p0){ return 0; } - protected void doDelete(HttpServletRequest p0, HttpServletResponse p1){} - protected void doGet(HttpServletRequest p0, HttpServletResponse p1){} - protected void doHead(HttpServletRequest p0, HttpServletResponse p1){} - protected void doOptions(HttpServletRequest p0, HttpServletResponse p1){} - protected void doPost(HttpServletRequest p0, HttpServletResponse p1){} - protected void doPut(HttpServletRequest p0, HttpServletResponse p1){} - protected void doTrace(HttpServletRequest p0, HttpServletResponse p1){} - protected void service(HttpServletRequest p0, HttpServletResponse p1){} - public HttpServlet(){} - public void service(ServletRequest p0, ServletResponse p1){} -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletMapping.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletMapping.java deleted file mode 100644 index 1b597f27773..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletMapping.java +++ /dev/null @@ -1,13 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpServletMapping for testing purposes - -package javax.servlet.http; - -import javax.servlet.http.MappingMatch; - -public interface HttpServletMapping -{ - MappingMatch getMappingMatch(); - String getMatchValue(); - String getPattern(); - String getServletName(); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequest.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequest.java deleted file mode 100644 index 8612c34fb69..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequest.java +++ /dev/null @@ -1,60 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpServletRequest for testing purposes - -package javax.servlet.http; - -import java.security.Principal; -import java.util.Collection; -import java.util.Enumeration; -import java.util.Map; -import javax.servlet.ServletRequest; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletMapping; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpUpgradeHandler; -import javax.servlet.http.Part; -import javax.servlet.http.PushBuilder; - -public interface HttpServletRequest extends ServletRequest -{ - T upgrade(java.lang.Class p0); - Collection getParts(); - Cookie[] getCookies(); - Enumeration getHeaderNames(); - Enumeration getHeaders(String p0); - HttpSession getSession(); - HttpSession getSession(boolean p0); - Part getPart(String p0); - Principal getUserPrincipal(); - String changeSessionId(); - String getAuthType(); - String getContextPath(); - String getHeader(String p0); - String getMethod(); - String getPathInfo(); - String getPathTranslated(); - String getQueryString(); - String getRemoteUser(); - String getRequestURI(); - String getRequestedSessionId(); - String getServletPath(); - StringBuffer getRequestURL(); - boolean authenticate(HttpServletResponse p0); - boolean isRequestedSessionIdFromCookie(); - boolean isRequestedSessionIdFromURL(); - boolean isRequestedSessionIdFromUrl(); - boolean isRequestedSessionIdValid(); - boolean isUserInRole(String p0); - default HttpServletMapping getHttpServletMapping(){ return null; } - default Map getTrailerFields(){ return null; } - default PushBuilder newPushBuilder(){ return null; } - default boolean isTrailerFieldsReady(){ return false; } - int getIntHeader(String p0); - long getDateHeader(String p0); - static String BASIC_AUTH = null; - static String CLIENT_CERT_AUTH = null; - static String DIGEST_AUTH = null; - static String FORM_AUTH = null; - void login(String p0, String p1); - void logout(); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequestWrapper.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequestWrapper.java deleted file mode 100644 index 84a62cba278..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletRequestWrapper.java +++ /dev/null @@ -1,59 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpServletRequestWrapper for testing purposes - -package javax.servlet.http; - -import java.security.Principal; -import java.util.Collection; -import java.util.Enumeration; -import java.util.Map; -import javax.servlet.ServletRequestWrapper; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletMapping; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpUpgradeHandler; -import javax.servlet.http.Part; -import javax.servlet.http.PushBuilder; - -public class HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest -{ - protected HttpServletRequestWrapper() {} - public T upgrade(java.lang.Class p0){ return null; } - public Collection getParts(){ return null; } - public Cookie[] getCookies(){ return null; } - public Enumeration getHeaderNames(){ return null; } - public Enumeration getHeaders(String p0){ return null; } - public HttpServletMapping getHttpServletMapping(){ return null; } - public HttpServletRequestWrapper(HttpServletRequest p0){} - public HttpSession getSession(){ return null; } - public HttpSession getSession(boolean p0){ return null; } - public Map getTrailerFields(){ return null; } - public Part getPart(String p0){ return null; } - public Principal getUserPrincipal(){ return null; } - public PushBuilder newPushBuilder(){ return null; } - public String changeSessionId(){ return null; } - public String getAuthType(){ return null; } - public String getContextPath(){ return null; } - public String getHeader(String p0){ return null; } - public String getMethod(){ return null; } - public String getPathInfo(){ return null; } - public String getPathTranslated(){ return null; } - public String getQueryString(){ return null; } - public String getRemoteUser(){ return null; } - public String getRequestURI(){ return null; } - public String getRequestedSessionId(){ return null; } - public String getServletPath(){ return null; } - public StringBuffer getRequestURL(){ return null; } - public boolean authenticate(HttpServletResponse p0){ return false; } - public boolean isRequestedSessionIdFromCookie(){ return false; } - public boolean isRequestedSessionIdFromURL(){ return false; } - public boolean isRequestedSessionIdFromUrl(){ return false; } - public boolean isRequestedSessionIdValid(){ return false; } - public boolean isTrailerFieldsReady(){ return false; } - public boolean isUserInRole(String p0){ return false; } - public int getIntHeader(String p0){ return 0; } - public long getDateHeader(String p0){ return 0; } - public void login(String p0, String p1){} - public void logout(){} -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponse.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponse.java deleted file mode 100644 index da902dbf30c..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponse.java +++ /dev/null @@ -1,77 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpServletResponse for testing purposes - -package javax.servlet.http; - -import java.util.Collection; -import java.util.Map; -import java.util.function.Supplier; -import javax.servlet.ServletResponse; -import javax.servlet.http.Cookie; - -public interface HttpServletResponse extends ServletResponse -{ - Collection getHeaderNames(); - Collection getHeaders(String p0); - String encodeRedirectURL(String p0); - String encodeRedirectUrl(String p0); - String encodeURL(String p0); - String encodeUrl(String p0); - String getHeader(String p0); - boolean containsHeader(String p0); - default Supplier> getTrailerFields(){ return null; } - default void setTrailerFields(Supplier> p0){} - int getStatus(); - static int SC_ACCEPTED = 0; - static int SC_BAD_GATEWAY = 0; - static int SC_BAD_REQUEST = 0; - static int SC_CONFLICT = 0; - static int SC_CONTINUE = 0; - static int SC_CREATED = 0; - static int SC_EXPECTATION_FAILED = 0; - static int SC_FORBIDDEN = 0; - static int SC_FOUND = 0; - static int SC_GATEWAY_TIMEOUT = 0; - static int SC_GONE = 0; - static int SC_HTTP_VERSION_NOT_SUPPORTED = 0; - static int SC_INTERNAL_SERVER_ERROR = 0; - static int SC_LENGTH_REQUIRED = 0; - static int SC_METHOD_NOT_ALLOWED = 0; - static int SC_MOVED_PERMANENTLY = 0; - static int SC_MOVED_TEMPORARILY = 0; - static int SC_MULTIPLE_CHOICES = 0; - static int SC_NON_AUTHORITATIVE_INFORMATION = 0; - static int SC_NOT_ACCEPTABLE = 0; - static int SC_NOT_FOUND = 0; - static int SC_NOT_IMPLEMENTED = 0; - static int SC_NOT_MODIFIED = 0; - static int SC_NO_CONTENT = 0; - static int SC_OK = 0; - static int SC_PARTIAL_CONTENT = 0; - static int SC_PAYMENT_REQUIRED = 0; - static int SC_PRECONDITION_FAILED = 0; - static int SC_PROXY_AUTHENTICATION_REQUIRED = 0; - static int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 0; - static int SC_REQUEST_ENTITY_TOO_LARGE = 0; - static int SC_REQUEST_TIMEOUT = 0; - static int SC_REQUEST_URI_TOO_LONG = 0; - static int SC_RESET_CONTENT = 0; - static int SC_SEE_OTHER = 0; - static int SC_SERVICE_UNAVAILABLE = 0; - static int SC_SWITCHING_PROTOCOLS = 0; - static int SC_TEMPORARY_REDIRECT = 0; - static int SC_UNAUTHORIZED = 0; - static int SC_UNSUPPORTED_MEDIA_TYPE = 0; - static int SC_USE_PROXY = 0; - void addCookie(Cookie p0); - void addDateHeader(String p0, long p1); - void addHeader(String p0, String p1); - void addIntHeader(String p0, int p1); - void sendError(int p0); - void sendError(int p0, String p1); - void sendRedirect(String p0); - void setDateHeader(String p0, long p1); - void setHeader(String p0, String p1); - void setIntHeader(String p0, int p1); - void setStatus(int p0); - void setStatus(int p0, String p1); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponseWrapper.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponseWrapper.java deleted file mode 100644 index 01f33f73794..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpServletResponseWrapper.java +++ /dev/null @@ -1,39 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpServletResponseWrapper for testing purposes - -package javax.servlet.http; - -import java.util.Collection; -import java.util.Map; -import java.util.function.Supplier; -import javax.servlet.ServletResponseWrapper; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletResponse; - -public class HttpServletResponseWrapper extends ServletResponseWrapper implements HttpServletResponse -{ - protected HttpServletResponseWrapper() {} - public Collection getHeaderNames(){ return null; } - public Collection getHeaders(String p0){ return null; } - public HttpServletResponseWrapper(HttpServletResponse p0){} - public String encodeRedirectURL(String p0){ return null; } - public String encodeRedirectUrl(String p0){ return null; } - public String encodeURL(String p0){ return null; } - public String encodeUrl(String p0){ return null; } - public String getHeader(String p0){ return null; } - public Supplier> getTrailerFields(){ return null; } - public boolean containsHeader(String p0){ return false; } - public int getStatus(){ return 0; } - public void addCookie(Cookie p0){} - public void addDateHeader(String p0, long p1){} - public void addHeader(String p0, String p1){} - public void addIntHeader(String p0, int p1){} - public void sendError(int p0){} - public void sendError(int p0, String p1){} - public void sendRedirect(String p0){} - public void setDateHeader(String p0, long p1){} - public void setHeader(String p0, String p1){} - public void setIntHeader(String p0, int p1){} - public void setStatus(int p0){} - public void setStatus(int p0, String p1){} - public void setTrailerFields(Supplier> p0){} -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSession.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSession.java deleted file mode 100644 index f8f455b1423..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSession.java +++ /dev/null @@ -1,28 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpSession for testing purposes - -package javax.servlet.http; - -import java.util.Enumeration; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpSessionContext; - -public interface HttpSession -{ - Enumeration getAttributeNames(); - HttpSessionContext getSessionContext(); - Object getAttribute(String p0); - Object getValue(String p0); - ServletContext getServletContext(); - String getId(); - String[] getValueNames(); - boolean isNew(); - int getMaxInactiveInterval(); - long getCreationTime(); - long getLastAccessedTime(); - void invalidate(); - void putValue(String p0, Object p1); - void removeAttribute(String p0); - void removeValue(String p0); - void setAttribute(String p0, Object p1); - void setMaxInactiveInterval(int p0); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSessionContext.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSessionContext.java deleted file mode 100644 index 97a77b48358..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpSessionContext.java +++ /dev/null @@ -1,12 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpSessionContext for testing purposes - -package javax.servlet.http; - -import java.util.Enumeration; -import javax.servlet.http.HttpSession; - -public interface HttpSessionContext -{ - Enumeration getIds(); - HttpSession getSession(String p0); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpUpgradeHandler.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpUpgradeHandler.java deleted file mode 100644 index 987d49dbde2..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/HttpUpgradeHandler.java +++ /dev/null @@ -1,11 +0,0 @@ -// Generated automatically from javax.servlet.http.HttpUpgradeHandler for testing purposes - -package javax.servlet.http; - -import javax.servlet.http.WebConnection; - -public interface HttpUpgradeHandler -{ - void destroy(); - void init(WebConnection p0); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/MappingMatch.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/MappingMatch.java deleted file mode 100644 index 0432fd2ef7d..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/MappingMatch.java +++ /dev/null @@ -1,10 +0,0 @@ -// Generated automatically from javax.servlet.http.MappingMatch for testing purposes - -package javax.servlet.http; - - -public enum MappingMatch -{ - CONTEXT_ROOT, DEFAULT, EXACT, EXTENSION, PATH; - private MappingMatch() {} -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/Part.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/Part.java deleted file mode 100644 index a4e599748a5..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/Part.java +++ /dev/null @@ -1,20 +0,0 @@ -// Generated automatically from javax.servlet.http.Part for testing purposes - -package javax.servlet.http; - -import java.io.InputStream; -import java.util.Collection; - -public interface Part -{ - Collection getHeaderNames(); - Collection getHeaders(String p0); - InputStream getInputStream(); - String getContentType(); - String getHeader(String p0); - String getName(); - String getSubmittedFileName(); - long getSize(); - void delete(); - void write(String p0); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/PushBuilder.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/PushBuilder.java deleted file mode 100644 index 195e2426a83..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/PushBuilder.java +++ /dev/null @@ -1,23 +0,0 @@ -// Generated automatically from javax.servlet.http.PushBuilder for testing purposes - -package javax.servlet.http; - -import java.util.Set; - -public interface PushBuilder -{ - PushBuilder addHeader(String p0, String p1); - PushBuilder method(String p0); - PushBuilder path(String p0); - PushBuilder queryString(String p0); - PushBuilder removeHeader(String p0); - PushBuilder sessionId(String p0); - PushBuilder setHeader(String p0, String p1); - Set getHeaderNames(); - String getHeader(String p0); - String getMethod(); - String getPath(); - String getQueryString(); - String getSessionId(); - void push(); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/http/WebConnection.java b/java/ql/test/stubs/javax-servlet-2.5/javax/http/WebConnection.java deleted file mode 100644 index 5001c046400..00000000000 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/http/WebConnection.java +++ /dev/null @@ -1,12 +0,0 @@ -// Generated automatically from javax.servlet.http.WebConnection for testing purposes - -package javax.servlet.http; - -import javax.servlet.ServletInputStream; -import javax.servlet.ServletOutputStream; - -public interface WebConnection extends AutoCloseable -{ - ServletInputStream getInputStream(); - ServletOutputStream getOutputStream(); -} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/Filter.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/Filter.java index 64b9f9d73a8..47fb902a3d6 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/Filter.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/Filter.java @@ -1,15 +1,11 @@ -// Generated automatically from javax.servlet.Filter for testing purposes - package javax.servlet; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; +import java.io.IOException; -public interface Filter -{ - default void destroy(){} - default void init(FilterConfig p0){} - void doFilter(ServletRequest p0, ServletResponse p1, FilterChain p2); +public interface Filter { + default public void init(FilterConfig filterConfig) throws ServletException {} + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) + throws IOException, ServletException; + default public void destroy() {} } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/FilterChain.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/FilterChain.java index f64ab722684..b9f9708be56 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/FilterChain.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/FilterChain.java @@ -1,11 +1,7 @@ -// Generated automatically from javax.servlet.FilterChain for testing purposes - package javax.servlet; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; +import java.io.IOException; -public interface FilterChain -{ - void doFilter(ServletRequest p0, ServletResponse p1); +public interface FilterChain { + public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException; } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/FilterConfig.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/FilterConfig.java index 0e140c6680c..85d172231e9 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/FilterConfig.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/FilterConfig.java @@ -1,14 +1,10 @@ -// Generated automatically from javax.servlet.FilterConfig for testing purposes - package javax.servlet; import java.util.Enumeration; -import javax.servlet.ServletContext; -public interface FilterConfig -{ - Enumeration getInitParameterNames(); - ServletContext getServletContext(); - String getFilterName(); - String getInitParameter(String p0); +public interface FilterConfig { + public String getFilterName(); + public ServletContext getServletContext(); + public String getInitParameter(String name); + public Enumeration getInitParameterNames(); } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/GenericServlet.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/GenericServlet.java index 5f7bdcda487..11b6410600a 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/GenericServlet.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/GenericServlet.java @@ -1,28 +1,216 @@ -// Generated automatically from javax.servlet.GenericServlet for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet; -import java.io.Serializable; +import java.io.IOException; import java.util.Enumeration; -import javax.servlet.Servlet; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -abstract public class GenericServlet implements Serializable, Servlet, ServletConfig -{ - public Enumeration getInitParameterNames(){ return null; } - public GenericServlet(){} - public ServletConfig getServletConfig(){ return null; } - public ServletContext getServletContext(){ return null; } - public String getInitParameter(String p0){ return null; } - public String getServletInfo(){ return null; } - public String getServletName(){ return null; } - public abstract void service(ServletRequest p0, ServletResponse p1); - public void destroy(){} - public void init(){} - public void init(ServletConfig p0){} - public void log(String p0){} - public void log(String p0, Throwable p1){} +/** + * + * Defines a generic, protocol-independent + * servlet. To write an HTTP servlet for use on the + * Web, extend {@link javax.servlet.http.HttpServlet} instead. + * + *

GenericServlet implements the Servlet + * and ServletConfig interfaces. GenericServlet + * may be directly extended by a servlet, although it's more common to extend + * a protocol-specific subclass such as HttpServlet. + * + *

GenericServlet makes writing servlets + * easier. It provides simple versions of the lifecycle methods + * init and destroy and of the methods + * in the ServletConfig interface. GenericServlet + * also implements the log method, declared in the + * ServletContext interface. + * + *

To write a generic servlet, you need only + * override the abstract service method. + * + * @version $Rev: 46019 $ $Date: 2004-09-14 04:56:06 -0500 (Tue, 14 Sep 2004) $ + */ +public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable { + + /** + * Does nothing. All of the servlet initialization + * is done by one of the init methods. + */ + public GenericServlet() { + } + + /** + * Called by the servlet container to indicate to a servlet that the + * servlet is being taken out of service. See {@link Servlet#destroy}. + */ + public void destroy() { + } + + /** + * Returns a String containing the value of the named + * initialization parameter, or null if the parameter does + * not exist. See {@link ServletConfig#getInitParameter}. + * + *

This method is supplied for convenience. It gets the + * value of the named parameter from the servlet's + * ServletConfig object. + * + * @param name a String specifying the name + * of the initialization parameter + * + * @return String a String containing the value + * of the initalization parameter + */ + public String getInitParameter(String name) { + return null; + } + + /** + * Returns the names of the servlet's initialization parameters + * as an Enumeration of String objects, + * or an empty Enumeration if the servlet has no + * initialization parameters. See {@link + * ServletConfig#getInitParameterNames}. + * + *

This method is supplied for convenience. It gets the + * parameter names from the servlet's ServletConfig object. + * + * + * @return Enumeration an enumeration of String + * objects containing the names of the servlet's initialization parameters + */ + public Enumeration getInitParameterNames() { + return null; + } + + /** + * Returns this servlet's {@link ServletConfig} object. + * + * @return ServletConfig the ServletConfig object + * that initialized this servlet + */ + public ServletConfig getServletConfig() { + return null; + } + + + /** + * Returns a reference to the {@link ServletContext} in which this servlet + * is running. See {@link ServletConfig#getServletContext}. + * + *

This method is supplied for convenience. It gets the + * context from the servlet's ServletConfig object. + * + * + * @return ServletContext the ServletContext object + * passed to this servlet by the init method + */ + public ServletContext getServletContext() { + return null; + } + + + /** + * Returns information about the servlet, such as + * author, version, and copyright. + * By default, this method returns an empty string. Override this method + * to have it return a meaningful value. See {@link + * Servlet#getServletInfo}. + * + * + * @return String information about this servlet, by default an + * empty string + */ + public String getServletInfo() { + return null; + } + + + /** + * Called by the servlet container to indicate to a servlet that the + * servlet is being placed into service. See {@link Servlet#init}. + * + *

This implementation stores the {@link ServletConfig} + * object it receives from the servlet container for later use. + * When overriding this form of the method, call + * super.init(config). + * + * @param config the ServletConfig object + * that contains configutation information for this servlet + * + * @exception ServletException if an exception occurs that + * interrupts the servlet's normal operation + * + * @see UnavailableException + */ + public void init(ServletConfig config) throws ServletException { + } + + + /** + * A convenience method which can be overridden so that there's no need + * to call super.init(config). + * + *

Instead of overriding {@link #init(ServletConfig)}, simply override + * this method and it will be called by + * GenericServlet.init(ServletConfig config). + * The ServletConfig object can still be retrieved via {@link + * #getServletConfig}. + * + * @exception ServletException if an exception occurs that + * interrupts the servlet's normal operation + */ + public void init() throws ServletException { + } + + + /** + * Called by the servlet container to allow the servlet to respond to + * a request. See {@link Servlet#service}. + * + *

This method is declared abstract so subclasses, such as + * HttpServlet, must override it. + * + * @param req the ServletRequest object + * that contains the client's request + * + * @param res the ServletResponse object + * that will contain the servlet's response + * + * @exception ServletException if an exception occurs that + * interferes with the servlet's normal operation occurred + * + * @exception IOException if an input or output + * exception occurs + */ + public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException; + + /** + * Returns the name of this servlet instance. + * See {@link ServletConfig#getServletName}. + * + * @return the name of this servlet instance + */ + public String getServletName() { + return null; + } } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/RequestDispatcher.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/RequestDispatcher.java index ad017e4f501..0729c1cf6a1 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/RequestDispatcher.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/RequestDispatcher.java @@ -1,30 +1,33 @@ -// Generated automatically from javax.servlet.RequestDispatcher for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; +import java.io.IOException; -public interface RequestDispatcher -{ - static String ERROR_EXCEPTION = null; - static String ERROR_EXCEPTION_TYPE = null; - static String ERROR_MESSAGE = null; - static String ERROR_REQUEST_URI = null; - static String ERROR_SERVLET_NAME = null; - static String ERROR_STATUS_CODE = null; - static String FORWARD_CONTEXT_PATH = null; - static String FORWARD_MAPPING = null; - static String FORWARD_PATH_INFO = null; - static String FORWARD_QUERY_STRING = null; - static String FORWARD_REQUEST_URI = null; - static String FORWARD_SERVLET_PATH = null; - static String INCLUDE_CONTEXT_PATH = null; - static String INCLUDE_MAPPING = null; - static String INCLUDE_PATH_INFO = null; - static String INCLUDE_QUERY_STRING = null; - static String INCLUDE_REQUEST_URI = null; - static String INCLUDE_SERVLET_PATH = null; - void forward(ServletRequest p0, ServletResponse p1); - void include(ServletRequest p0, ServletResponse p1); +public interface RequestDispatcher { + public void forward(ServletRequest request, ServletResponse response) + throws ServletException, IOException; + public void include(ServletRequest request, ServletResponse response) + throws ServletException, IOException; } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/Servlet.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/Servlet.java index 231c011a6f8..901f424033d 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/Servlet.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/Servlet.java @@ -1,16 +1,35 @@ -// Generated automatically from javax.servlet.Servlet for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet; -import javax.servlet.ServletConfig; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; +import java.io.IOException; -public interface Servlet -{ - ServletConfig getServletConfig(); - String getServletInfo(); - void destroy(); - void init(ServletConfig p0); - void service(ServletRequest p0, ServletResponse p1); +public interface Servlet { + public void init(ServletConfig config) throws ServletException; + public ServletConfig getServletConfig(); + public void service(ServletRequest req, ServletResponse res) + throws ServletException, IOException; + public String getServletInfo(); + public void destroy(); } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletConfig.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletConfig.java index c483c16ac4e..d3d4927c930 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletConfig.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletConfig.java @@ -1,14 +1,33 @@ -// Generated automatically from javax.servlet.ServletConfig for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet; import java.util.Enumeration; -import javax.servlet.ServletContext; -public interface ServletConfig -{ - Enumeration getInitParameterNames(); - ServletContext getServletContext(); - String getInitParameter(String p0); - String getServletName(); +public interface ServletConfig { + public String getServletName(); + public ServletContext getServletContext(); + public String getInitParameter(String name); + public Enumeration getInitParameterNames(); } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContext.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContext.java index 812393f61e9..3203724899d 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContext.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContext.java @@ -1,83 +1,57 @@ -// Generated automatically from javax.servlet.ServletContext for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet; import java.io.InputStream; +import java.net.MalformedURLException; import java.net.URL; import java.util.Enumeration; -import java.util.EventListener; -import java.util.Map; import java.util.Set; -import javax.servlet.Filter; -import javax.servlet.FilterRegistration; -import javax.servlet.RequestDispatcher; -import javax.servlet.Servlet; -import javax.servlet.ServletRegistration; -import javax.servlet.SessionCookieConfig; -import javax.servlet.SessionTrackingMode; -import javax.servlet.descriptor.JspConfigDescriptor; -public interface ServletContext -{ - T createListener(java.lang.Class p0); - void addListener(T p0); - T createFilter(java.lang.Class p0); - T createServlet(java.lang.Class p0); - ClassLoader getClassLoader(); - Enumeration getServlets(); - Enumeration getAttributeNames(); - Enumeration getInitParameterNames(); - Enumeration getServletNames(); - FilterRegistration getFilterRegistration(String p0); - FilterRegistration.Dynamic addFilter(String p0, Class p1); - FilterRegistration.Dynamic addFilter(String p0, Filter p1); - FilterRegistration.Dynamic addFilter(String p0, String p1); - InputStream getResourceAsStream(String p0); - JspConfigDescriptor getJspConfigDescriptor(); - Map getFilterRegistrations(); - Map getServletRegistrations(); - Object getAttribute(String p0); - RequestDispatcher getNamedDispatcher(String p0); - RequestDispatcher getRequestDispatcher(String p0); - Servlet getServlet(String p0); - ServletContext getContext(String p0); - ServletRegistration getServletRegistration(String p0); - ServletRegistration.Dynamic addJspFile(String p0, String p1); - ServletRegistration.Dynamic addServlet(String p0, Class p1); - ServletRegistration.Dynamic addServlet(String p0, Servlet p1); - ServletRegistration.Dynamic addServlet(String p0, String p1); - SessionCookieConfig getSessionCookieConfig(); - Set getDefaultSessionTrackingModes(); - Set getEffectiveSessionTrackingModes(); - Set getResourcePaths(String p0); - String getContextPath(); - String getInitParameter(String p0); - String getMimeType(String p0); - String getRealPath(String p0); - String getRequestCharacterEncoding(); - String getResponseCharacterEncoding(); - String getServerInfo(); - String getServletContextName(); - String getVirtualServerName(); - URL getResource(String p0); - boolean setInitParameter(String p0, String p1); - int getEffectiveMajorVersion(); - int getEffectiveMinorVersion(); - int getMajorVersion(); - int getMinorVersion(); - int getSessionTimeout(); - static String ORDERED_LIBS = null; - static String TEMPDIR = null; - void addListener(Class p0); - void addListener(String p0); - void declareRoles(String... p0); - void log(Exception p0, String p1); - void log(String p0); - void log(String p0, Throwable p1); - void removeAttribute(String p0); - void setAttribute(String p0, Object p1); - void setRequestCharacterEncoding(String p0); - void setResponseCharacterEncoding(String p0); - void setSessionTimeout(int p0); - void setSessionTrackingModes(Set p0); +public interface ServletContext { + public ServletContext getContext(String uripath); + public int getMajorVersion(); + public int getMinorVersion(); + public String getMimeType(String file); + public Set getResourcePaths(String path); + public URL getResource(String path) throws MalformedURLException; + public InputStream getResourceAsStream(String path); + public RequestDispatcher getRequestDispatcher(String path); + public RequestDispatcher getNamedDispatcher(String name); + public Servlet getServlet(String name) throws ServletException; + public Enumeration getServlets(); + public Enumeration getServletNames(); + public void log(String msg); + public void log(Exception exception, String msg); + public void log(String message, Throwable throwable); + public String getRealPath(String path); + public String getServerInfo(); + public String getInitParameter(String name); + public Enumeration getInitParameterNames(); + public Object getAttribute(String name); + public Enumeration getAttributeNames(); + public void setAttribute(String name, Object object); + public void removeAttribute(String name); + public String getServletContextName(); } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextEvent.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextEvent.java index bc52a66f7f8..aa27badc7fe 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextEvent.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextEvent.java @@ -1,20 +1,46 @@ -// Generated automatically from javax.servlet.ServletContextEvent for testing purposes +/* + * Copyright (c) 1997-2018 Oracle and/or its affiliates. All rights reserved. + * Copyright 2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package javax.servlet; -import java.util.EventObject; -import javax.servlet.ServletContext; +/** + * This is the event class for notifications about changes to + * the servlet context of a web application. + * @see ServletContextListener + * + * @since Servlet 2.3 + */ -public class ServletContextEvent extends EventObject { - protected ServletContextEvent() { - super(null); +public class ServletContextEvent extends java.util.EventObject { + + /** Construct a ServletContextEvent from the given context. + * + * @param source - the ServletContext that is sending the event. + */ + public ServletContextEvent(ServletContext source) { + super(source); } - - public ServletContext getServletContext() { + + /** + * Return the ServletContext that changed. + * + * @return the ServletContext that sent the event. + */ + public ServletContext getServletContext () { return null; } - - public ServletContextEvent(ServletContext p0) { - super(null); - } -} +} \ No newline at end of file diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextListener.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextListener.java new file mode 100644 index 00000000000..7eb2019b24d --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletContextListener.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 1997-2018 Oracle and/or its affiliates. All rights reserved. + * Copyright 2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package javax.servlet; + +import java.util.EventListener; + +/** + * Interface for receiving notification events about ServletContext + * lifecycle changes. + * + *

In order to receive these notification events, the implementation + * class must be either declared in the deployment descriptor of the web + * application, annotated with {@link javax.servlet.annotation.WebListener}, + * or registered via one of the addListener methods defined on + * {@link ServletContext}. + * + *

Implementations of this interface are invoked at their + * {@link #contextInitialized} method in the order in which they have been + * declared, and at their {@link #contextDestroyed} method in reverse + * order. + * + * @see ServletContextEvent + * + * @since Servlet 2.3 + */ +public interface ServletContextListener extends EventListener { + + /** + * Receives notification that the web application initialization + * process is starting. + * + *

All ServletContextListeners are notified of context + * initialization before any filters or servlets in the web + * application are initialized. + * + * @param sce the ServletContextEvent containing the ServletContext + * that is being initialized + * + * @implSpec + * The default implementation takes no action. + */ + default public void contextInitialized(ServletContextEvent sce) {} + + /** + * Receives notification that the ServletContext is about to be + * shut down. + * + *

All servlets and filters will have been destroyed before any + * ServletContextListeners are notified of context + * destruction. + * + * @param sce the ServletContextEvent containing the ServletContext + * that is being destroyed + * + * @implSpec + * The default implementation takes no action. + */ + default public void contextDestroyed(ServletContextEvent sce) {} +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletException.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletException.java new file mode 100644 index 00000000000..812b1687665 --- /dev/null +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletException.java @@ -0,0 +1,27 @@ +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ + +package javax.servlet; + +public class ServletException extends Exception { +} diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletInputStream.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletInputStream.java index 31034066970..67e73da45d6 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletInputStream.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletInputStream.java @@ -1,15 +1,35 @@ -// Generated automatically from javax.servlet.ServletInputStream for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet; +import java.io.IOException; import java.io.InputStream; -import javax.servlet.ReadListener; -abstract public class ServletInputStream extends InputStream -{ - protected ServletInputStream(){} - public abstract boolean isFinished(); - public abstract boolean isReady(); - public abstract void setReadListener(ReadListener p0); - public int readLine(byte[] p0, int p1, int p2){ return 0; } +public abstract class ServletInputStream extends InputStream { + protected ServletInputStream() { + } + public int readLine(byte[] b, int off, int len) throws IOException { + return 0; + } } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletOutputStream.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletOutputStream.java index 52a2162c9eb..98e54f1c74c 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletOutputStream.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletOutputStream.java @@ -1,28 +1,62 @@ -// Generated automatically from javax.servlet.ServletOutputStream for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet; +import java.io.IOException; import java.io.OutputStream; -import javax.servlet.WriteListener; -abstract public class ServletOutputStream extends OutputStream -{ - protected ServletOutputStream(){} - public abstract boolean isReady(); - public abstract void setWriteListener(WriteListener p0); - public void print(String p0){} - public void print(boolean p0){} - public void print(char p0){} - public void print(double p0){} - public void print(float p0){} - public void print(int p0){} - public void print(long p0){} - public void println(){} - public void println(String p0){} - public void println(boolean p0){} - public void println(char p0){} - public void println(double p0){} - public void println(float p0){} - public void println(int p0){} - public void println(long p0){} +public abstract class ServletOutputStream extends OutputStream { + protected ServletOutputStream() { + } + public void print(String s) throws IOException { + } + public void print(boolean b) throws IOException { + } + public void print(char c) throws IOException { + } + public void print(int i) throws IOException { + } + public void print(long l) throws IOException { + } + public void print(float f) throws IOException { + } + public void print(double d) throws IOException { + } + public void println() throws IOException { + } + public void println(String s) throws IOException { + } + public void println(boolean b) throws IOException { + } + public void println(char c) throws IOException { + } + public void println(int i) throws IOException { + } + public void println(long l) throws IOException { + } + public void println(float f) throws IOException { + } + public void println(double d) throws IOException { + } } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletRequest.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletRequest.java index fc0db462cc0..0653e291672 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletRequest.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletRequest.java @@ -1,55 +1,62 @@ -// Generated automatically from javax.servlet.ServletRequest for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet; import java.io.BufferedReader; +import java.io.IOException; import java.util.Enumeration; import java.util.Locale; import java.util.Map; -import javax.servlet.AsyncContext; -import javax.servlet.DispatcherType; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletContext; -import javax.servlet.ServletInputStream; -import javax.servlet.ServletResponse; -public interface ServletRequest -{ - AsyncContext getAsyncContext(); - AsyncContext startAsync(); - AsyncContext startAsync(ServletRequest p0, ServletResponse p1); - BufferedReader getReader(); - DispatcherType getDispatcherType(); - Enumeration getLocales(); - Enumeration getAttributeNames(); - Enumeration getParameterNames(); - Locale getLocale(); - Map getParameterMap(); - Object getAttribute(String p0); - RequestDispatcher getRequestDispatcher(String p0); - ServletContext getServletContext(); - ServletInputStream getInputStream(); - String getCharacterEncoding(); - String getContentType(); - String getLocalAddr(); - String getLocalName(); - String getParameter(String p0); - String getProtocol(); - String getRealPath(String p0); - String getRemoteAddr(); - String getRemoteHost(); - String getScheme(); - String getServerName(); - String[] getParameterValues(String p0); - boolean isAsyncStarted(); - boolean isAsyncSupported(); - boolean isSecure(); - int getContentLength(); - int getLocalPort(); - int getRemotePort(); - int getServerPort(); - long getContentLengthLong(); - void removeAttribute(String p0); - void setAttribute(String p0, Object p1); - void setCharacterEncoding(String p0); +public interface ServletRequest { + public Object getAttribute(String name); + public Enumeration getAttributeNames(); + public String getCharacterEncoding(); + public void setCharacterEncoding(String env) throws java.io.UnsupportedEncodingException; + public int getContentLength(); + public String getContentType(); + public ServletInputStream getInputStream() throws IOException; + public String getParameter(String name); + public Enumeration getParameterNames(); + public String[] getParameterValues(String name); + public Map getParameterMap(); + public String getProtocol(); + public String getScheme(); + public String getServerName(); + public int getServerPort(); + public BufferedReader getReader() throws IOException; + public String getRemoteAddr(); + public String getRemoteHost(); + public void setAttribute(String name, Object o); + public void removeAttribute(String name); + public Locale getLocale(); + public Enumeration getLocales(); + public boolean isSecure(); + public RequestDispatcher getRequestDispatcher(String path); + public String getRealPath(String path); + public int getRemotePort(); + public String getLocalName(); + public String getLocalAddr(); + public int getLocalPort(); } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletResponse.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletResponse.java index db6610bc15d..1dc306148d5 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletResponse.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/ServletResponse.java @@ -1,27 +1,46 @@ -// Generated automatically from javax.servlet.ServletResponse for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet; +import java.io.IOException; import java.io.PrintWriter; import java.util.Locale; -import javax.servlet.ServletOutputStream; -public interface ServletResponse -{ - Locale getLocale(); - PrintWriter getWriter(); - ServletOutputStream getOutputStream(); - String getCharacterEncoding(); - String getContentType(); - boolean isCommitted(); - int getBufferSize(); - void flushBuffer(); - void reset(); - void resetBuffer(); - void setBufferSize(int p0); - void setCharacterEncoding(String p0); - void setContentLength(int p0); - void setContentLengthLong(long p0); - void setContentType(String p0); - void setLocale(Locale p0); +public interface ServletResponse { + public String getCharacterEncoding(); + public String getContentType(); + public ServletOutputStream getOutputStream() throws IOException; + public PrintWriter getWriter() throws IOException; + public void setCharacterEncoding(String charset); + public void setContentLength(int len); + public void setContentType(String type); + public void setBufferSize(int size); + public int getBufferSize(); + public void flushBuffer() throws IOException; + public void resetBuffer(); + public boolean isCommitted(); + public void reset(); + public void setLocale(Locale loc); + public Locale getLocale(); } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/Cookie.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/Cookie.java index b5a180029be..53d3058f921 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/Cookie.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/Cookie.java @@ -1,29 +1,84 @@ -// Generated automatically from javax.servlet.http.Cookie for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet.http; -import java.io.Serializable; +public class Cookie implements Cloneable { -public class Cookie implements Cloneable, Serializable -{ - protected Cookie() {} - public Cookie(String p0, String p1){} - public Object clone(){ return null; } - public String getComment(){ return null; } - public String getDomain(){ return null; } - public String getName(){ return null; } - public String getPath(){ return null; } - public String getValue(){ return null; } - public boolean getSecure(){ return false; } - public boolean isHttpOnly(){ return false; } - public int getMaxAge(){ return 0; } - public int getVersion(){ return 0; } - public void setComment(String p0){} - public void setDomain(String p0){} - public void setHttpOnly(boolean p0){} - public void setMaxAge(int p0){} - public void setPath(String p0){} - public void setSecure(boolean p0){} - public void setValue(String p0){} - public void setVersion(int p0){} + public Cookie(String name, String value) { + } + public void setComment(String purpose) { + } + public String getComment() { + return null; + } + public void setDomain(String pattern) { + } + public String getDomain() { + return null; + } + public void setMaxAge(int expiry) { + } + public int getMaxAge() { + return -1; + } + public void setPath(String uri) { + } + public String getPath() { + return null; + } + public void setSecure(boolean flag) { + } + public boolean getSecure() { + return false; + } + public String getName() { + return null; + } + public void setValue(String newValue) { + } + public String getValue() { + return null; + } + public int getVersion() { + return -1; + } + public void setVersion(int v) { + } + public void setHttpOnly(boolean isHttpOnly) { + } + public boolean isHttpOnly() { + return false; + } + + /** + * Convert the cookie to a string suitable for use as the value of the + * corresponding HTTP header. + * + * @return a stringified cookie. + */ + @Override + public String toString() { + return null; + } } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServlet.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServlet.java index 1247f956d78..0fbd5dac428 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServlet.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServlet.java @@ -1,24 +1,63 @@ -// Generated automatically from javax.servlet.http.HttpServlet for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet.http; +import java.io.IOException; import javax.servlet.GenericServlet; +import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -abstract public class HttpServlet extends GenericServlet -{ - protected long getLastModified(HttpServletRequest p0){ return 0; } - protected void doDelete(HttpServletRequest p0, HttpServletResponse p1){} - protected void doGet(HttpServletRequest p0, HttpServletResponse p1){} - protected void doHead(HttpServletRequest p0, HttpServletResponse p1){} - protected void doOptions(HttpServletRequest p0, HttpServletResponse p1){} - protected void doPost(HttpServletRequest p0, HttpServletResponse p1){} - protected void doPut(HttpServletRequest p0, HttpServletResponse p1){} - protected void doTrace(HttpServletRequest p0, HttpServletResponse p1){} - protected void service(HttpServletRequest p0, HttpServletResponse p1){} - public HttpServlet(){} - public void service(ServletRequest p0, ServletResponse p1){} +public abstract class HttpServlet extends GenericServlet { + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + } + protected long getLastModified(HttpServletRequest req) { + return -1; + } + protected void doHead(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + } + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + } + protected void doPut(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + } + protected void doDelete(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + } + protected void doOptions(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + } + protected void doTrace(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + } + protected void service(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + } + public void service(ServletRequest req, ServletResponse res) + throws ServletException, IOException { + } } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequest.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequest.java index 8612c34fb69..5767e07ca5b 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequest.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletRequest.java @@ -1,60 +1,57 @@ -// Generated automatically from javax.servlet.http.HttpServletRequest for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet.http; -import java.security.Principal; -import java.util.Collection; import java.util.Enumeration; -import java.util.Map; import javax.servlet.ServletRequest; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletMapping; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpUpgradeHandler; -import javax.servlet.http.Part; -import javax.servlet.http.PushBuilder; +import javax.servlet.ServletContext; -public interface HttpServletRequest extends ServletRequest -{ - T upgrade(java.lang.Class p0); - Collection getParts(); - Cookie[] getCookies(); - Enumeration getHeaderNames(); - Enumeration getHeaders(String p0); - HttpSession getSession(); - HttpSession getSession(boolean p0); - Part getPart(String p0); - Principal getUserPrincipal(); - String changeSessionId(); - String getAuthType(); - String getContextPath(); - String getHeader(String p0); - String getMethod(); - String getPathInfo(); - String getPathTranslated(); - String getQueryString(); - String getRemoteUser(); - String getRequestURI(); - String getRequestedSessionId(); - String getServletPath(); - StringBuffer getRequestURL(); - boolean authenticate(HttpServletResponse p0); - boolean isRequestedSessionIdFromCookie(); - boolean isRequestedSessionIdFromURL(); - boolean isRequestedSessionIdFromUrl(); - boolean isRequestedSessionIdValid(); - boolean isUserInRole(String p0); - default HttpServletMapping getHttpServletMapping(){ return null; } - default Map getTrailerFields(){ return null; } - default PushBuilder newPushBuilder(){ return null; } - default boolean isTrailerFieldsReady(){ return false; } - int getIntHeader(String p0); - long getDateHeader(String p0); - static String BASIC_AUTH = null; - static String CLIENT_CERT_AUTH = null; - static String DIGEST_AUTH = null; - static String FORM_AUTH = null; - void login(String p0, String p1); - void logout(); +public interface HttpServletRequest extends ServletRequest { + public String getAuthType(); + public Cookie[] getCookies(); + public long getDateHeader(String name); + public String getHeader(String name); + public Enumeration getHeaders(String name); + public Enumeration getHeaderNames(); + public int getIntHeader(String name); + public String getMethod(); + public String getPathInfo(); + public String getPathTranslated(); + public String getContextPath(); + public String getQueryString(); + public String getRemoteUser(); + public boolean isUserInRole(String role); + public java.security.Principal getUserPrincipal(); + public String getRequestedSessionId(); + public String getRequestURI(); + public StringBuffer getRequestURL(); + public String getServletPath(); + public HttpSession getSession(boolean create); + public HttpSession getSession(); + public boolean isRequestedSessionIdValid(); + public boolean isRequestedSessionIdFromCookie(); + public boolean isRequestedSessionIdFromURL(); + public boolean isRequestedSessionIdFromUrl(); + public ServletContext getServletContext(); } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletResponse.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletResponse.java index da902dbf30c..162ac0db3cc 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletResponse.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpServletResponse.java @@ -1,77 +1,95 @@ -// Generated automatically from javax.servlet.http.HttpServletResponse for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet.http; +import java.io.IOException; import java.util.Collection; -import java.util.Map; -import java.util.function.Supplier; import javax.servlet.ServletResponse; -import javax.servlet.http.Cookie; -public interface HttpServletResponse extends ServletResponse -{ - Collection getHeaderNames(); - Collection getHeaders(String p0); - String encodeRedirectURL(String p0); - String encodeRedirectUrl(String p0); - String encodeURL(String p0); - String encodeUrl(String p0); - String getHeader(String p0); - boolean containsHeader(String p0); - default Supplier> getTrailerFields(){ return null; } - default void setTrailerFields(Supplier> p0){} - int getStatus(); - static int SC_ACCEPTED = 0; - static int SC_BAD_GATEWAY = 0; - static int SC_BAD_REQUEST = 0; - static int SC_CONFLICT = 0; - static int SC_CONTINUE = 0; - static int SC_CREATED = 0; - static int SC_EXPECTATION_FAILED = 0; - static int SC_FORBIDDEN = 0; - static int SC_FOUND = 0; - static int SC_GATEWAY_TIMEOUT = 0; - static int SC_GONE = 0; - static int SC_HTTP_VERSION_NOT_SUPPORTED = 0; - static int SC_INTERNAL_SERVER_ERROR = 0; - static int SC_LENGTH_REQUIRED = 0; - static int SC_METHOD_NOT_ALLOWED = 0; - static int SC_MOVED_PERMANENTLY = 0; - static int SC_MOVED_TEMPORARILY = 0; - static int SC_MULTIPLE_CHOICES = 0; - static int SC_NON_AUTHORITATIVE_INFORMATION = 0; - static int SC_NOT_ACCEPTABLE = 0; - static int SC_NOT_FOUND = 0; - static int SC_NOT_IMPLEMENTED = 0; - static int SC_NOT_MODIFIED = 0; - static int SC_NO_CONTENT = 0; - static int SC_OK = 0; - static int SC_PARTIAL_CONTENT = 0; - static int SC_PAYMENT_REQUIRED = 0; - static int SC_PRECONDITION_FAILED = 0; - static int SC_PROXY_AUTHENTICATION_REQUIRED = 0; - static int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 0; - static int SC_REQUEST_ENTITY_TOO_LARGE = 0; - static int SC_REQUEST_TIMEOUT = 0; - static int SC_REQUEST_URI_TOO_LONG = 0; - static int SC_RESET_CONTENT = 0; - static int SC_SEE_OTHER = 0; - static int SC_SERVICE_UNAVAILABLE = 0; - static int SC_SWITCHING_PROTOCOLS = 0; - static int SC_TEMPORARY_REDIRECT = 0; - static int SC_UNAUTHORIZED = 0; - static int SC_UNSUPPORTED_MEDIA_TYPE = 0; - static int SC_USE_PROXY = 0; - void addCookie(Cookie p0); - void addDateHeader(String p0, long p1); - void addHeader(String p0, String p1); - void addIntHeader(String p0, int p1); - void sendError(int p0); - void sendError(int p0, String p1); - void sendRedirect(String p0); - void setDateHeader(String p0, long p1); - void setHeader(String p0, String p1); - void setIntHeader(String p0, int p1); - void setStatus(int p0); - void setStatus(int p0, String p1); +public interface HttpServletResponse extends ServletResponse { + public void addCookie(Cookie cookie); + public boolean containsHeader(String name); + public String encodeURL(String url); + public String encodeRedirectURL(String url); + public String encodeUrl(String url); + public String encodeRedirectUrl(String url); + public void sendError(int sc, String msg) throws IOException; + public void sendError(int sc) throws IOException; + public void sendRedirect(String location) throws IOException; + public void setDateHeader(String name, long date); + public void addDateHeader(String name, long date); + public void setHeader(String name, String value); + public void addHeader(String name, String value); + public void setIntHeader(String name, int value); + public void addIntHeader(String name, int value); + public void setStatus(int sc); + public void setStatus(int sc, String sm); + public int getStatus(); + public String getHeader(String name); + public Collection getHeaders(String name); + public Collection getHeaderNames(); + + + public static final int SC_CONTINUE = 100; + public static final int SC_SWITCHING_PROTOCOLS = 101; + public static final int SC_OK = 200; + public static final int SC_CREATED = 201; + public static final int SC_ACCEPTED = 202; + public static final int SC_NON_AUTHORITATIVE_INFORMATION = 203; + public static final int SC_NO_CONTENT = 204; + public static final int SC_RESET_CONTENT = 205; + public static final int SC_PARTIAL_CONTENT = 206; + public static final int SC_MULTIPLE_CHOICES = 300; + public static final int SC_MOVED_PERMANENTLY = 301; + public static final int SC_MOVED_TEMPORARILY = 302; + public static final int SC_FOUND = 302; + public static final int SC_SEE_OTHER = 303; + public static final int SC_NOT_MODIFIED = 304; + public static final int SC_USE_PROXY = 305; + public static final int SC_TEMPORARY_REDIRECT = 307; + public static final int SC_BAD_REQUEST = 400; + public static final int SC_UNAUTHORIZED = 401; + public static final int SC_PAYMENT_REQUIRED = 402; + public static final int SC_FORBIDDEN = 403; + public static final int SC_NOT_FOUND = 404; + public static final int SC_METHOD_NOT_ALLOWED = 405; + public static final int SC_NOT_ACCEPTABLE = 406; + public static final int SC_PROXY_AUTHENTICATION_REQUIRED = 407; + public static final int SC_REQUEST_TIMEOUT = 408; + public static final int SC_CONFLICT = 409; + public static final int SC_GONE = 410; + public static final int SC_LENGTH_REQUIRED = 411; + public static final int SC_PRECONDITION_FAILED = 412; + public static final int SC_REQUEST_ENTITY_TOO_LARGE = 413; + public static final int SC_REQUEST_URI_TOO_LONG = 414; + public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415; + public static final int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416; + public static final int SC_EXPECTATION_FAILED = 417; + public static final int SC_INTERNAL_SERVER_ERROR = 500; + public static final int SC_NOT_IMPLEMENTED = 501; + public static final int SC_BAD_GATEWAY = 502; + public static final int SC_SERVICE_UNAVAILABLE = 503; + public static final int SC_GATEWAY_TIMEOUT = 504; + public static final int SC_HTTP_VERSION_NOT_SUPPORTED = 505; } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpSession.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpSession.java index f8f455b1423..5b331b2e950 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpSession.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpSession.java @@ -1,28 +1,47 @@ -// Generated automatically from javax.servlet.http.HttpSession for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet.http; import java.util.Enumeration; import javax.servlet.ServletContext; -import javax.servlet.http.HttpSessionContext; -public interface HttpSession -{ - Enumeration getAttributeNames(); - HttpSessionContext getSessionContext(); - Object getAttribute(String p0); - Object getValue(String p0); - ServletContext getServletContext(); - String getId(); - String[] getValueNames(); - boolean isNew(); - int getMaxInactiveInterval(); - long getCreationTime(); - long getLastAccessedTime(); - void invalidate(); - void putValue(String p0, Object p1); - void removeAttribute(String p0); - void removeValue(String p0); - void setAttribute(String p0, Object p1); - void setMaxInactiveInterval(int p0); +public interface HttpSession { + public long getCreationTime(); + public String getId(); + public long getLastAccessedTime(); + public ServletContext getServletContext(); + public void setMaxInactiveInterval(int interval); + public int getMaxInactiveInterval(); + public HttpSessionContext getSessionContext(); + public Object getAttribute(String name); + public Object getValue(String name); + public Enumeration getAttributeNames(); + public String[] getValueNames(); + public void setAttribute(String name, Object value); + public void putValue(String name, Object value); + public void removeAttribute(String name); + public void removeValue(String name); + public void invalidate(); + public boolean isNew(); } diff --git a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpSessionContext.java b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpSessionContext.java index 97a77b48358..871d967fec1 100644 --- a/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpSessionContext.java +++ b/java/ql/test/stubs/javax-servlet-2.5/javax/servlet/http/HttpSessionContext.java @@ -1,12 +1,34 @@ -// Generated automatically from javax.servlet.http.HttpSessionContext for testing purposes +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Adapted from the Java Servlet API version 2.4 as available at + * http://search.maven.org/remotecontent?filepath=javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar + * Only relevant stubs of this file have been retained for test purposes. + */ package javax.servlet.http; import java.util.Enumeration; -import javax.servlet.http.HttpSession; -public interface HttpSessionContext -{ - Enumeration getIds(); - HttpSession getSession(String p0); +/** + * @deprecated + */ +public interface HttpSessionContext { + public HttpSession getSession(String sessionId); + public Enumeration getIds(); } From 3b4980ba2f3ef1a7d1169b569cde7cda376bcaf8 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Wed, 15 Mar 2023 14:36:45 +0100 Subject: [PATCH 21/22] org.kohsuke.stapler.model tests --- java/ql/lib/ext/org.kohsuke.stapler.model.yml | 2 +- .../CWE-601/semmle/tests/UrlRedirect.expected | 6 + .../CWE-601/semmle/tests/mad/Test.java | 16 ++ .../security/CWE-601/semmle/tests/options | 2 +- .../security/CWE-918/mad/Test.java | 6 + .../test/query-tests/security/CWE-918/options | 3 +- .../org/kohsuke/stapler/ForwardToView.java | 21 ++ .../org/kohsuke/stapler/HttpRedirect.java | 18 ++ .../org/kohsuke/stapler/HttpResponses.java | 43 ++++ .../org/kohsuke/stapler/RequestImpl.java | 227 ++++++++++++++---- .../org/kohsuke/stapler/StaplerRequest.java | 3 +- 11 files changed, 292 insertions(+), 55 deletions(-) create mode 100644 java/ql/test/query-tests/security/CWE-601/semmle/tests/mad/Test.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ForwardToView.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpRedirect.java create mode 100644 java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponses.java diff --git a/java/ql/lib/ext/org.kohsuke.stapler.model.yml b/java/ql/lib/ext/org.kohsuke.stapler.model.yml index 3425699b0ab..5b399f64ccd 100644 --- a/java/ql/lib/ext/org.kohsuke.stapler.model.yml +++ b/java/ql/lib/ext/org.kohsuke.stapler.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["org.kohsuke.stapler", "HttpResponses", True, "redirectTo", "(String)", "", "Argument[0]", "open-url", "ai-generated"] + - ["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"] diff --git a/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected b/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected index 6fa4d4a50c6..974005e801b 100644 --- a/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected +++ b/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected @@ -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 | diff --git a/java/ql/test/query-tests/security/CWE-601/semmle/tests/mad/Test.java b/java/ql/test/query-tests/security/CWE-601/semmle/tests/mad/Test.java new file mode 100644 index 00000000000..e222c3d9fbe --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-601/semmle/tests/mad/Test.java @@ -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()); + } +} diff --git a/java/ql/test/query-tests/security/CWE-601/semmle/tests/options b/java/ql/test/query-tests/security/CWE-601/semmle/tests/options index 668a863ac60..637c329a914 100644 --- a/java/ql/test/query-tests/security/CWE-601/semmle/tests/options +++ b/java/ql/test/query-tests/security/CWE-601/semmle/tests/options @@ -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 diff --git a/java/ql/test/query-tests/security/CWE-918/mad/Test.java b/java/ql/test/query-tests/security/CWE-918/mad/Test.java index 8bfbe9c10f9..64e81430c9c 100644 --- a/java/ql/test/query-tests/security/CWE-918/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-918/mad/Test.java @@ -8,6 +8,7 @@ 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 { @@ -68,4 +69,9 @@ public class Test { 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 + } + } diff --git a/java/ql/test/query-tests/security/CWE-918/options b/java/ql/test/query-tests/security/CWE-918/options index 3b168db6f0d..7a4e3251ca1 100644 --- a/java/ql/test/query-tests/security/CWE-918/options +++ b/java/ql/test/query-tests/security/CWE-918/options @@ -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:${testdir}/../../../stubs/apache-commons-jelly-1.0.1:${testdir}/../../../stubs/dom4j-2.1.1:${testdir}/../../../stubs/jaxen-1.2.0 - +//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 diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ForwardToView.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ForwardToView.java new file mode 100644 index 00000000000..6b91e5383e5 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/ForwardToView.java @@ -0,0 +1,21 @@ +// Generated automatically from org.kohsuke.stapler.ForwardToView for testing purposes + +package org.kohsuke.stapler; + +import java.util.Map; +import javax.servlet.RequestDispatcher; +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +public class ForwardToView extends RuntimeException implements HttpResponse +{ + protected ForwardToView() {} + public ForwardToView optional(){ return null; } + public ForwardToView with(Map p0){ return null; } + public ForwardToView with(String p0, Object p1){ return null; } + public ForwardToView(Class p0, String p1){} + public ForwardToView(Object p0, String p1){} + public ForwardToView(RequestDispatcher p0){} + public void generateResponse(StaplerRequest p0, StaplerResponse p1, Object p2){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpRedirect.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpRedirect.java new file mode 100644 index 00000000000..c1064e79aef --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpRedirect.java @@ -0,0 +1,18 @@ +// Generated automatically from org.kohsuke.stapler.HttpRedirect for testing purposes + +package org.kohsuke.stapler; + +import org.kohsuke.stapler.HttpResponse; +import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.stapler.StaplerResponse; + +public class HttpRedirect extends RuntimeException implements HttpResponse +{ + protected HttpRedirect() {} + public HttpRedirect(String p0){} + public HttpRedirect(int p0, String p1){} + public static HttpRedirect DOT = null; + public static HttpResponse CONTEXT_ROOT = null; + public static HttpResponse fromContextPath(String p0){ return null; } + public void generateResponse(StaplerRequest p0, StaplerResponse p1, Object p2){} +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponses.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponses.java new file mode 100644 index 00000000000..81e517514a2 --- /dev/null +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/HttpResponses.java @@ -0,0 +1,43 @@ +// Generated automatically from org.kohsuke.stapler.HttpResponses for testing purposes + +package org.kohsuke.stapler; + +import java.net.URL; +import org.kohsuke.stapler.ForwardToView; +import org.kohsuke.stapler.HttpRedirect; +import org.kohsuke.stapler.HttpResponse; + +public class HttpResponses +{ + abstract static public class HttpResponseException extends RuntimeException implements HttpResponse + { + public HttpResponseException(){} + public HttpResponseException(String p0){} + public HttpResponseException(String p0, Throwable p1){} + public HttpResponseException(Throwable p0){} + } + public HttpResponses(){} + public static ForwardToView forwardToView(Class p0, String p1){ return null; } + public static ForwardToView forwardToView(Object p0, String p1){ return null; } + public static HttpRedirect redirectTo(String p0){ return null; } + public static HttpRedirect redirectTo(int p0, String p1){ return null; } + public static HttpResponse html(String p0){ return null; } + public static HttpResponse literalHtml(String p0){ return null; } + public static HttpResponse plainText(String p0){ return null; } + public static HttpResponse redirectToDot(){ return null; } + public static HttpResponse staticResource(URL p0){ return null; } + public static HttpResponse staticResource(URL p0, long p1){ return null; } + public static HttpResponse text(String p0){ return null; } + public static HttpResponses.HttpResponseException error(Throwable p0){ return null; } + public static HttpResponses.HttpResponseException error(int p0, String p1){ return null; } + public static HttpResponses.HttpResponseException error(int p0, Throwable p1){ return null; } + public static HttpResponses.HttpResponseException errorWithoutStack(int p0, String p1){ return null; } + public static HttpResponses.HttpResponseException forbidden(){ return null; } + public static HttpResponses.HttpResponseException forwardToPreviousPage(){ return null; } + public static HttpResponses.HttpResponseException notFound(){ return null; } + public static HttpResponses.HttpResponseException ok(){ return null; } + public static HttpResponses.HttpResponseException redirectToContextRoot(){ return null; } + public static HttpResponses.HttpResponseException redirectViaContextPath(String p0){ return null; } + public static HttpResponses.HttpResponseException redirectViaContextPath(int p0, String p1){ return null; } + public static HttpResponses.HttpResponseException status(int p0){ return null; } +} diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/RequestImpl.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/RequestImpl.java index 35e8777e8bc..acfd4bc15ae 100644 --- a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/RequestImpl.java +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/RequestImpl.java @@ -4,7 +4,6 @@ package org.kohsuke.stapler; import java.lang.reflect.Type; import java.util.Calendar; -import java.util.Date; import java.util.Enumeration; import java.util.List; import java.util.Map; @@ -25,56 +24,186 @@ import org.kohsuke.stapler.WebApp; import org.kohsuke.stapler.bind.BoundObjectTable; import org.kohsuke.stapler.lang.Klass; -public class RequestImpl extends HttpServletRequestWrapper implements StaplerRequest -{ +public class RequestImpl extends HttpServletRequestWrapper implements StaplerRequest { protected RequestImpl() {} - public T bindJSON(java.lang.Class p0, JSONObject p1){ return null; } - public T bindParameters(java.lang.Class p0, String p1){ return null; } - public T bindParameters(java.lang.Class p0, String p1, int p2){ return null; } - public T findAncestorObject(java.lang.Class p0){ return null; } - public java.util.List bindJSONToList(java.lang.Class p0, Object p1){ return null; } - public java.util.List bindParametersToList(java.lang.Class p0, String p1){ return null; } - public Ancestor findAncestor(Class p0){ return null; } - public Ancestor findAncestor(Object p0){ return null; } - public BindInterceptor getBindInterceptor(){ return null; } - public BindInterceptor setBindInterceptor(BindInterceptor p0){ return null; } - public BindInterceptor setBindInterceptpr(BindInterceptor p0){ return null; } - public BindInterceptor setBindListener(BindInterceptor p0){ return null; } - public BoundObjectTable getBoundObjectTable(){ return null; } - public Enumeration getParameterNames(){ return null; } - public FileItem getFileItem(String p0){ return null; } - public JSONObject getSubmittedForm(){ return null; } - public List getAncestors(){ return null; } - public Map getParameterMap(){ return null; } - public Object bindJSON(Type p0, Class p1, Object p2){ return null; } - public RequestDispatcher getView(Class p0, String p1){ return null; } - public RequestDispatcher getView(Klass p0, Object p1, String p2){ return null; } - public RequestDispatcher getView(Klass p0, String p1){ return null; } - public RequestDispatcher getView(Object p0, String p1){ return null; } - public RequestImpl(Stapler p0, HttpServletRequest p1, List p2, TokenList p3){} - public ServletContext getServletContext(){ return null; } - public Stapler getStapler(){ return null; } - public String createJavaScriptProxy(Object p0){ return null; } - public String getOriginalRequestURI(){ return null; } - public String getOriginalRestOfPath(){ return null; } - public String getParameter(String p0){ return null; } - public String getReferer(){ return null; } - public String getRequestURIWithQueryString(){ return null; } - public String getRestOfPath(){ return null; } - public String getRootPath(){ return null; } - public StringBuffer getRequestURLWithQueryString(){ return null; } - public String[] getParameterValues(String p0){ return null; } - public WebApp getWebApp(){ return null; } - public boolean checkIfModified(Calendar p0, StaplerResponse p1){ return false; } - public boolean checkIfModified(Date p0, StaplerResponse p1){ return false; } - public boolean checkIfModified(long p0, StaplerResponse p1){ return false; } - public boolean checkIfModified(long p0, StaplerResponse p1, long p2){ return false; } - public boolean hasParameter(String p0){ return false; } - public boolean isJavaScriptProxyCall(){ return false; } + + public T bindJSON(java.lang.Class p0, JSONObject p1) { + return null; + } + + public T bindParameters(java.lang.Class p0, String p1) { + return null; + } + + public T bindParameters(java.lang.Class p0, String p1, int p2) { + return null; + } + + public T findAncestorObject(java.lang.Class p0) { + return null; + } + + public java.util.List bindJSONToList(java.lang.Class p0, Object p1) { + return null; + } + + public java.util.List bindParametersToList(java.lang.Class p0, String p1) { + return null; + } + + public Ancestor findAncestor(Class p0) { + return null; + } + + public Ancestor findAncestor(Object p0) { + return null; + } + + public BindInterceptor getBindInterceptor() { + return null; + } + + public BindInterceptor setBindInterceptor(BindInterceptor p0) { + return null; + } + + public BindInterceptor setBindInterceptpr(BindInterceptor p0) { + return null; + } + + public BindInterceptor setBindListener(BindInterceptor p0) { + return null; + } + + public BoundObjectTable getBoundObjectTable() { + return null; + } + + public Enumeration getParameterNames() { + return null; + } + + public FileItem getFileItem(String p0) { + return null; + } + + public JSONObject getSubmittedForm() { + return null; + } + + public List getAncestors() { + return null; + } + + public Map getParameterMap() { + return null; + } + + public Object bindJSON(Type p0, Class p1, Object p2) { + return null; + } + + public RequestDispatcher getView(Class p0, String p1) { + return null; + } + + public RequestDispatcher getView(Klass p0, Object p1, String p2) { + return null; + } + + public RequestDispatcher getView(Klass p0, String p1) { + return null; + } + + public RequestDispatcher getView(Object p0, String p1) { + return null; + } + + public RequestImpl(Stapler p0, HttpServletRequest p1, List p2, TokenList p3) {} + + public ServletContext getServletContext() { + return null; + } + + public Stapler getStapler() { + return null; + } + + public String createJavaScriptProxy(Object p0) { + return null; + } + + public String getOriginalRequestURI() { + return null; + } + + public String getOriginalRestOfPath() { + return null; + } + + public String getParameter(String p0) { + return p0; + } + + public String getReferer() { + return null; + } + + public String getRequestURIWithQueryString() { + return null; + } + + public String getRestOfPath() { + return null; + } + + public String getRootPath() { + return null; + } + + public StringBuffer getRequestURLWithQueryString() { + return null; + } + + public String[] getParameterValues(String p0) { + return null; + } + + public WebApp getWebApp() { + return null; + } + + public boolean checkIfModified(Calendar p0, StaplerResponse p1) { + return false; + } + + public boolean checkIfModified(java.util.Date p0, StaplerResponse p1) { + return false; + } + + public boolean checkIfModified(long p0, StaplerResponse p1) { + return false; + } + + public boolean checkIfModified(long p0, StaplerResponse p1, long p2) { + return false; + } + + public boolean hasParameter(String p0) { + return false; + } + + public boolean isJavaScriptProxyCall() { + return false; + } + public final List ancestors = null; public final Stapler stapler = null; public final TokenList tokens = null; - public void bindJSON(Object p0, JSONObject p1){} - public void bindParameters(Object p0){} - public void bindParameters(Object p0, String p1){} + + public void bindJSON(Object p0, JSONObject p1) {} + + public void bindParameters(Object p0) {} + + public void bindParameters(Object p0, String p1) {} } diff --git a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerRequest.java b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerRequest.java index 10942452230..aebc9f6f43f 100644 --- a/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerRequest.java +++ b/java/ql/test/stubs/stapler-1.263/org/kohsuke/stapler/StaplerRequest.java @@ -4,7 +4,6 @@ package org.kohsuke.stapler; import java.lang.reflect.Type; import java.util.Calendar; -import java.util.Date; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; @@ -53,7 +52,7 @@ public interface StaplerRequest extends HttpServletRequest StringBuffer getRequestURLWithQueryString(); WebApp getWebApp(); boolean checkIfModified(Calendar p0, StaplerResponse p1); - boolean checkIfModified(Date p0, StaplerResponse p1); + boolean checkIfModified(java.util.Date p0, StaplerResponse p1); boolean checkIfModified(long p0, StaplerResponse p1); boolean checkIfModified(long p0, StaplerResponse p1, long p2); boolean hasParameter(String p0); From 5bc606753e9e9c492c65e587cd2351c163a642b2 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Wed, 15 Mar 2023 14:47:27 +0100 Subject: [PATCH 22/22] org.openjdk.jmh.runner.options tests --- .../CWE-022/semmle/tests/TaintedPath.expected | 477 +++++++++--------- .../CWE-022/semmle/tests/mad/Test.java | 6 + .../security/CWE-022/semmle/tests/options | 2 +- .../org/openjdk/jmh/annotations/Mode.java | 15 + .../org/openjdk/jmh/profile/Profiler.java | 9 + .../jmh/results/format/ResultFormatType.java | 10 + .../runner/options/ChainedOptionsBuilder.java | 53 ++ .../openjdk/jmh/runner/options/Options.java | 50 ++ .../jmh/runner/options/ProfilerConfig.java | 17 + .../openjdk/jmh/runner/options/TimeValue.java | 30 ++ .../jmh/runner/options/VerboseMode.java | 11 + .../jmh/runner/options/WarmupMode.java | 12 + .../org/openjdk/jmh/util/Optional.java | 20 + 13 files changed, 475 insertions(+), 237 deletions(-) create mode 100644 java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/annotations/Mode.java create mode 100644 java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/profile/Profiler.java create mode 100644 java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/results/format/ResultFormatType.java create mode 100644 java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/ChainedOptionsBuilder.java create mode 100644 java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/Options.java create mode 100644 java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/ProfilerConfig.java create mode 100644 java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/TimeValue.java create mode 100644 java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/VerboseMode.java create mode 100644 java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/WarmupMode.java create mode 100644 java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/util/Optional.java diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected index a41e47a1115..456ec85f6cb 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected @@ -14,106 +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:27:16:27:36 | getHostName(...) : String | mad/Test.java:32:61:32:68 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:34:41:34:48 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:36:56:36:63 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:38:46:38:53 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:40:38:40:45 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:42:36:42:43 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:44:31:44:38 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:46:33:46:40 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:48:27:48:34 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:49:27:49:34 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:50:34:50:41 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:52:40:52:47 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:53:48:53:55 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:54:47:54:54 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:56:40:56:47 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:58:38:58:45 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:60:33:60:40 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:62:33:62:40 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:64:41:64:48 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:66:42:66:49 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:68:37:68:44 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:70:29:70:36 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:72:37:72:44 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:74:28:74:35 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:76:33:76:40 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:78:40:78:47 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:80:40:80:47 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:81:40:81:47 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:83:38:83:45 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:85:28:85:35 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:86:28:86:35 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:87:28:87:35 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:89:34:89:41 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:90:34:90:41 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:92:33:92:40 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:94:42:94:49 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:96:50:96:57 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:98:54:98:61 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:103:37:103:44 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:105:74:105:81 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:107:68:107:75 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:109:68:109:75 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:111:30:111:37 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:116:30:116:37 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:121:33:121:40 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:123:27:123:34 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:125:28:125:35 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:127:29:127:36 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:132:27:132:34 | source(...) : String | -| mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:134:26:134:33 | source(...) : String | -| mad/Test.java:32:61:32:68 | source(...) : String | mad/Test.java:32:52:32:68 | (...)... | -| mad/Test.java:34:41:34:48 | source(...) : String | mad/Test.java:34:32:34:48 | (...)... | -| mad/Test.java:36:56:36:63 | source(...) : String | mad/Test.java:36:47:36:63 | (...)... | -| mad/Test.java:38:46:38:53 | source(...) : String | mad/Test.java:38:39:38:53 | (...)... | -| mad/Test.java:40:38:40:45 | source(...) : String | mad/Test.java:40:31:40:45 | (...)... | -| mad/Test.java:42:36:42:43 | source(...) : String | mad/Test.java:42:29:42:43 | (...)... | -| mad/Test.java:44:31:44:38 | source(...) : String | mad/Test.java:44:24:44:38 | (...)... | -| mad/Test.java:46:33:46:40 | source(...) : String | mad/Test.java:46:24:46:40 | (...)... | -| mad/Test.java:48:27:48:34 | source(...) : String | mad/Test.java:48:20:48:34 | (...)... | +| 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:34:50:41 | source(...) : String | mad/Test.java:50:20:50:41 | (...)... | -| mad/Test.java:52:40:52:47 | source(...) : String | mad/Test.java:52:33:52:47 | (...)... | -| mad/Test.java:53:48:53:55 | source(...) : String | mad/Test.java:53:33:53:55 | (...)... | -| mad/Test.java:54:47:54:54 | source(...) : String | mad/Test.java:54:40:54:54 | (...)... | -| mad/Test.java:56:40:56:47 | source(...) : String | mad/Test.java:56:33:56:47 | (...)... | -| mad/Test.java:58:38:58:45 | source(...) : String | mad/Test.java:58:31:58:45 | (...)... | -| mad/Test.java:60:33:60:40 | source(...) : String | mad/Test.java:60:26:60:40 | (...)... | -| mad/Test.java:62:33:62:40 | source(...) : String | mad/Test.java:62:26:62:40 | (...)... | -| mad/Test.java:64:41:64:48 | source(...) : String | mad/Test.java:64:34:64:48 | (...)... | -| mad/Test.java:66:42:66:49 | source(...) : String | mad/Test.java:66:35:66:49 | (...)... | -| mad/Test.java:68:37:68:44 | source(...) : String | mad/Test.java:68:30:68:44 | (...)... | -| mad/Test.java:70:29:70:36 | source(...) : String | mad/Test.java:70:22:70:36 | (...)... | -| mad/Test.java:72:37:72:44 | source(...) : String | mad/Test.java:72:30:72:44 | (...)... | -| mad/Test.java:74:28:74:35 | source(...) : String | mad/Test.java:74:21:74:35 | (...)... | -| mad/Test.java:76:33:76:40 | source(...) : String | mad/Test.java:76:26:76:40 | (...)... | -| mad/Test.java:78:40:78:47 | source(...) : String | mad/Test.java:78:33:78:47 | (...)... | -| mad/Test.java:80:40:80:47 | source(...) : String | mad/Test.java:80:33:80:47 | (...)... | +| 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:83:38:83:45 | source(...) : String | mad/Test.java:83:31:83:45 | (...)... | -| mad/Test.java:85:28:85:35 | source(...) : String | mad/Test.java:85:21:85:35 | (...)... | +| 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:89:34:89:41 | source(...) : String | mad/Test.java:89:27:89:41 | (...)... | +| 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:92:33:92:40 | source(...) : String | mad/Test.java:92:26:92:40 | (...)... | -| mad/Test.java:94:42:94:49 | source(...) : String | mad/Test.java:94:35:94:49 | (...)... | -| mad/Test.java:96:50:96:57 | source(...) : String | mad/Test.java:96:41:96:57 | (...)... | -| mad/Test.java:98:54:98:61 | source(...) : String | mad/Test.java:98:45:98:61 | (...)... | -| mad/Test.java:103:37:103:44 | source(...) : String | mad/Test.java:103:30:103:44 | (...)... | -| mad/Test.java:105:74:105:81 | source(...) : String | mad/Test.java:105:40:105:81 | (...)... | -| mad/Test.java:107:68:107:75 | source(...) : String | mad/Test.java:107:34:107:75 | (...)... | -| mad/Test.java:109:68:109:75 | source(...) : String | mad/Test.java:109:34:109:75 | (...)... | -| mad/Test.java:111:30:111:37 | source(...) : String | mad/Test.java:111:23:111:37 | (...)... | -| mad/Test.java:116:30:116:37 | source(...) : String | mad/Test.java:116:23:116:37 | (...)... | -| mad/Test.java:121:33:121:40 | source(...) : String | mad/Test.java:121:23:121:40 | (...)... | -| mad/Test.java:123:27:123:34 | source(...) : String | mad/Test.java:123:20:123:34 | (...)... | -| mad/Test.java:125:28:125:35 | source(...) : String | mad/Test.java:125:21:125:35 | (...)... | -| mad/Test.java:127:29:127:36 | source(...) : String | mad/Test.java:127:22:127:36 | (...)... | -| mad/Test.java:132:27:132:34 | source(...) : String | mad/Test.java:132:20:132:34 | (...)... | -| mad/Test.java:134:26:134:33 | source(...) : String | mad/Test.java:134:19:134:33 | (...)... | +| 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 | @@ -134,107 +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:27:16:27:36 | getHostName(...) : String | semmle.label | getHostName(...) : String | -| mad/Test.java:32:52:32:68 | (...)... | semmle.label | (...)... | -| mad/Test.java:32:61:32:68 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:34:32:34:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:34:41:34:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:36:47:36:63 | (...)... | semmle.label | (...)... | -| mad/Test.java:36:56:36:63 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:38:39:38:53 | (...)... | semmle.label | (...)... | -| mad/Test.java:38:46:38:53 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:40:31:40:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:40:38:40:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:42:29:42:43 | (...)... | semmle.label | (...)... | -| mad/Test.java:42:36:42:43 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:44:24:44:38 | (...)... | semmle.label | (...)... | -| mad/Test.java:44:31:44:38 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:46:24:46:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:46:33:46:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:48:20:48:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:48:27:48:34 | 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:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:50:34:50:41 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:52:33:52:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:52:40:52:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:53:33:53:55 | (...)... | semmle.label | (...)... | -| mad/Test.java:53:48:53:55 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:54:40:54:54 | (...)... | semmle.label | (...)... | -| mad/Test.java:54:47:54:54 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:56:33:56:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:56:40:56:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:58:31:58:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:58:38:58:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:60:26:60:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:60:33:60:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:62:26:62:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:62:33:62:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:64:34:64:48 | (...)... | semmle.label | (...)... | -| mad/Test.java:64:41:64:48 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:66:35:66:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:66:42:66:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:68:30:68:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:68:37:68:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:70:22:70:36 | (...)... | semmle.label | (...)... | -| mad/Test.java:70:29:70:36 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:72:30:72:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:72:37:72:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:74:21:74:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:74:28:74:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:76:26:76:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:76:33:76:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:78:33:78:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:78:40:78:47 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:80:33:80:47 | (...)... | semmle.label | (...)... | -| mad/Test.java:80:40:80:47 | 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:83:31:83:45 | (...)... | semmle.label | (...)... | -| mad/Test.java:83:38:83:45 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:85:21:85:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:85:28:85:35 | 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:89:27:89:41 | (...)... | semmle.label | (...)... | -| mad/Test.java:89:34:89:41 | 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:92:26:92:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:92:33:92:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:94:35:94:49 | (...)... | semmle.label | (...)... | -| mad/Test.java:94:42:94:49 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:96:41:96:57 | (...)... | semmle.label | (...)... | -| mad/Test.java:96:50:96:57 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:98:45:98:61 | (...)... | semmle.label | (...)... | -| mad/Test.java:98:54:98:61 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:103:30:103:44 | (...)... | semmle.label | (...)... | -| mad/Test.java:103:37:103:44 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:105:40:105:81 | (...)... | semmle.label | (...)... | -| mad/Test.java:105:74:105:81 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:107:34:107:75 | (...)... | semmle.label | (...)... | -| mad/Test.java:107:68:107:75 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:109:34:109:75 | (...)... | semmle.label | (...)... | -| mad/Test.java:109:68:109:75 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:111:23:111:37 | (...)... | semmle.label | (...)... | -| mad/Test.java:111:30:111:37 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:116:23:116:37 | (...)... | semmle.label | (...)... | -| mad/Test.java:116:30:116:37 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:121:23:121:40 | (...)... | semmle.label | (...)... | -| mad/Test.java:121:33:121:40 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:123:20:123:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:123:27:123:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:125:21:125:35 | (...)... | semmle.label | (...)... | -| mad/Test.java:125:28:125:35 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:127:22:127:36 | (...)... | semmle.label | (...)... | -| mad/Test.java:127:29:127:36 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:132:20:132:34 | (...)... | semmle.label | (...)... | -| mad/Test.java:132:27:132:34 | source(...) : String | semmle.label | source(...) : String | -| mad/Test.java:134:19:134:33 | (...)... | semmle.label | (...)... | -| mad/Test.java:134:26:134:33 | 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 | @@ -248,53 +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:32:52:32:68 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:32:52:32:68 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:34:32:34:48 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:34:32:34:48 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:36:47:36:63 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:36:47:36:63 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:38:39:38:53 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:38:39:38:53 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:40:31:40:45 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:40:31:40:45 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:42:29:42:43 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:42:29:42:43 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:44:24:44:38 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:44:24:44:38 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:46:9:46:41 | new FileReader(...) | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:46:24:46:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:48:20:48:34 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:48:20:48:34 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:49:20:49:34 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:49:20:49:34 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:50:20:50:41 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:50:20:50:41 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:52:33:52:47 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:52:33:52:47 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:53:33:53:55 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:53:33:53:55 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:54:40:54:54 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:54:40:54:54 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:56:33:56:47 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:56:33:56:47 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:58:31:58:45 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:58:31:58:45 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:60:26:60:40 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:60:26:60:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:62:26:62:40 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:62:26:62:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:64:34:64:48 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:64:34:64:48 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:66:35:66:49 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:66:35:66:49 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:68:30:68:44 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:68:30:68:44 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:70:22:70:36 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:70:22:70:36 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:72:30:72:44 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:72:30:72:44 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:74:21:74:35 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:74:21:74:35 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:76:26:76:40 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:76:26:76:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:78:33:78:47 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:78:33:78:47 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:80:33:80:47 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:80:33:80:47 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:81:33:81:47 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:81:33:81:47 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:83:31:83:45 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:83:31:83:45 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:85:21:85:35 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:85:21:85:35 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:86:21:86:35 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:86:21:86:35 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:87:21:87:35 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:87:21:87:35 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:89:27:89:41 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:89:27:89:41 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:90:27:90:41 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:90:27:90:41 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:92:26:92:40 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:92:26:92:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:94:35:94:49 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:94:35:94:49 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:96:41:96:57 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:96:41:96:57 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:98:45:98:61 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:98:45:98:61 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:103:30:103:44 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:103:30:103:44 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:105:40:105:81 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:105:40:105:81 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:107:34:107:75 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:107:34:107:75 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:109:34:109:75 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:109:34:109:75 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:111:23:111:37 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:111:23:111:37 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:116:23:116:37 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:116:23:116:37 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:121:23:121:40 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:121:23:121:40 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:123:20:123:34 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:123:20:123:34 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:125:21:125:35 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:125:21:125:35 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:127:22:127:36 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:127:22:127:36 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:132:20:132:34 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:132:20:132:34 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27:36 | getHostName(...) | user-provided value | -| mad/Test.java:134:19:134:33 | (...)... | mad/Test.java:27:16:27:36 | getHostName(...) : String | mad/Test.java:134:19:134:33 | (...)... | This path depends on a $@. | mad/Test.java:27:16:27: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 | diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java index 904ebc09778..43e5168b449 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/mad/Test.java @@ -18,6 +18,7 @@ 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 { @@ -133,4 +134,9 @@ public class Test { // "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()); + } } diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/options b/java/ql/test/query-tests/security/CWE-022/semmle/tests/options index 58498830fbc..592aaf631f2 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/options +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/options @@ -1 +1 @@ -// 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 \ No newline at end of file +// 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 \ No newline at end of file diff --git a/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/annotations/Mode.java b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/annotations/Mode.java new file mode 100644 index 00000000000..3ac36a9b55c --- /dev/null +++ b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/annotations/Mode.java @@ -0,0 +1,15 @@ +// Generated automatically from org.openjdk.jmh.annotations.Mode for testing purposes + +package org.openjdk.jmh.annotations; + +import java.util.List; + +public enum Mode +{ + All, AverageTime, SampleTime, SingleShotTime, Throughput; + private Mode() {} + public String longLabel(){ return null; } + public String shortLabel(){ return null; } + public static List getKnown(){ return null; } + public static Mode deepValueOf(String p0){ return null; } +} diff --git a/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/profile/Profiler.java b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/profile/Profiler.java new file mode 100644 index 00000000000..edd9bbb7629 --- /dev/null +++ b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/profile/Profiler.java @@ -0,0 +1,9 @@ +// Generated automatically from org.openjdk.jmh.profile.Profiler for testing purposes + +package org.openjdk.jmh.profile; + + +public interface Profiler +{ + String getDescription(); +} diff --git a/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/results/format/ResultFormatType.java b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/results/format/ResultFormatType.java new file mode 100644 index 00000000000..96e97bdeb74 --- /dev/null +++ b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/results/format/ResultFormatType.java @@ -0,0 +1,10 @@ +// Generated automatically from org.openjdk.jmh.results.format.ResultFormatType for testing purposes + +package org.openjdk.jmh.results.format; + + +public enum ResultFormatType +{ + CSV, JSON, LATEX, SCSV, TEXT; + private ResultFormatType() {} +} diff --git a/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/ChainedOptionsBuilder.java b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/ChainedOptionsBuilder.java new file mode 100644 index 00000000000..03d34f7c018 --- /dev/null +++ b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/ChainedOptionsBuilder.java @@ -0,0 +1,53 @@ +// Generated automatically from org.openjdk.jmh.runner.options.ChainedOptionsBuilder for testing purposes + +package org.openjdk.jmh.runner.options; + +import java.util.concurrent.TimeUnit; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.profile.Profiler; +import org.openjdk.jmh.results.format.ResultFormatType; +import org.openjdk.jmh.runner.options.Options; +import org.openjdk.jmh.runner.options.TimeValue; +import org.openjdk.jmh.runner.options.VerboseMode; +import org.openjdk.jmh.runner.options.WarmupMode; + +public interface ChainedOptionsBuilder +{ + ChainedOptionsBuilder addProfiler(Class p0); + ChainedOptionsBuilder addProfiler(Class p0, String p1); + ChainedOptionsBuilder addProfiler(String p0); + ChainedOptionsBuilder addProfiler(String p0, String p1); + ChainedOptionsBuilder detectJvmArgs(); + ChainedOptionsBuilder exclude(String p0); + ChainedOptionsBuilder forks(int p0); + ChainedOptionsBuilder include(String p0); + ChainedOptionsBuilder includeWarmup(String p0); + ChainedOptionsBuilder jvm(String p0); + ChainedOptionsBuilder jvmArgs(String... p0); + ChainedOptionsBuilder jvmArgsAppend(String... p0); + ChainedOptionsBuilder jvmArgsPrepend(String... p0); + ChainedOptionsBuilder measurementBatchSize(int p0); + ChainedOptionsBuilder measurementIterations(int p0); + ChainedOptionsBuilder measurementTime(TimeValue p0); + ChainedOptionsBuilder mode(Mode p0); + ChainedOptionsBuilder operationsPerInvocation(int p0); + ChainedOptionsBuilder output(String p0); + ChainedOptionsBuilder param(String p0, String... p1); + ChainedOptionsBuilder parent(Options p0); + ChainedOptionsBuilder result(String p0); + ChainedOptionsBuilder resultFormat(ResultFormatType p0); + ChainedOptionsBuilder shouldDoGC(boolean p0); + ChainedOptionsBuilder shouldFailOnError(boolean p0); + ChainedOptionsBuilder syncIterations(boolean p0); + ChainedOptionsBuilder threadGroups(int... p0); + ChainedOptionsBuilder threads(int p0); + ChainedOptionsBuilder timeUnit(TimeUnit p0); + ChainedOptionsBuilder timeout(TimeValue p0); + ChainedOptionsBuilder verbosity(VerboseMode p0); + ChainedOptionsBuilder warmupBatchSize(int p0); + ChainedOptionsBuilder warmupForks(int p0); + ChainedOptionsBuilder warmupIterations(int p0); + ChainedOptionsBuilder warmupMode(WarmupMode p0); + ChainedOptionsBuilder warmupTime(TimeValue p0); + Options build(); +} diff --git a/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/Options.java b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/Options.java new file mode 100644 index 00000000000..2ff56593a94 --- /dev/null +++ b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/Options.java @@ -0,0 +1,50 @@ +// Generated automatically from org.openjdk.jmh.runner.options.Options for testing purposes + +package org.openjdk.jmh.runner.options; + +import java.io.Serializable; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.TimeUnit; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.results.format.ResultFormatType; +import org.openjdk.jmh.runner.options.ProfilerConfig; +import org.openjdk.jmh.runner.options.TimeValue; +import org.openjdk.jmh.runner.options.VerboseMode; +import org.openjdk.jmh.runner.options.WarmupMode; +import org.openjdk.jmh.util.Optional; + +public interface Options extends Serializable +{ + Collection getBenchModes(); + List getProfilers(); + List getExcludes(); + List getIncludes(); + List getWarmupIncludes(); + Optional shouldDoGC(); + Optional shouldFailOnError(); + Optional shouldSyncIterations(); + Optional> getJvmArgs(); + Optional> getJvmArgsAppend(); + Optional> getJvmArgsPrepend(); + Optional> getParameter(String p0); + Optional getForkCount(); + Optional getMeasurementBatchSize(); + Optional getMeasurementIterations(); + Optional getOperationsPerInvocation(); + Optional getThreads(); + Optional getWarmupBatchSize(); + Optional getWarmupForkCount(); + Optional getWarmupIterations(); + Optional getResultFormat(); + Optional getJvm(); + Optional getOutput(); + Optional getResult(); + Optional getTimeUnit(); + Optional getMeasurementTime(); + Optional getTimeout(); + Optional getWarmupTime(); + Optional verbosity(); + Optional getWarmupMode(); + Optional getThreadGroups(); +} diff --git a/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/ProfilerConfig.java b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/ProfilerConfig.java new file mode 100644 index 00000000000..c6051758d43 --- /dev/null +++ b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/ProfilerConfig.java @@ -0,0 +1,17 @@ +// Generated automatically from org.openjdk.jmh.runner.options.ProfilerConfig for testing purposes + +package org.openjdk.jmh.runner.options; + +import java.io.Serializable; + +public class ProfilerConfig implements Serializable +{ + protected ProfilerConfig() {} + public ProfilerConfig(String p0){} + public ProfilerConfig(String p0, String p1){} + public String getKlass(){ return null; } + public String getOpts(){ return null; } + public String toString(){ return null; } + public boolean equals(Object p0){ return false; } + public int hashCode(){ return 0; } +} diff --git a/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/TimeValue.java b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/TimeValue.java new file mode 100644 index 00000000000..b37ad6fc0d5 --- /dev/null +++ b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/TimeValue.java @@ -0,0 +1,30 @@ +// Generated automatically from org.openjdk.jmh.runner.options.TimeValue for testing purposes + +package org.openjdk.jmh.runner.options; + +import java.io.Serializable; +import java.util.concurrent.TimeUnit; + +public class TimeValue implements Serializable +{ + protected TimeValue() {} + public String toString(){ return null; } + public TimeUnit getTimeUnit(){ return null; } + public TimeValue(long p0, TimeUnit p1){} + public boolean equals(Object p0){ return false; } + public int hashCode(){ return 0; } + public long convertTo(TimeUnit p0){ return 0; } + public long getTime(){ return 0; } + public static String tuToString(TimeUnit p0){ return null; } + public static TimeValue NONE = null; + public static TimeValue days(long p0){ return null; } + public static TimeValue fromString(String p0){ return null; } + public static TimeValue hours(long p0){ return null; } + public static TimeValue microseconds(long p0){ return null; } + public static TimeValue milliseconds(long p0){ return null; } + public static TimeValue minutes(long p0){ return null; } + public static TimeValue nanoseconds(long p0){ return null; } + public static TimeValue seconds(long p0){ return null; } + public static TimeValue valueOf(String p0){ return null; } + public void sleep(){} +} diff --git a/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/VerboseMode.java b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/VerboseMode.java new file mode 100644 index 00000000000..c0cf905a1d3 --- /dev/null +++ b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/VerboseMode.java @@ -0,0 +1,11 @@ +// Generated automatically from org.openjdk.jmh.runner.options.VerboseMode for testing purposes + +package org.openjdk.jmh.runner.options; + + +public enum VerboseMode +{ + EXTRA, NORMAL, SILENT; + private VerboseMode() {} + public boolean equalsOrHigherThan(VerboseMode p0){ return false; } +} diff --git a/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/WarmupMode.java b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/WarmupMode.java new file mode 100644 index 00000000000..961f8521565 --- /dev/null +++ b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/runner/options/WarmupMode.java @@ -0,0 +1,12 @@ +// Generated automatically from org.openjdk.jmh.runner.options.WarmupMode for testing purposes + +package org.openjdk.jmh.runner.options; + + +public enum WarmupMode +{ + BULK, BULK_INDI, INDI; + private WarmupMode() {} + public boolean isBulk(){ return false; } + public boolean isIndi(){ return false; } +} diff --git a/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/util/Optional.java b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/util/Optional.java new file mode 100644 index 00000000000..0db83ef4bd2 --- /dev/null +++ b/java/ql/test/stubs/jmh-1.3.6/org/openjdk/jmh/util/Optional.java @@ -0,0 +1,20 @@ +// Generated automatically from org.openjdk.jmh.util.Optional for testing purposes + +package org.openjdk.jmh.util; + +import java.io.Serializable; + +public class Optional implements Serializable +{ + protected Optional() {} + public Optional orAnother(Optional p0){ return null; } + public String toString(){ return null; } + public T get(){ return null; } + public T orElse(T p0){ return null; } + public boolean equals(Object p0){ return false; } + public boolean hasValue(){ return false; } + public int hashCode(){ return 0; } + public static org.openjdk.jmh.util.Optional eitherOf(T p0){ return null; } + public static org.openjdk.jmh.util.Optional none(){ return null; } + public static org.openjdk.jmh.util.Optional of(T p0){ return null; } +}