mirror of
https://github.com/github/codeql.git
synced 2026-05-21 14:47:10 +02:00
Merge branch 'main' into redsun82/just2
This commit is contained in:
@@ -35,10 +35,10 @@ def parse_dbscheme(filename):
|
||||
unions[name] = typs
|
||||
|
||||
# tables
|
||||
for relname, body in re.findall('\n([\w_]+)(\([^)]*\))',
|
||||
for relname, body in re.findall(r'\n([\w_]+)(\([^)]*\))',
|
||||
dbscheme,
|
||||
flags=re.DOTALL):
|
||||
columns = list(re.findall('(\S+)\s*:\s*([^\s,]+)(?:\s+(ref)|)', body))
|
||||
columns = list(re.findall(r'(\S+)\s*:\s*([^\s,]+)(?:\s+(ref)|)', body))
|
||||
tables[relname] = columns
|
||||
|
||||
parse_dbscheme(dbscheme)
|
||||
|
||||
@@ -6,6 +6,7 @@ ql/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql
|
||||
ql/java/ql/src/DeadCode/UselessParameter.ql
|
||||
ql/java/ql/src/Language Abuse/EmptyMethod.ql
|
||||
ql/java/ql/src/Language Abuse/IterableIterator.ql
|
||||
ql/java/ql/src/Language Abuse/LabelInSwitch.ql
|
||||
ql/java/ql/src/Language Abuse/TypeVariableHidesType.ql
|
||||
ql/java/ql/src/Language Abuse/UselessNullCheck.ql
|
||||
ql/java/ql/src/Language Abuse/UselessTypeTest.ql
|
||||
|
||||
@@ -5,6 +5,7 @@ ql/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql
|
||||
ql/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql
|
||||
ql/java/ql/src/DeadCode/UselessParameter.ql
|
||||
ql/java/ql/src/Language Abuse/IterableIterator.ql
|
||||
ql/java/ql/src/Language Abuse/LabelInSwitch.ql
|
||||
ql/java/ql/src/Language Abuse/UselessNullCheck.ql
|
||||
ql/java/ql/src/Language Abuse/UselessTypeTest.ql
|
||||
ql/java/ql/src/Language Abuse/WrappedIterator.ql
|
||||
|
||||
@@ -17,7 +17,10 @@ kt_jvm_library(
|
||||
srcs = ["Plugin.kt"],
|
||||
kotlinc_opts = ":kotlinc-options",
|
||||
module_name = "test",
|
||||
resource_strip_prefix = "%s/resources" % package_name(),
|
||||
resource_strip_prefix = "../%s/%s/resources" % (
|
||||
repo_name(),
|
||||
package_name(),
|
||||
),
|
||||
resources = glob(["resources/**"]),
|
||||
deps = [
|
||||
"@kotlin-compiler-%s" % _version,
|
||||
|
||||
@@ -10,20 +10,15 @@ def test(codeql, java_full, cwd, semmle_code_dir, test_dir):
|
||||
commands.run(
|
||||
[
|
||||
f"{semmle_code_dir}/tools/bazel",
|
||||
f"--output_user_root={build_dir}",
|
||||
"--max_idle_secs=1",
|
||||
"build",
|
||||
"//java/ql/integration-tests/kotlin/linux/custom_plugin/plugin",
|
||||
"--spawn_strategy=local",
|
||||
"--nouse_action_cache",
|
||||
"--noremote_accept_cached",
|
||||
"--noremote_upload_local_results",
|
||||
f'--symlink_prefix={cwd / "bazel-"}',
|
||||
"@codeql//java/ql/integration-tests/kotlin/linux/custom_plugin/plugin",
|
||||
],
|
||||
_cwd=test_dir,
|
||||
_cwd=semmle_code_dir,
|
||||
_env={"CODEQL_BAZEL_REMOTE_CACHE": "false"},
|
||||
)
|
||||
shutil.copy(
|
||||
"bazel-bin/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/plugin.jar",
|
||||
f"{semmle_code_dir}/bazel-bin/external/ql+/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/plugin.jar",
|
||||
"plugin.jar",
|
||||
)
|
||||
codeql.database.create(
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* The qualifiers of a calls to `readObject` on any classes that implement `java.io.ObjectInput` are now recognised as sinks for `java/unsafe-deserialization`. Previously this was only the case for classes which extend `java.io.ObjectInputStream`.
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: feature
|
||||
---
|
||||
* You can now add sinks for the query "Deserialization of user-controlled data" (`java/unsafe-deserialization`) using [data extensions](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-java-and-kotlin/#extensible-predicates-used-to-create-custom-models-in-java-and-kotlin) by extending `sinkModel` and using the kind "unsafe-deserialization". The existing sinks which do not require extra logic to determine if they are unsafe are now defined in this way.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
category: deprecated
|
||||
---
|
||||
* The module `semmle.code.java.frameworks.Castor` has been deprecated and will be removed in a future release.
|
||||
* The module `semmle.code.java.frameworks.JYaml` has been deprecated and will be removed in a future release.
|
||||
* The classes `UnsafeHessianInputReadObjectMethod` and `BurlapInputReadObjectMethod` in the module `semmle.code.java.frameworks.HessianBurlap` have been deprecated and will be removed in a future release.
|
||||
* The class `YamlBeansReaderReadMethod` in the module `semmle.code.java.frameworks.YamlBeans` has been deprecated and will be removed in a future release.
|
||||
* The class `MethodApacheSerializationUtilsDeserialize` in the module `semmle.code.java.frameworks.apache.Lang` has been deprecated and will be removed in a future release.
|
||||
@@ -0,0 +1,7 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["com.alibaba.com.caucho.hessian.io", "AbstractHessianInput", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"]
|
||||
- ["com.alibaba.com.caucho.hessian.io", "Hessian2StreamingInput", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"]
|
||||
6
java/ql/lib/ext/com.caucho.burlap.io.model.yml
Normal file
6
java/ql/lib/ext/com.caucho.burlap.io.model.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["com.caucho.burlap.io", "BurlapInput", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"]
|
||||
7
java/ql/lib/ext/com.caucho.hessian.io.model.yml
Normal file
7
java/ql/lib/ext/com.caucho.hessian.io.model.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["com.caucho.hessian.io", "AbstractHessianInput", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"]
|
||||
- ["com.caucho.hessian.io", "Hessian2StreamingInput", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"]
|
||||
7
java/ql/lib/ext/com.cedarsoftware.util.io.model.yml
Normal file
7
java/ql/lib/ext/com.cedarsoftware.util.io.model.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["com.cedarsoftware.util.io", "JsonReader", False, "jsonToJava", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
- ["com.cedarsoftware.util.io", "JsonReader", True, "readObject", "", "", "Argument[this]", "unsafe-deserialization", "manual"]
|
||||
6
java/ql/lib/ext/com.esotericsoftware.yamlbeans.model.yml
Normal file
6
java/ql/lib/ext/com.esotericsoftware.yamlbeans.model.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["com.esotericsoftware.yamlbeans", "YamlReader", True, "read", "", "", "Argument[this]", "unsafe-deserialization", "manual"]
|
||||
@@ -13,3 +13,8 @@ extensions:
|
||||
- ["java.beans", "PropertyEditor", "getValue", "()", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs
|
||||
- ["java.beans", "PropertyEditor", "setAsText", "()", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs
|
||||
- ["java.beans", "PropertyEditor", "setValue", "()", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["java.beans", "XMLDecoder", True, "readObject", "()", "", "Argument[this]", "unsafe-deserialization", "manual"]
|
||||
|
||||
@@ -5,3 +5,8 @@ extensions:
|
||||
data:
|
||||
- ["org.apache.commons.lang", "StringEscapeUtils", true, "escapeHtml", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- ["org.apache.commons.lang", "StringEscapeUtils", true, "escapeHtml", "(Writer,String)", "", "Argument[1]", "Argument[0]", "taint", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["org.apache.commons.lang", "SerializationUtils", False, "deserialize", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
|
||||
@@ -3,6 +3,7 @@ extensions:
|
||||
pack: codeql/java-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["org.apache.commons.lang3", "SerializationUtils", False, "deserialize", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
# Note these sinks do not use the sink kind `regex-use[0]` because the regex injection query needs to select them separately from
|
||||
# other `regex-use[0]` sinks in order to avoid FPs. As a result, these sinks are currently not used in the polynomial ReDoS query.
|
||||
# TODO: refactor the `regex-use%` sink kind so that the polynomial ReDoS query can also use these sinks.
|
||||
|
||||
6
java/ql/lib/ext/org.exolab.castor.xml.model.yml
Normal file
6
java/ql/lib/ext/org.exolab.castor.xml.model.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["org.exolab.castor.xml", "Unmarshaller", True, "unmarshal", "", "", "Argument[0..1]", "unsafe-deserialization", "manual"]
|
||||
13
java/ql/lib/ext/org.ho.yaml.model.yml
Normal file
13
java/ql/lib/ext/org.ho.yaml.model.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["org.ho.yaml", "Yaml", False, "load", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
- ["org.ho.yaml", "Yaml", False, "loadStream", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
- ["org.ho.yaml", "Yaml", False, "loadStreamOfType", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
- ["org.ho.yaml", "Yaml", False, "loadType", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
- ["org.ho.yaml", "YamlConfig", False, "load", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
- ["org.ho.yaml", "YamlConfig", False, "loadStream", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
- ["org.ho.yaml", "YamlConfig", False, "loadStreamOfType", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
- ["org.ho.yaml", "YamlConfig", False, "loadType", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
6
java/ql/lib/ext/org.jabsorb.model.yml
Normal file
6
java/ql/lib/ext/org.jabsorb.model.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: sinkModel
|
||||
data:
|
||||
- ["org.jabsorb", "JSONSerializer", True, "fromJSON", "", "", "Argument[0]", "unsafe-deserialization", "manual"]
|
||||
@@ -23,3 +23,4 @@ dataExtensions:
|
||||
- ext/generated/*.model.yml
|
||||
- ext/experimental/*.model.yml
|
||||
warnOnImplicitThis: true
|
||||
compileForOverlayEval: true
|
||||
|
||||
@@ -233,5 +233,5 @@ private predicate discardableLocation(string file, @location l) {
|
||||
/** Discard base locations in files fully extracted in the overlay. */
|
||||
overlay[discard_entity]
|
||||
private predicate discardLocation(@location l) {
|
||||
exists(string file | discardableLocation(file, l) and extractedInOverlay(file))
|
||||
exists(string file | discardableLocation(file, l) and overlayChangedFiles(file))
|
||||
}
|
||||
|
||||
@@ -82,6 +82,7 @@ module;
|
||||
*/
|
||||
|
||||
import java
|
||||
private import codeql.util.Boolean
|
||||
private import Completion
|
||||
private import controlflow.internal.Preconditions
|
||||
private import controlflow.internal.SwitchCases
|
||||
@@ -102,6 +103,7 @@ module ControlFlow {
|
||||
private newtype TNode =
|
||||
TExprNode(Expr e) { hasControlFlow(e) } or
|
||||
TStmtNode(Stmt s) or
|
||||
TAnnotatedExitNode(Callable c, Boolean normal) { exists(c.getBody()) } or
|
||||
TExitNode(Callable c) { exists(c.getBody()) } or
|
||||
TAssertThrowNode(AssertStmt s)
|
||||
|
||||
@@ -191,6 +193,38 @@ module ControlFlow {
|
||||
override Location getLocation() { result = s.getLocation() }
|
||||
}
|
||||
|
||||
/** A control flow node indicating the normal or exceptional termination of a callable. */
|
||||
class AnnotatedExitNode extends Node, TAnnotatedExitNode {
|
||||
Callable c;
|
||||
boolean normal;
|
||||
|
||||
AnnotatedExitNode() { this = TAnnotatedExitNode(c, normal) }
|
||||
|
||||
override Callable getEnclosingCallable() { result = c }
|
||||
|
||||
override ExprParent getAstNode() { result = c }
|
||||
|
||||
/** Gets a textual representation of this element. */
|
||||
override string toString() {
|
||||
normal = true and result = "Normal Exit"
|
||||
or
|
||||
normal = false and result = "Exceptional Exit"
|
||||
}
|
||||
|
||||
/** Gets the source location for this element. */
|
||||
override Location getLocation() { result = c.getLocation() }
|
||||
}
|
||||
|
||||
/** A control flow node indicating normal termination of a callable. */
|
||||
class NormalExitNode extends AnnotatedExitNode {
|
||||
NormalExitNode() { this = TAnnotatedExitNode(_, true) }
|
||||
}
|
||||
|
||||
/** A control flow node indicating exceptional termination of a callable. */
|
||||
class ExceptionalExitNode extends AnnotatedExitNode {
|
||||
ExceptionalExitNode() { this = TAnnotatedExitNode(_, false) }
|
||||
}
|
||||
|
||||
/** A control flow node indicating the termination of a callable. */
|
||||
class ExitNode extends Node, TExitNode {
|
||||
Callable c;
|
||||
@@ -1266,11 +1300,17 @@ private module ControlFlowGraphImpl {
|
||||
*/
|
||||
cached
|
||||
Node succ(Node n, Completion completion) {
|
||||
// After executing the callable body, the final node is the exit node.
|
||||
// After executing the callable body, the final nodes are first the
|
||||
// annotated exit node and then the final exit node.
|
||||
exists(Callable c | last(c.getBody(), n, completion) |
|
||||
result.(ExitNode).getEnclosingCallable() = c
|
||||
if completion instanceof ThrowCompletion
|
||||
then result.(ExceptionalExitNode).getEnclosingCallable() = c
|
||||
else result.(NormalExitNode).getEnclosingCallable() = c
|
||||
)
|
||||
or
|
||||
completion = NormalCompletion() and
|
||||
n.(AnnotatedExitNode).getEnclosingCallable() = result.(ExitNode).getEnclosingCallable()
|
||||
or
|
||||
// Logic expressions and conditional expressions execute in AST pre-order.
|
||||
completion = NormalCompletion() and
|
||||
(
|
||||
|
||||
@@ -211,6 +211,11 @@ class TypeObjectOutputStream extends RefType {
|
||||
TypeObjectOutputStream() { this.hasQualifiedName("java.io", "ObjectOutputStream") }
|
||||
}
|
||||
|
||||
/** The type `java.io.ObjectInput`. */
|
||||
class TypeObjectInput extends RefType {
|
||||
TypeObjectInput() { this.hasQualifiedName("java.io", "ObjectInput") }
|
||||
}
|
||||
|
||||
/** The type `java.io.ObjectInputStream`. */
|
||||
class TypeObjectInputStream extends RefType {
|
||||
TypeObjectInputStream() { this.hasQualifiedName("java.io", "ObjectInputStream") }
|
||||
|
||||
@@ -30,15 +30,6 @@ string getRawFileForLoc(@location l) {
|
||||
exists(@file f | locations_default(l, f, _, _, _, _) and files(f, result))
|
||||
}
|
||||
|
||||
/** Holds for files fully extracted in the overlay. */
|
||||
overlay[local]
|
||||
predicate extractedInOverlay(string file) {
|
||||
isOverlay() and
|
||||
// numlines is used to restrict attention to fully extracted files and
|
||||
// ignore skeleton extracted files in the overlay
|
||||
exists(@locatable l | numlines(l, _, _, _) and file = getRawFile(l))
|
||||
}
|
||||
|
||||
/**
|
||||
* A `@locatable` that should be discarded in the base variant if its file is
|
||||
* extracted in the overlay variant.
|
||||
@@ -54,7 +45,7 @@ abstract class DiscardableLocatable extends @locatable {
|
||||
|
||||
overlay[discard_entity]
|
||||
private predicate discardLocatable(@locatable el) {
|
||||
extractedInOverlay(el.(DiscardableLocatable).getRawFileInBase())
|
||||
overlayChangedFiles(el.(DiscardableLocatable).getRawFileInBase())
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -77,7 +68,45 @@ abstract class DiscardableReferableLocatable extends @locatable {
|
||||
overlay[discard_entity]
|
||||
private predicate discardReferableLocatable(@locatable el) {
|
||||
exists(DiscardableReferableLocatable drl | drl = el |
|
||||
extractedInOverlay(drl.getRawFileInBase()) and
|
||||
overlayChangedFiles(drl.getRawFileInBase()) and
|
||||
not drl.existsInOverlay()
|
||||
)
|
||||
}
|
||||
|
||||
overlay[local]
|
||||
private predicate baseConfigLocatable(@configLocatable l) { not isOverlay() and exists(l) }
|
||||
|
||||
overlay[local]
|
||||
private predicate overlayHasConfigLocatables() {
|
||||
isOverlay() and
|
||||
exists(@configLocatable el)
|
||||
}
|
||||
|
||||
overlay[discard_entity]
|
||||
private predicate discardBaseConfigLocatable(@configLocatable el) {
|
||||
// The properties extractor is currently not incremental, so if
|
||||
// the overlay contains any config locatables, the overlay should
|
||||
// contain a full extraction and all config locatables from base
|
||||
// should be discarded.
|
||||
baseConfigLocatable(el) and overlayHasConfigLocatables()
|
||||
}
|
||||
|
||||
overlay[local]
|
||||
private predicate baseXmlLocatable(@xmllocatable l) {
|
||||
not isOverlay() and not files(l, _) and not xmlNs(l, _, _, _)
|
||||
}
|
||||
|
||||
overlay[local]
|
||||
private predicate overlayHasXmlLocatable() {
|
||||
isOverlay() and
|
||||
exists(@xmllocatable l | not files(l, _) and not xmlNs(l, _, _, _))
|
||||
}
|
||||
|
||||
overlay[discard_entity]
|
||||
private predicate discardBaseXmlLocatable(@xmllocatable el) {
|
||||
// The XML extractor is currently not incremental, so if
|
||||
// the overlay contains any XML locatables, the overlay should
|
||||
// contain a full extraction and all XML locatables from base
|
||||
// should be discarded.
|
||||
baseXmlLocatable(el) and overlayHasXmlLocatable()
|
||||
}
|
||||
|
||||
@@ -66,6 +66,10 @@ private class JoinBlock extends BasicBlock {
|
||||
JoinBlock() { 2 <= strictcount(this.getAPredecessor()) }
|
||||
}
|
||||
|
||||
private class ReachableBlock extends BasicBlock {
|
||||
ReachableBlock() { hasDominanceInformation(this) }
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `bb` is a block that is collectively dominated by a set of one or
|
||||
* more actions that individually does not dominate the exit.
|
||||
@@ -74,7 +78,7 @@ private predicate postActionBlock(BasicBlock bb, ActionConfiguration conf) {
|
||||
bb = nonDominatingActionBlock(conf)
|
||||
or
|
||||
if bb instanceof JoinBlock
|
||||
then forall(BasicBlock pred | pred = bb.getAPredecessor() | postActionBlock(pred, conf))
|
||||
then forall(ReachableBlock pred | pred = bb.getAPredecessor() | postActionBlock(pred, conf))
|
||||
else postActionBlock(bb.getAPredecessor(), conf)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
/**
|
||||
* DEPRECATED: Now modeled using data extensions instead.
|
||||
*
|
||||
* Provides classes and predicates for working with the Castor framework.
|
||||
*/
|
||||
overlay[local?]
|
||||
module;
|
||||
deprecated module;
|
||||
|
||||
import java
|
||||
|
||||
@@ -13,7 +15,9 @@ class CastorUnmarshaller extends RefType {
|
||||
CastorUnmarshaller() { this.hasQualifiedName("org.exolab.castor.xml", "Unmarshaller") }
|
||||
}
|
||||
|
||||
/** A method with the name `unmarshal` declared in `org.exolab.castor.xml.Unmarshaller`. */
|
||||
/**
|
||||
* A method with the name `unmarshal` declared in `org.exolab.castor.xml.Unmarshaller`.
|
||||
*/
|
||||
class CastorUnmarshalMethod extends Method {
|
||||
CastorUnmarshalMethod() {
|
||||
this.getDeclaringType() instanceof CastorUnmarshaller and
|
||||
|
||||
@@ -17,10 +17,12 @@ class UnsafeHessianInput extends RefType {
|
||||
}
|
||||
|
||||
/**
|
||||
* DEPRECATED: Now modeled using data extensions instead.
|
||||
*
|
||||
* A AbstractHessianInput or Hessian2StreamingInput subclass readObject method.
|
||||
* This is either `AbstractHessianInput.readObject` or `Hessian2StreamingInput.readObject`.
|
||||
*/
|
||||
class UnsafeHessianInputReadObjectMethod extends Method {
|
||||
deprecated class UnsafeHessianInputReadObjectMethod extends Method {
|
||||
UnsafeHessianInputReadObjectMethod() {
|
||||
this.getDeclaringType().getAnAncestor() instanceof UnsafeHessianInput and
|
||||
this.getName() = "readObject"
|
||||
@@ -34,8 +36,12 @@ class BurlapInput extends RefType {
|
||||
BurlapInput() { this.hasQualifiedName("com.caucho.burlap.io", "BurlapInput") }
|
||||
}
|
||||
|
||||
/** A method with the name `readObject` declared in `com.caucho.burlap.io.BurlapInput`. */
|
||||
class BurlapInputReadObjectMethod extends Method {
|
||||
/**
|
||||
* DEPRECATED: Now modeled using data extensions instead.
|
||||
*
|
||||
* A method with the name `readObject` declared in `com.caucho.burlap.io.BurlapInput`.
|
||||
*/
|
||||
deprecated class BurlapInputReadObjectMethod extends Method {
|
||||
BurlapInputReadObjectMethod() {
|
||||
this.getDeclaringType() instanceof BurlapInput and
|
||||
this.getName() = "readObject"
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
/**
|
||||
* DEPRECATED: Now modeled using data extensions instead.
|
||||
*
|
||||
* Provides classes and predicates for working with the JYaml framework.
|
||||
*/
|
||||
overlay[local?]
|
||||
module;
|
||||
deprecated module;
|
||||
|
||||
import java
|
||||
|
||||
|
||||
@@ -19,8 +19,12 @@ class JabsorbUnmarshallMethod extends Method {
|
||||
}
|
||||
}
|
||||
|
||||
/** The deserialization method `fromJSON`. */
|
||||
class JabsorbFromJsonMethod extends Method {
|
||||
/**
|
||||
* DEPRECATED: Now modeled using data extensions instead.
|
||||
*
|
||||
* The deserialization method `fromJSON`.
|
||||
*/
|
||||
deprecated class JabsorbFromJsonMethod extends Method {
|
||||
JabsorbFromJsonMethod() {
|
||||
this.getDeclaringType().getAnAncestor() instanceof JabsorbSerializer and
|
||||
this.getName() = "fromJSON"
|
||||
|
||||
@@ -13,8 +13,12 @@ class YamlBeansReader extends RefType {
|
||||
YamlBeansReader() { this.hasQualifiedName("com.esotericsoftware.yamlbeans", "YamlReader") }
|
||||
}
|
||||
|
||||
/** A method with the name `read` declared in `com.esotericsoftware.yamlbeans.YamlReader`. */
|
||||
class YamlBeansReaderReadMethod extends Method {
|
||||
/**
|
||||
* DEPRECATED: Now modeled using data extensions instead.
|
||||
*
|
||||
* A method with the name `read` declared in `com.esotericsoftware.yamlbeans.YamlReader`.
|
||||
*/
|
||||
deprecated class YamlBeansReaderReadMethod extends Method {
|
||||
YamlBeansReaderReadMethod() {
|
||||
this.getDeclaringType() instanceof YamlBeansReader and
|
||||
this.getName() = "read"
|
||||
|
||||
@@ -16,10 +16,12 @@ class TypeApacheRandomStringUtils extends Class {
|
||||
}
|
||||
|
||||
/**
|
||||
* DEPRECATED: Now modeled using data extensions instead.
|
||||
*
|
||||
* The method `deserialize` in either `org.apache.commons.lang.SerializationUtils`
|
||||
* or `org.apache.commons.lang3.SerializationUtils`.
|
||||
*/
|
||||
class MethodApacheSerializationUtilsDeserialize extends Method {
|
||||
deprecated class MethodApacheSerializationUtilsDeserialize extends Method {
|
||||
MethodApacheSerializationUtilsDeserialize() {
|
||||
this.getDeclaringType()
|
||||
.hasQualifiedName(["org.apache.commons.lang", "org.apache.commons.lang3"],
|
||||
|
||||
@@ -31,20 +31,10 @@ private module ValidationMethod<DataFlow::guardChecksSig/3 validationGuard> {
|
||||
* Holds if `m` validates its `arg`th parameter by using `validationGuard`.
|
||||
*/
|
||||
private predicate validationMethod(Method m, int arg) {
|
||||
exists(
|
||||
Guard g, SsaImplicitInit var, ControlFlow::ExitNode exit, ControlFlowNode normexit,
|
||||
boolean branch
|
||||
|
|
||||
exists(Guard g, SsaImplicitInit var, ControlFlow::NormalExitNode normexit, boolean branch |
|
||||
validationGuard(g, var.getAUse(), branch) and
|
||||
var.isParameterDefinition(m.getParameter(arg)) and
|
||||
exit.getEnclosingCallable() = m and
|
||||
normexit.getANormalSuccessor() = exit and
|
||||
1 = strictcount(ControlFlowNode n | n.getANormalSuccessor() = exit)
|
||||
|
|
||||
exists(ConditionNode conditionNode |
|
||||
g = conditionNode.getCondition() and conditionNode.getABranchSuccessor(branch) = exit
|
||||
)
|
||||
or
|
||||
normexit.getEnclosingCallable() = m and
|
||||
g.controls(normexit.getBasicBlock(), branch)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -3,17 +3,16 @@
|
||||
*/
|
||||
|
||||
import semmle.code.java.dataflow.FlowSources
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
private import semmle.code.java.dataflow.FlowSinks
|
||||
private import semmle.code.java.dispatch.VirtualDispatch
|
||||
private import semmle.code.java.frameworks.Kryo
|
||||
private import semmle.code.java.frameworks.XStream
|
||||
private import semmle.code.java.frameworks.SnakeYaml
|
||||
private import semmle.code.java.frameworks.FastJson
|
||||
private import semmle.code.java.frameworks.JYaml
|
||||
private import semmle.code.java.frameworks.JsonIo
|
||||
private import semmle.code.java.frameworks.YamlBeans
|
||||
private import semmle.code.java.frameworks.HessianBurlap
|
||||
private import semmle.code.java.frameworks.Castor
|
||||
private import semmle.code.java.frameworks.Jackson
|
||||
private import semmle.code.java.frameworks.Jabsorb
|
||||
private import semmle.code.java.frameworks.Jms
|
||||
@@ -23,10 +22,17 @@ private import semmle.code.java.frameworks.google.Gson
|
||||
private import semmle.code.java.frameworks.apache.Lang
|
||||
private import semmle.code.java.Reflection
|
||||
|
||||
private class ObjectInputStreamReadObjectMethod extends Method {
|
||||
ObjectInputStreamReadObjectMethod() {
|
||||
private class ObjectInputReadObjectMethod extends Method {
|
||||
ObjectInputReadObjectMethod() {
|
||||
this.getDeclaringType().getASourceSupertype*() instanceof TypeObjectInput and
|
||||
this.hasName("readObject")
|
||||
}
|
||||
}
|
||||
|
||||
private class ObjectInputStreamReadUnsharedMethod extends Method {
|
||||
ObjectInputStreamReadUnsharedMethod() {
|
||||
this.getDeclaringType().getASourceSupertype*() instanceof TypeObjectInputStream and
|
||||
(this.hasName("readObject") or this.hasName("readUnshared"))
|
||||
this.hasName("readUnshared")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,13 +50,6 @@ private class SafeObjectInputStreamType extends RefType {
|
||||
}
|
||||
}
|
||||
|
||||
private class XmlDecoderReadObjectMethod extends Method {
|
||||
XmlDecoderReadObjectMethod() {
|
||||
this.getDeclaringType().hasQualifiedName("java.beans", "XMLDecoder") and
|
||||
this.hasName("readObject")
|
||||
}
|
||||
}
|
||||
|
||||
private module SafeXStreamConfig implements DataFlow::ConfigSig {
|
||||
predicate isSource(DataFlow::Node src) {
|
||||
any(XStreamEnableWhiteListing ma).getQualifier().(VarAccess).getVariable().getAnAccess() =
|
||||
@@ -142,20 +141,25 @@ private module SafeKryoConfig implements DataFlow::ConfigSig {
|
||||
|
||||
private module SafeKryoFlow = DataFlow::Global<SafeKryoConfig>;
|
||||
|
||||
private class DefaultUnsafeDeserializationSink extends DataFlow::Node {
|
||||
DefaultUnsafeDeserializationSink() { sinkNode(this, "unsafe-deserialization") }
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `ma` is a call that deserializes data from `sink`.
|
||||
*
|
||||
* Note that this does not include deserialization methods that have been
|
||||
* specified using models-as-data.
|
||||
*/
|
||||
predicate unsafeDeserialization(MethodCall ma, Expr sink) {
|
||||
exists(Method m | m = ma.getMethod() |
|
||||
m instanceof ObjectInputStreamReadObjectMethod and
|
||||
m instanceof ObjectInputReadObjectMethod and
|
||||
sink = ma.getQualifier() and
|
||||
not exists(DataFlow::ExprNode node |
|
||||
node.getExpr() = sink and
|
||||
node.getTypeBound() instanceof SafeObjectInputStreamType
|
||||
)
|
||||
not DataFlow::exprNode(sink).getTypeBound() instanceof SafeObjectInputStreamType
|
||||
or
|
||||
m instanceof XmlDecoderReadObjectMethod and
|
||||
sink = ma.getQualifier()
|
||||
m instanceof ObjectInputStreamReadUnsharedMethod and
|
||||
sink = ma.getQualifier() and
|
||||
not DataFlow::exprNode(sink).getTypeBound() instanceof SafeObjectInputStreamType
|
||||
or
|
||||
m instanceof XStreamReadObjectMethod and
|
||||
sink = ma.getAnArgument() and
|
||||
@@ -165,9 +169,6 @@ predicate unsafeDeserialization(MethodCall ma, Expr sink) {
|
||||
sink = ma.getAnArgument() and
|
||||
not SafeKryoFlow::flowToExpr(ma.getQualifier())
|
||||
or
|
||||
m instanceof MethodApacheSerializationUtilsDeserialize and
|
||||
sink = ma.getArgument(0)
|
||||
or
|
||||
ma instanceof UnsafeSnakeYamlParse and
|
||||
sink = ma.getArgument(0)
|
||||
or
|
||||
@@ -175,23 +176,6 @@ predicate unsafeDeserialization(MethodCall ma, Expr sink) {
|
||||
not fastJsonLooksSafe() and
|
||||
sink = ma.getArgument(0)
|
||||
or
|
||||
ma.getMethod() instanceof JYamlLoaderUnsafeLoadMethod and
|
||||
sink = ma.getArgument(0)
|
||||
or
|
||||
ma.getMethod() instanceof JsonIoJsonToJavaMethod and
|
||||
sink = ma.getArgument(0)
|
||||
or
|
||||
ma.getMethod() instanceof JsonIoReadObjectMethod and
|
||||
sink = ma.getQualifier()
|
||||
or
|
||||
ma.getMethod() instanceof YamlBeansReaderReadMethod and sink = ma.getQualifier()
|
||||
or
|
||||
ma.getMethod() instanceof UnsafeHessianInputReadObjectMethod and sink = ma.getQualifier()
|
||||
or
|
||||
ma.getMethod() instanceof CastorUnmarshalMethod and sink = ma.getAnArgument()
|
||||
or
|
||||
ma.getMethod() instanceof BurlapInputReadObjectMethod and sink = ma.getQualifier()
|
||||
or
|
||||
ma.getMethod() instanceof ObjectMapperReadMethod and
|
||||
sink = ma.getArgument(0) and
|
||||
(
|
||||
@@ -207,9 +191,6 @@ predicate unsafeDeserialization(MethodCall ma, Expr sink) {
|
||||
sink = ma.getArgument(2) and
|
||||
UnsafeTypeFlow::flowToExpr(ma.getArgument(1))
|
||||
or
|
||||
m instanceof JabsorbFromJsonMethod and
|
||||
sink = ma.getArgument(0)
|
||||
or
|
||||
m instanceof JoddJsonParseMethod and
|
||||
sink = ma.getArgument(0) and
|
||||
(
|
||||
@@ -236,10 +217,17 @@ predicate unsafeDeserialization(MethodCall ma, Expr sink) {
|
||||
|
||||
/** A sink for unsafe deserialization. */
|
||||
class UnsafeDeserializationSink extends ApiSinkNode, DataFlow::ExprNode {
|
||||
UnsafeDeserializationSink() { unsafeDeserialization(_, this.getExpr()) }
|
||||
MethodCall mc;
|
||||
|
||||
UnsafeDeserializationSink() {
|
||||
unsafeDeserialization(mc, this.getExpr())
|
||||
or
|
||||
this instanceof DefaultUnsafeDeserializationSink and
|
||||
this.getExpr() = [mc.getQualifier(), mc.getAnArgument()]
|
||||
}
|
||||
|
||||
/** Gets a call that triggers unsafe deserialization. */
|
||||
MethodCall getMethodCall() { unsafeDeserialization(result, this.getExpr()) }
|
||||
MethodCall getMethodCall() { result = mc }
|
||||
}
|
||||
|
||||
/** Holds if `node` is a sanitizer for unsafe deserialization */
|
||||
|
||||
@@ -47,6 +47,18 @@ module PolynomialRedosConfig implements DataFlow::ConfigSig {
|
||||
node instanceof SimpleTypeSanitizer or
|
||||
node.asExpr().(MethodCall).getMethod() instanceof LengthRestrictedMethod
|
||||
}
|
||||
|
||||
predicate observeDiffInformedIncrementalMode() { any() }
|
||||
|
||||
Location getASelectedSinkLocation(DataFlow::Node sink) {
|
||||
exists(SuperlinearBackTracking::PolynomialBackTrackingTerm regexp |
|
||||
regexp.getRootTerm() = sink.(PolynomialRedosSink).getRegExp()
|
||||
|
|
||||
result = sink.getLocation()
|
||||
or
|
||||
result = regexp.getLocation()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
module PolynomialRedosFlow = TaintTracking::Global<PolynomialRedosConfig>;
|
||||
|
||||
33
java/ql/src/Language Abuse/LabelInSwitch.md
Normal file
33
java/ql/src/Language Abuse/LabelInSwitch.md
Normal file
@@ -0,0 +1,33 @@
|
||||
## Overview
|
||||
|
||||
Java allows to freely mix `case` labels and ordinary statement labels in the body of
|
||||
a `switch` statement. However, this is confusing to read and may be the result of a typo.
|
||||
|
||||
## Recommendation
|
||||
|
||||
Examine the non-`case` labels to see whether they were meant to be `case` labels. If not, consider placing the non-`case` label headed code into a function, and use a function call inline in the `switch` body instead.
|
||||
|
||||
## Example
|
||||
|
||||
```java
|
||||
public class Test {
|
||||
void test_noncase_label_in_switch(int p) {
|
||||
switch (p) {
|
||||
case 1: // Compliant
|
||||
case2: // Non-compliant, likely a typo
|
||||
break;
|
||||
case 3:
|
||||
notcaselabel: // Non-compliant, confusing to read
|
||||
for (;;) {
|
||||
break notcaselabel;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
In the example, `case2` is most likely a typo and should be fixed. For the intentional `notcaselabel`, placing the labelled code into a function and then calling that function is more readable.
|
||||
|
||||
## References
|
||||
|
||||
CodeQL query help for JavaScript and TypeScript - [Non-case label in switch statement](https://codeql.github.com/codeql-query-help/javascript/js-label-in-switch/).
|
||||
25
java/ql/src/Language Abuse/LabelInSwitch.ql
Normal file
25
java/ql/src/Language Abuse/LabelInSwitch.ql
Normal file
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* @id java/label-in-switch
|
||||
* @name Non-case label in switch statement
|
||||
* @description A non-case label appearing in a switch statement
|
||||
* is confusing to read or may even indicate a bug.
|
||||
* @previous-id java/label-in-case
|
||||
* @kind problem
|
||||
* @precision very-high
|
||||
* @problem.severity recommendation
|
||||
* @tags quality
|
||||
* maintainability
|
||||
* readability
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
from LabeledStmt l, SwitchStmt s, string alert
|
||||
where
|
||||
l = s.getAStmt+() and
|
||||
if exists(JumpStmt jump | jump.getTargetLabel() = l)
|
||||
then alert = "Confusing non-case label in switch statement."
|
||||
else
|
||||
alert =
|
||||
"Possibly erroneous non-case label in switch statement. The case keyword might be missing."
|
||||
select l, alert
|
||||
@@ -6,10 +6,10 @@
|
||||
* @problem.severity warning
|
||||
* @precision medium
|
||||
* @id java/type-variable-hides-type
|
||||
* @tags reliability
|
||||
* @tags quality
|
||||
* maintainability
|
||||
* readability
|
||||
* types
|
||||
* quality
|
||||
*/
|
||||
|
||||
import java
|
||||
|
||||
@@ -29,14 +29,13 @@ that something is amiss, but further investigation will be needed to clarify
|
||||
the cause of the problem. Here are two possibilities:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
A class and its superclass represent fundamentally the same abstraction.
|
||||
<p>
|
||||
1. A class and its superclass represent fundamentally the same abstraction.
|
||||
In this case, they should generally be merged together (see the 'Collapse
|
||||
Hierarchy' refactoring on pp.279-80 of [Fowler]). For example, suppose
|
||||
that in the following class hierarchy both A and C represent fundamentally
|
||||
the same thing, then they should be merged together as shown:
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tbody><tr>
|
||||
@@ -48,11 +47,9 @@ the same thing, then they should be merged together as shown:
|
||||
<td>After</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>
|
||||
The class hierarchy is trying to represent variation in more than one
|
||||
2. The class hierarchy is trying to represent variation in more than one
|
||||
dimension using single inheritance. This can lead to an unnecessarily
|
||||
deep class hierarchy with lots of code duplication. For example, consider
|
||||
the following:
|
||||
@@ -81,9 +78,6 @@ amount of code duplication that will be necessary.
|
||||
For readers who are interested in this sort of approach, a good reference is
|
||||
[West].
|
||||
</p>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -49,21 +49,17 @@ need to be part of the class. (A classic example of this is the
|
||||
<code>std::string</code> class in the C++ Standard Library.) As [Sutter]
|
||||
observes, there are at least two key problems with this approach:
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
It may be possible to generalize some of the utility methods beyond the
|
||||
<i>
|
||||
1. It may be possible to generalize some of the utility methods beyond the
|
||||
narrow context of the class in question -- by bundling them with the class,
|
||||
the class author reduces the scope for functionality reuse.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
It's usually impossible for the class author to know every possible
|
||||
2. It's usually impossible for the class author to know every possible
|
||||
operation that the user might want to perform on the class, so the public
|
||||
interface will inherently be incomplete. New utility methods will end up
|
||||
having a different syntax to the privileged public methods in the class,
|
||||
negatively impacting on code consistency.
|
||||
</li>
|
||||
</ul>
|
||||
</i>
|
||||
|
||||
To refactor a class like this, simply move its utility methods elsewhere,
|
||||
paring its public interface down to the bare minimum.
|
||||
|
||||
@@ -25,11 +25,9 @@ If the class is too big, you should split it into multiple smaller classes.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>
|
||||
If several of the fields are part of the same abstraction, you should
|
||||
group them into a separate class, using the 'Extract Class' refactoring described
|
||||
in [Fowler].
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -46,21 +46,17 @@ need to be part of the class. (A classic example of this is the
|
||||
<code>std::string</code> class in the C++ Standard Library.) As [Sutter]
|
||||
observes, there are at least two key problems with this approach:
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
It may be possible to generalize some of the utility methods beyond the
|
||||
<i>
|
||||
1. It may be possible to generalize some of the utility methods beyond the
|
||||
narrow context of the class in question -- by bundling them with the class,
|
||||
the class author reduces the scope for functionality reuse.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
It's usually impossible for the class author to know every possible
|
||||
2. It's usually impossible for the class author to know every possible
|
||||
operation that the user might want to perform on the class, so the public
|
||||
interface will inherently be incomplete. New utility methods will end up
|
||||
having a different syntax to the privileged public methods in the class,
|
||||
negatively impacting on code consistency.
|
||||
</li>
|
||||
</ul>
|
||||
</i>
|
||||
|
||||
To refactor a class like this, simply move its utility methods elsewhere,
|
||||
paring its public interface down to the bare minimum.
|
||||
|
||||
@@ -23,6 +23,7 @@ class ReservedUnicodeInLiteral extends Literal {
|
||||
|
||||
ReservedUnicodeInLiteral() {
|
||||
not this instanceof CharacterLiteral and
|
||||
this.getCompilationUnit().fromSource() and
|
||||
exists(int codePoint |
|
||||
this.getLiteral().codePointAt(indexStart) = codePoint and
|
||||
(
|
||||
@@ -45,6 +46,9 @@ where
|
||||
literal.getIndexStart() = charIndex and
|
||||
literal.getLiteral().codePointAt(charIndex) = codePoint and
|
||||
not literal.getEnclosingCallable() instanceof LikelyTestMethod and
|
||||
// Kotlin extraction doesn't preserve the literal value so we can't distinguish
|
||||
// between control characters and their escaped versions, so we exclude Kotlin
|
||||
// to avoid false positives.
|
||||
not literal.getFile().isKotlinSourceFile()
|
||||
select literal,
|
||||
"Literal value contains control or non-printable whitespace character(s) starting with Unicode code point "
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
| Test.kt:3:8:80:1 | Exceptional Exit | 0 | Test.kt:3:8:80:1 | Exceptional Exit |
|
||||
| Test.kt:3:8:80:1 | Exit | 0 | Test.kt:3:8:80:1 | Exit |
|
||||
| Test.kt:3:8:80:1 | { ... } | 0 | Test.kt:3:8:80:1 | { ... } |
|
||||
| Test.kt:3:8:80:1 | { ... } | 1 | Test.kt:3:1:80:1 | super(...) |
|
||||
| Test.kt:3:8:80:1 | { ... } | 2 | Test.kt:3:8:80:1 | { ... } |
|
||||
| Test.kt:3:8:80:1 | { ... } | 3 | Test.kt:3:8:80:1 | Exit |
|
||||
| Test.kt:3:8:80:1 | { ... } | 3 | Test.kt:3:8:80:1 | Normal Exit |
|
||||
| Test.kt:4:2:79:2 | Exceptional Exit | 0 | Test.kt:4:2:79:2 | Exceptional Exit |
|
||||
| Test.kt:4:2:79:2 | Exit | 0 | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:4:2:79:2 | Normal Exit | 0 | Test.kt:4:2:79:2 | Normal Exit |
|
||||
| Test.kt:4:13:79:2 | { ... } | 0 | Test.kt:4:13:79:2 | { ... } |
|
||||
| Test.kt:4:13:79:2 | { ... } | 1 | Test.kt:5:7:5:7 | var ...; |
|
||||
| Test.kt:4:13:79:2 | { ... } | 2 | Test.kt:5:16:5:16 | 0 |
|
||||
@@ -102,7 +106,9 @@
|
||||
| Test.kt:43:3:43:3 | <Expr>; | 8 | Test.kt:77:3:77:8 | ...=... |
|
||||
| Test.kt:43:3:43:3 | <Expr>; | 9 | Test.kt:78:3:78:8 | INSTANCE |
|
||||
| Test.kt:43:3:43:3 | <Expr>; | 10 | Test.kt:78:3:78:8 | return ... |
|
||||
| Test.kt:82:1:89:1 | Exceptional Exit | 0 | Test.kt:82:1:89:1 | Exceptional Exit |
|
||||
| Test.kt:82:1:89:1 | Exit | 0 | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:1:89:1 | Normal Exit | 0 | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | 0 | Test.kt:82:21:89:1 | { ... } |
|
||||
| Test.kt:82:21:89:1 | { ... } | 1 | Test.kt:83:2:88:2 | try ... |
|
||||
| Test.kt:82:21:89:1 | { ... } | 2 | Test.kt:83:6:86:2 | { ... } |
|
||||
@@ -117,7 +123,9 @@
|
||||
| Test.kt:86:4:88:2 | catch (...) | 2 | Test.kt:86:34:88:2 | { ... } |
|
||||
| Test.kt:86:4:88:2 | catch (...) | 3 | Test.kt:87:10:87:10 | 2 |
|
||||
| Test.kt:86:4:88:2 | catch (...) | 4 | Test.kt:87:3:87:10 | return ... |
|
||||
| Test.kt:91:1:98:1 | Exceptional Exit | 0 | Test.kt:91:1:98:1 | Exceptional Exit |
|
||||
| Test.kt:91:1:98:1 | Exit | 0 | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:1:98:1 | Normal Exit | 0 | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | 0 | Test.kt:91:22:98:1 | { ... } |
|
||||
| Test.kt:91:22:98:1 | { ... } | 1 | Test.kt:92:2:97:2 | try ... |
|
||||
| Test.kt:91:22:98:1 | { ... } | 2 | Test.kt:92:6:95:2 | { ... } |
|
||||
@@ -133,6 +141,7 @@
|
||||
| Test.kt:95:4:97:2 | catch (...) | 3 | Test.kt:96:10:96:10 | 2 |
|
||||
| Test.kt:95:4:97:2 | catch (...) | 4 | Test.kt:96:3:96:10 | return ... |
|
||||
| Test.kt:100:1:110:1 | Exit | 0 | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:100:1:110:1 | Normal Exit | 0 | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:100:25:110:1 | { ... } | 0 | Test.kt:100:25:110:1 | { ... } |
|
||||
| Test.kt:100:25:110:1 | { ... } | 1 | Test.kt:101:5:103:5 | <Expr>; |
|
||||
| Test.kt:100:25:110:1 | { ... } | 2 | Test.kt:101:5:103:5 | when ... |
|
||||
@@ -147,6 +156,7 @@
|
||||
| Test.kt:101:33:103:5 | { ... } | 0 | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:101:33:103:5 | { ... } | 1 | Test.kt:102:15:102:25 | new Exception(...) |
|
||||
| Test.kt:101:33:103:5 | { ... } | 2 | Test.kt:102:9:102:25 | throw ... |
|
||||
| Test.kt:101:33:103:5 | { ... } | 3 | Test.kt:100:1:110:1 | Exceptional Exit |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | 0 | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | 1 | Test.kt:105:5:109:5 | when ... |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | 2 | Test.kt:105:9:107:5 | ... -> ... |
|
||||
@@ -165,7 +175,9 @@
|
||||
| Test.kt:107:27:109:5 | { ... } | 1 | Test.kt:108:9:108:29 | <Expr>; |
|
||||
| Test.kt:107:27:109:5 | { ... } | 2 | Test.kt:108:17:108:28 | "y not null" |
|
||||
| Test.kt:107:27:109:5 | { ... } | 3 | Test.kt:108:9:108:29 | println(...) |
|
||||
| Test.kt:112:1:116:1 | Exceptional Exit | 0 | Test.kt:112:1:116:1 | Exceptional Exit |
|
||||
| Test.kt:112:1:116:1 | Exit | 0 | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:112:1:116:1 | Normal Exit | 0 | Test.kt:112:1:116:1 | Normal Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | 0 | Test.kt:112:32:116:1 | { ... } |
|
||||
| Test.kt:112:32:116:1 | { ... } | 1 | Test.kt:113:5:115:5 | <Expr>; |
|
||||
| Test.kt:112:32:116:1 | { ... } | 2 | Test.kt:113:5:115:5 | when ... |
|
||||
@@ -174,7 +186,9 @@
|
||||
| Test.kt:112:32:116:1 | { ... } | 5 | Test.kt:113:9:113:9 | x |
|
||||
| Test.kt:113:14:113:14 | y | 0 | Test.kt:113:14:113:14 | y |
|
||||
| Test.kt:113:17:115:5 | { ... } | 0 | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:118:1:124:1 | Exceptional Exit | 0 | Test.kt:118:1:124:1 | Exceptional Exit |
|
||||
| Test.kt:118:1:124:1 | Exit | 0 | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:118:1:124:1 | Normal Exit | 0 | Test.kt:118:1:124:1 | Normal Exit |
|
||||
| Test.kt:118:37:124:1 | { ... } | 0 | Test.kt:118:37:124:1 | { ... } |
|
||||
| Test.kt:118:37:124:1 | { ... } | 1 | Test.kt:119:2:123:12 | <Expr>; |
|
||||
| Test.kt:118:37:124:1 | { ... } | 2 | Test.kt:119:2:123:12 | when ... |
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
| Test.kt:3:8:80:1 | { ... } | Test.kt:3:8:80:1 | Exit |
|
||||
| Test.kt:4:2:79:2 | Normal Exit | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:4:2:79:2 | Normal Exit |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:11:3:16:3 | ... -> ... |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:18:3:18:3 | <Expr>; |
|
||||
@@ -10,6 +13,7 @@
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:38:16:41:3 | { ... } |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:43:3:43:3 | <Expr>; |
|
||||
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:4:2:79:2 | Normal Exit |
|
||||
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:21:3:24:9 | ... -> ... |
|
||||
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:22:4:22:4 | <Expr>; |
|
||||
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
|
||||
@@ -27,13 +31,18 @@
|
||||
| Test.kt:35:3:35:3 | <Expr>; | Test.kt:43:3:43:3 | <Expr>; |
|
||||
| Test.kt:38:9:38:9 | x | Test.kt:38:16:41:3 | { ... } |
|
||||
| Test.kt:38:9:38:9 | x | Test.kt:43:3:43:3 | <Expr>; |
|
||||
| Test.kt:82:1:89:1 | Normal Exit | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:84:7:84:7 | x |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) |
|
||||
| Test.kt:91:1:98:1 | Normal Exit | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:93:7:93:7 | x |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:22 | y |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | <Expr>; |
|
||||
@@ -41,15 +50,20 @@
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:101:22:101:22 | y | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:105:20:107:5 | { ... } |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:112:1:116:1 | Normal Exit | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Normal Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:113:14:113:14 | y | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:118:1:124:1 | Normal Exit | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:118:1:124:1 | Normal Exit |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:121:9:121:9 | <Expr>; |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:122:12:122:16 | ... -> ... |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:123:8:123:10 | { ... } |
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
| Test.kt:3:8:80:1 | Exceptional Exit | Test.kt:3:8:80:1 | Exit |
|
||||
| Test.kt:3:8:80:1 | { ... } | Test.kt:3:8:80:1 | Exit |
|
||||
| Test.kt:4:2:79:2 | Exceptional Exit | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:4:2:79:2 | Normal Exit | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:11:3:16:3 | ... -> ... |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } |
|
||||
| Test.kt:11:3:16:3 | ... -> ... | Test.kt:18:3:18:3 | <Expr>; |
|
||||
| Test.kt:11:14:14:3 | { ... } | Test.kt:18:3:18:3 | <Expr>; |
|
||||
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:21:3:24:9 | ... -> ... |
|
||||
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:22:4:22:4 | <Expr>; |
|
||||
| Test.kt:21:3:24:9 | ... -> ... | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:21:3:24:9 | ... -> ... | Test.kt:4:2:79:2 | Normal Exit |
|
||||
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
|
||||
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:35:3:35:3 | <Expr>; |
|
||||
| Test.kt:30:15:33:3 | { ... } | Test.kt:35:3:35:3 | <Expr>; |
|
||||
@@ -12,15 +16,20 @@
|
||||
| Test.kt:38:9:38:9 | x | Test.kt:38:16:41:3 | { ... } |
|
||||
| Test.kt:38:9:38:9 | x | Test.kt:43:3:43:3 | <Expr>; |
|
||||
| Test.kt:38:16:41:3 | { ... } | Test.kt:38:9:38:9 | x |
|
||||
| Test.kt:43:3:43:3 | <Expr>; | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:43:3:43:3 | <Expr>; | Test.kt:4:2:79:2 | Normal Exit |
|
||||
| Test.kt:82:1:89:1 | Exceptional Exit | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:1:89:1 | Normal Exit | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:84:7:84:7 | x |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) |
|
||||
| Test.kt:84:7:84:7 | x | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:84:7:84:7 | x | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:91:1:98:1 | Exceptional Exit | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:1:98:1 | Normal Exit | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:93:7:93:7 | x |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) |
|
||||
| Test.kt:93:7:93:7 | x | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:93:7:93:7 | x | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:100:1:110:1 | Normal Exit | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:22 | y |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:101:22:101:22 | y | Test.kt:101:33:103:5 | { ... } |
|
||||
@@ -28,18 +37,22 @@
|
||||
| Test.kt:101:33:103:5 | { ... } | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:105:20:107:5 | { ... } |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:105:20:107:5 | { ... } | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:105:20:107:5 | { ... } | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:107:27:109:5 | { ... } | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:107:27:109:5 | { ... } | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:112:1:116:1 | Exceptional Exit | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:112:1:116:1 | Normal Exit | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Normal Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y |
|
||||
| Test.kt:113:14:113:14 | y | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:113:14:113:14 | y | Test.kt:112:1:116:1 | Normal Exit |
|
||||
| Test.kt:113:14:113:14 | y | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:113:17:115:5 | { ... } | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:113:17:115:5 | { ... } | Test.kt:112:1:116:1 | Normal Exit |
|
||||
| Test.kt:118:1:124:1 | Exceptional Exit | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:118:1:124:1 | Normal Exit | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:121:9:121:9 | <Expr>; |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:122:12:122:16 | ... -> ... |
|
||||
| Test.kt:121:9:121:9 | <Expr>; | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:121:9:121:9 | <Expr>; | Test.kt:118:1:124:1 | Normal Exit |
|
||||
| Test.kt:121:9:121:9 | <Expr>; | Test.kt:123:8:123:10 | { ... } |
|
||||
| Test.kt:122:12:122:16 | ... -> ... | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:123:8:123:10 | { ... } | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:122:12:122:16 | ... -> ... | Test.kt:118:1:124:1 | Normal Exit |
|
||||
| Test.kt:123:8:123:10 | { ... } | Test.kt:118:1:124:1 | Normal Exit |
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
#select
|
||||
| Test.kt:3:1:80:1 | super(...) | SuperConstructorInvocationStmt | Test.kt:3:8:80:1 | { ... } | BlockStmt |
|
||||
| Test.kt:3:8:80:1 | Exceptional Exit | Constructor | Test.kt:3:8:80:1 | Exit | Constructor |
|
||||
| Test.kt:3:8:80:1 | Exit | Constructor | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:3:8:80:1 | Normal Exit | Constructor | Test.kt:3:8:80:1 | Exit | Constructor |
|
||||
| Test.kt:3:8:80:1 | { ... } | BlockStmt | Test.kt:3:1:80:1 | super(...) | SuperConstructorInvocationStmt |
|
||||
| Test.kt:3:8:80:1 | { ... } | BlockStmt | Test.kt:3:8:80:1 | Exit | Constructor |
|
||||
| Test.kt:3:8:80:1 | { ... } | BlockStmt | Test.kt:3:8:80:1 | Normal Exit | Constructor |
|
||||
| Test.kt:4:2:79:2 | Exceptional Exit | Method | Test.kt:4:2:79:2 | Exit | Method |
|
||||
| Test.kt:4:2:79:2 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:4:2:79:2 | Normal Exit | Method | Test.kt:4:2:79:2 | Exit | Method |
|
||||
| Test.kt:4:13:79:2 | { ... } | BlockStmt | Test.kt:5:7:5:7 | var ...; | LocalVariableDeclStmt |
|
||||
| Test.kt:5:7:5:7 | var ...; | LocalVariableDeclStmt | Test.kt:5:16:5:16 | 0 | IntegerLiteral |
|
||||
| Test.kt:5:7:5:7 | x | LocalVariableDeclExpr | Test.kt:6:7:6:7 | var ...; | LocalVariableDeclStmt |
|
||||
@@ -53,7 +57,7 @@
|
||||
| Test.kt:22:4:22:9 | ...=... | AssignExpr | Test.kt:27:3:27:3 | <Expr>; | ExprStmt |
|
||||
| Test.kt:22:8:22:9 | 40 | LongLiteral | Test.kt:22:4:22:9 | ...=... | AssignExpr |
|
||||
| Test.kt:24:4:24:9 | INSTANCE | VarAccess | Test.kt:24:4:24:9 | return ... | ReturnStmt |
|
||||
| Test.kt:24:4:24:9 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Exit | Method |
|
||||
| Test.kt:24:4:24:9 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Normal Exit | Method |
|
||||
| Test.kt:27:3:27:3 | <Expr>; | ExprStmt | Test.kt:27:7:27:8 | 10 | IntegerLiteral |
|
||||
| Test.kt:27:3:27:8 | ...=... | AssignExpr | Test.kt:30:3:33:3 | <Expr>; | ExprStmt |
|
||||
| Test.kt:27:7:27:8 | 10 | IntegerLiteral | Test.kt:27:3:27:8 | ...=... | AssignExpr |
|
||||
@@ -106,8 +110,10 @@
|
||||
| Test.kt:77:3:77:8 | ...=... | AssignExpr | Test.kt:78:3:78:8 | INSTANCE | VarAccess |
|
||||
| Test.kt:77:7:77:8 | 40 | IntegerLiteral | Test.kt:77:3:77:8 | ...=... | AssignExpr |
|
||||
| Test.kt:78:3:78:8 | INSTANCE | VarAccess | Test.kt:78:3:78:8 | return ... | ReturnStmt |
|
||||
| Test.kt:78:3:78:8 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Exit | Method |
|
||||
| Test.kt:78:3:78:8 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Normal Exit | Method |
|
||||
| Test.kt:82:1:89:1 | Exceptional Exit | Method | Test.kt:82:1:89:1 | Exit | Method |
|
||||
| Test.kt:82:1:89:1 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:82:1:89:1 | Normal Exit | Method | Test.kt:82:1:89:1 | Exit | Method |
|
||||
| Test.kt:82:21:89:1 | { ... } | BlockStmt | Test.kt:83:2:88:2 | try ... | TryStmt |
|
||||
| Test.kt:83:2:88:2 | try ... | TryStmt | Test.kt:83:6:86:2 | { ... } | BlockStmt |
|
||||
| Test.kt:83:6:86:2 | { ... } | BlockStmt | Test.kt:84:7:84:7 | var ...; | LocalVariableDeclStmt |
|
||||
@@ -116,14 +122,16 @@
|
||||
| Test.kt:84:11:84:11 | o | VarAccess | Test.kt:84:11:84:18 | (...)... | CastExpr |
|
||||
| Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:84:7:84:7 | x | LocalVariableDeclExpr |
|
||||
| Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:86:4:88:2 | catch (...) | CatchClause |
|
||||
| Test.kt:85:3:85:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Exit | Method |
|
||||
| Test.kt:85:3:85:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Normal Exit | Method |
|
||||
| Test.kt:85:10:85:10 | 1 | IntegerLiteral | Test.kt:85:3:85:10 | return ... | ReturnStmt |
|
||||
| Test.kt:86:4:88:2 | catch (...) | CatchClause | Test.kt:86:11:86:31 | e | LocalVariableDeclExpr |
|
||||
| Test.kt:86:11:86:31 | e | LocalVariableDeclExpr | Test.kt:86:34:88:2 | { ... } | BlockStmt |
|
||||
| Test.kt:86:34:88:2 | { ... } | BlockStmt | Test.kt:87:10:87:10 | 2 | IntegerLiteral |
|
||||
| Test.kt:87:3:87:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Exit | Method |
|
||||
| Test.kt:87:3:87:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Normal Exit | Method |
|
||||
| Test.kt:87:10:87:10 | 2 | IntegerLiteral | Test.kt:87:3:87:10 | return ... | ReturnStmt |
|
||||
| Test.kt:91:1:98:1 | Exceptional Exit | Method | Test.kt:91:1:98:1 | Exit | Method |
|
||||
| Test.kt:91:1:98:1 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:91:1:98:1 | Normal Exit | Method | Test.kt:91:1:98:1 | Exit | Method |
|
||||
| Test.kt:91:22:98:1 | { ... } | BlockStmt | Test.kt:92:2:97:2 | try ... | TryStmt |
|
||||
| Test.kt:92:2:97:2 | try ... | TryStmt | Test.kt:92:6:95:2 | { ... } | BlockStmt |
|
||||
| Test.kt:92:6:95:2 | { ... } | BlockStmt | Test.kt:93:7:93:7 | var ...; | LocalVariableDeclStmt |
|
||||
@@ -132,14 +140,16 @@
|
||||
| Test.kt:93:11:93:11 | o | VarAccess | Test.kt:93:12:93:13 | ...!! | NotNullExpr |
|
||||
| Test.kt:93:12:93:13 | ...!! | NotNullExpr | Test.kt:93:7:93:7 | x | LocalVariableDeclExpr |
|
||||
| Test.kt:93:12:93:13 | ...!! | NotNullExpr | Test.kt:95:4:97:2 | catch (...) | CatchClause |
|
||||
| Test.kt:94:3:94:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Exit | Method |
|
||||
| Test.kt:94:3:94:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Normal Exit | Method |
|
||||
| Test.kt:94:10:94:10 | 1 | IntegerLiteral | Test.kt:94:3:94:10 | return ... | ReturnStmt |
|
||||
| Test.kt:95:4:97:2 | catch (...) | CatchClause | Test.kt:95:11:95:33 | e | LocalVariableDeclExpr |
|
||||
| Test.kt:95:11:95:33 | e | LocalVariableDeclExpr | Test.kt:95:36:97:2 | { ... } | BlockStmt |
|
||||
| Test.kt:95:36:97:2 | { ... } | BlockStmt | Test.kt:96:10:96:10 | 2 | IntegerLiteral |
|
||||
| Test.kt:96:3:96:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Exit | Method |
|
||||
| Test.kt:96:3:96:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Normal Exit | Method |
|
||||
| Test.kt:96:10:96:10 | 2 | IntegerLiteral | Test.kt:96:3:96:10 | return ... | ReturnStmt |
|
||||
| Test.kt:100:1:110:1 | Exceptional Exit | Method | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:100:1:110:1 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:100:1:110:1 | Normal Exit | Method | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:100:25:110:1 | { ... } | BlockStmt | Test.kt:101:5:103:5 | <Expr>; | ExprStmt |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | WhenBranch | Test.kt:101:9:101:30 | ... && ... | AndLogicalExpr |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | ExprStmt | Test.kt:101:5:103:5 | when ... | WhenExpr |
|
||||
@@ -154,7 +164,7 @@
|
||||
| Test.kt:101:22:101:30 | ... (value equals) ... | ValueEQExpr | Test.kt:105:5:109:5 | <Expr>; | ExprStmt |
|
||||
| Test.kt:101:27:101:30 | null | NullLiteral | Test.kt:101:22:101:30 | ... (value equals) ... | ValueEQExpr |
|
||||
| Test.kt:101:33:103:5 | { ... } | BlockStmt | Test.kt:102:15:102:25 | new Exception(...) | ClassInstanceExpr |
|
||||
| Test.kt:102:9:102:25 | throw ... | ThrowStmt | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:102:9:102:25 | throw ... | ThrowStmt | Test.kt:100:1:110:1 | Exceptional Exit | Method |
|
||||
| Test.kt:102:15:102:25 | new Exception(...) | ClassInstanceExpr | Test.kt:102:9:102:25 | throw ... | ThrowStmt |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | ExprStmt | Test.kt:105:5:109:5 | when ... | WhenExpr |
|
||||
| Test.kt:105:5:109:5 | when ... | WhenExpr | Test.kt:105:9:107:5 | ... -> ... | WhenBranch |
|
||||
@@ -165,29 +175,33 @@
|
||||
| Test.kt:105:14:105:17 | null | NullLiteral | Test.kt:105:9:105:17 | ... (value not-equals) ... | ValueNEExpr |
|
||||
| Test.kt:105:20:107:5 | { ... } | BlockStmt | Test.kt:106:9:106:29 | <Expr>; | ExprStmt |
|
||||
| Test.kt:106:9:106:29 | <Expr>; | ExprStmt | Test.kt:106:17:106:28 | "x not null" | StringLiteral |
|
||||
| Test.kt:106:9:106:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:106:9:106:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Normal Exit | Method |
|
||||
| Test.kt:106:17:106:28 | "x not null" | StringLiteral | Test.kt:106:9:106:29 | println(...) | MethodCall |
|
||||
| Test.kt:107:16:107:16 | y | VarAccess | Test.kt:107:21:107:24 | null | NullLiteral |
|
||||
| Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:100:1:110:1 | Normal Exit | Method |
|
||||
| Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:107:27:109:5 | { ... } | BlockStmt |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | WhenBranch | Test.kt:107:16:107:16 | y | VarAccess |
|
||||
| Test.kt:107:21:107:24 | null | NullLiteral | Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr |
|
||||
| Test.kt:107:27:109:5 | { ... } | BlockStmt | Test.kt:108:9:108:29 | <Expr>; | ExprStmt |
|
||||
| Test.kt:108:9:108:29 | <Expr>; | ExprStmt | Test.kt:108:17:108:28 | "y not null" | StringLiteral |
|
||||
| Test.kt:108:9:108:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:108:9:108:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Normal Exit | Method |
|
||||
| Test.kt:108:17:108:28 | "y not null" | StringLiteral | Test.kt:108:9:108:29 | println(...) | MethodCall |
|
||||
| Test.kt:112:1:116:1 | Exceptional Exit | Method | Test.kt:112:1:116:1 | Exit | Method |
|
||||
| Test.kt:112:1:116:1 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:112:1:116:1 | Normal Exit | Method | Test.kt:112:1:116:1 | Exit | Method |
|
||||
| Test.kt:112:32:116:1 | { ... } | BlockStmt | Test.kt:113:5:115:5 | <Expr>; | ExprStmt |
|
||||
| Test.kt:113:5:115:5 | ... -> ... | WhenBranch | Test.kt:113:9:113:14 | ... && ... | AndLogicalExpr |
|
||||
| Test.kt:113:5:115:5 | <Expr>; | ExprStmt | Test.kt:113:5:115:5 | when ... | WhenExpr |
|
||||
| Test.kt:113:5:115:5 | when ... | WhenExpr | Test.kt:113:5:115:5 | ... -> ... | WhenBranch |
|
||||
| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:112:1:116:1 | Exit | Method |
|
||||
| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:112:1:116:1 | Normal Exit | Method |
|
||||
| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:113:14:113:14 | y | VarAccess |
|
||||
| Test.kt:113:9:113:14 | ... && ... | AndLogicalExpr | Test.kt:113:9:113:9 | x | VarAccess |
|
||||
| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:112:1:116:1 | Exit | Method |
|
||||
| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:112:1:116:1 | Normal Exit | Method |
|
||||
| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:113:17:115:5 | { ... } | BlockStmt |
|
||||
| Test.kt:113:17:115:5 | { ... } | BlockStmt | Test.kt:112:1:116:1 | Exit | Method |
|
||||
| Test.kt:113:17:115:5 | { ... } | BlockStmt | Test.kt:112:1:116:1 | Normal Exit | Method |
|
||||
| Test.kt:118:1:124:1 | Exceptional Exit | Method | Test.kt:118:1:124:1 | Exit | Method |
|
||||
| Test.kt:118:1:124:1 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:118:1:124:1 | Normal Exit | Method | Test.kt:118:1:124:1 | Exit | Method |
|
||||
| Test.kt:118:37:124:1 | { ... } | BlockStmt | Test.kt:119:2:123:12 | <Expr>; | ExprStmt |
|
||||
| Test.kt:119:2:123:12 | <Expr>; | ExprStmt | Test.kt:119:2:123:12 | when ... | WhenExpr |
|
||||
| Test.kt:119:2:123:12 | when ... | WhenExpr | Test.kt:120:3:123:10 | ... -> ... | WhenBranch |
|
||||
@@ -197,11 +211,11 @@
|
||||
| Test.kt:121:4:121:4 | x | VarAccess | Test.kt:122:12:122:16 | ... -> ... | WhenBranch |
|
||||
| Test.kt:121:4:121:9 | ... -> ... | WhenBranch | Test.kt:121:4:121:4 | x | VarAccess |
|
||||
| Test.kt:121:9:121:9 | <Expr>; | ExprStmt | Test.kt:121:9:121:9 | y | VarAccess |
|
||||
| Test.kt:121:9:121:9 | y | VarAccess | Test.kt:118:1:124:1 | Exit | Method |
|
||||
| Test.kt:121:9:121:9 | y | VarAccess | Test.kt:118:1:124:1 | Normal Exit | Method |
|
||||
| Test.kt:121:9:121:9 | y | VarAccess | Test.kt:123:8:123:10 | { ... } | BlockStmt |
|
||||
| Test.kt:122:12:122:16 | ... -> ... | WhenBranch | Test.kt:122:12:122:16 | true | BooleanLiteral |
|
||||
| Test.kt:122:12:122:16 | <Expr>; | ExprStmt | Test.kt:122:12:122:16 | false | BooleanLiteral |
|
||||
| Test.kt:122:12:122:16 | false | BooleanLiteral | Test.kt:118:1:124:1 | Exit | Method |
|
||||
| Test.kt:122:12:122:16 | false | BooleanLiteral | Test.kt:118:1:124:1 | Normal Exit | Method |
|
||||
| Test.kt:122:12:122:16 | true | BooleanLiteral | Test.kt:122:12:122:16 | <Expr>; | ExprStmt |
|
||||
| Test.kt:123:8:123:10 | { ... } | BlockStmt | Test.kt:118:1:124:1 | Exit | Method |
|
||||
| Test.kt:123:8:123:10 | { ... } | BlockStmt | Test.kt:118:1:124:1 | Normal Exit | Method |
|
||||
missingSuccessor
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
| Test.kt:21:3:24:11 | true | Test.kt:24:11:24:11 | z |
|
||||
| Test.kt:21:3:24:11 | when ... | Test.kt:21:3:24:11 | ... -> ... |
|
||||
| Test.kt:21:7:21:7 | x | Test.kt:21:11:21:11 | 0 |
|
||||
| Test.kt:21:7:21:11 | ... < ... | Test.kt:2:2:79:2 | Exit |
|
||||
| Test.kt:21:7:21:11 | ... < ... | Test.kt:2:2:79:2 | Normal Exit |
|
||||
| Test.kt:21:7:21:11 | ... < ... | Test.kt:21:3:24:11 | ... -> ... |
|
||||
| Test.kt:21:7:21:11 | ... < ... | Test.kt:22:4:22:4 | <Expr>; |
|
||||
| Test.kt:21:11:21:11 | 0 | Test.kt:21:7:21:11 | ... < ... |
|
||||
@@ -142,7 +142,7 @@
|
||||
| Test.kt:92:4:93:9 | <Expr>; | Test.kt:92:4:93:9 | when ... |
|
||||
| Test.kt:92:4:93:9 | when ... | Test.kt:92:4:93:9 | ... -> ... |
|
||||
| Test.kt:92:8:92:8 | a | Test.kt:92:13:92:14 | 10 |
|
||||
| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:81:2:98:2 | Exit |
|
||||
| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:81:2:98:2 | Normal Exit |
|
||||
| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:93:5:93:9 | break |
|
||||
| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:94:4:95:12 | <Expr>; |
|
||||
| Test.kt:92:13:92:14 | 10 | Test.kt:92:8:92:14 | ... (value equals) ... |
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
| Test.kt:3:1:80:1 | Exceptional Exit | 0 | Test.kt:3:1:80:1 | Exceptional Exit |
|
||||
| Test.kt:3:1:80:1 | Exit | 0 | Test.kt:3:1:80:1 | Exit |
|
||||
| Test.kt:3:1:80:1 | { ... } | 0 | Test.kt:3:1:80:1 | { ... } |
|
||||
| Test.kt:3:1:80:1 | { ... } | 1 | Test.kt:3:1:80:1 | super(...) |
|
||||
| Test.kt:3:1:80:1 | { ... } | 2 | Test.kt:3:1:80:1 | { ... } |
|
||||
| Test.kt:3:1:80:1 | { ... } | 3 | Test.kt:3:1:80:1 | Exit |
|
||||
| Test.kt:3:1:80:1 | { ... } | 3 | Test.kt:3:1:80:1 | Normal Exit |
|
||||
| Test.kt:4:2:79:2 | Exceptional Exit | 0 | Test.kt:4:2:79:2 | Exceptional Exit |
|
||||
| Test.kt:4:2:79:2 | Exit | 0 | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:4:2:79:2 | Normal Exit | 0 | Test.kt:4:2:79:2 | Normal Exit |
|
||||
| Test.kt:4:13:79:2 | { ... } | 0 | Test.kt:4:13:79:2 | { ... } |
|
||||
| Test.kt:4:13:79:2 | { ... } | 1 | Test.kt:5:3:5:16 | var ...; |
|
||||
| Test.kt:4:13:79:2 | { ... } | 2 | Test.kt:5:16:5:16 | 0 |
|
||||
@@ -102,7 +106,9 @@
|
||||
| Test.kt:43:3:43:8 | <Expr>; | 8 | Test.kt:77:3:77:8 | ...=... |
|
||||
| Test.kt:43:3:43:8 | <Expr>; | 9 | Test.kt:78:9:78:9 | INSTANCE |
|
||||
| Test.kt:43:3:43:8 | <Expr>; | 10 | Test.kt:78:3:78:8 | return ... |
|
||||
| Test.kt:82:1:89:1 | Exceptional Exit | 0 | Test.kt:82:1:89:1 | Exceptional Exit |
|
||||
| Test.kt:82:1:89:1 | Exit | 0 | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:1:89:1 | Normal Exit | 0 | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | 0 | Test.kt:82:21:89:1 | { ... } |
|
||||
| Test.kt:82:21:89:1 | { ... } | 1 | Test.kt:83:2:88:2 | try ... |
|
||||
| Test.kt:82:21:89:1 | { ... } | 2 | Test.kt:83:6:86:2 | { ... } |
|
||||
@@ -117,7 +123,9 @@
|
||||
| Test.kt:86:4:88:2 | catch (...) | 2 | Test.kt:86:34:88:2 | { ... } |
|
||||
| Test.kt:86:4:88:2 | catch (...) | 3 | Test.kt:87:10:87:10 | 2 |
|
||||
| Test.kt:86:4:88:2 | catch (...) | 4 | Test.kt:87:3:87:10 | return ... |
|
||||
| Test.kt:91:1:98:1 | Exceptional Exit | 0 | Test.kt:91:1:98:1 | Exceptional Exit |
|
||||
| Test.kt:91:1:98:1 | Exit | 0 | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:1:98:1 | Normal Exit | 0 | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | 0 | Test.kt:91:22:98:1 | { ... } |
|
||||
| Test.kt:91:22:98:1 | { ... } | 1 | Test.kt:92:2:97:2 | try ... |
|
||||
| Test.kt:91:22:98:1 | { ... } | 2 | Test.kt:92:6:95:2 | { ... } |
|
||||
@@ -133,6 +141,7 @@
|
||||
| Test.kt:95:4:97:2 | catch (...) | 3 | Test.kt:96:10:96:10 | 2 |
|
||||
| Test.kt:95:4:97:2 | catch (...) | 4 | Test.kt:96:3:96:10 | return ... |
|
||||
| Test.kt:100:1:110:1 | Exit | 0 | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:100:1:110:1 | Normal Exit | 0 | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:100:25:110:1 | { ... } | 0 | Test.kt:100:25:110:1 | { ... } |
|
||||
| Test.kt:100:25:110:1 | { ... } | 1 | Test.kt:101:5:103:5 | <Expr>; |
|
||||
| Test.kt:100:25:110:1 | { ... } | 2 | Test.kt:101:5:103:5 | when ... |
|
||||
@@ -147,6 +156,7 @@
|
||||
| Test.kt:101:33:103:5 | { ... } | 0 | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:101:33:103:5 | { ... } | 1 | Test.kt:102:15:102:25 | new Exception(...) |
|
||||
| Test.kt:101:33:103:5 | { ... } | 2 | Test.kt:102:9:102:25 | throw ... |
|
||||
| Test.kt:101:33:103:5 | { ... } | 3 | Test.kt:100:1:110:1 | Exceptional Exit |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | 0 | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | 1 | Test.kt:105:5:109:5 | when ... |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | 2 | Test.kt:105:9:107:5 | ... -> ... |
|
||||
@@ -165,7 +175,9 @@
|
||||
| Test.kt:107:27:109:5 | { ... } | 1 | Test.kt:108:9:108:29 | <Expr>; |
|
||||
| Test.kt:107:27:109:5 | { ... } | 2 | Test.kt:108:17:108:28 | "y not null" |
|
||||
| Test.kt:107:27:109:5 | { ... } | 3 | Test.kt:108:9:108:29 | println(...) |
|
||||
| Test.kt:112:1:116:1 | Exceptional Exit | 0 | Test.kt:112:1:116:1 | Exceptional Exit |
|
||||
| Test.kt:112:1:116:1 | Exit | 0 | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:112:1:116:1 | Normal Exit | 0 | Test.kt:112:1:116:1 | Normal Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | 0 | Test.kt:112:32:116:1 | { ... } |
|
||||
| Test.kt:112:32:116:1 | { ... } | 1 | Test.kt:113:5:115:5 | <Expr>; |
|
||||
| Test.kt:112:32:116:1 | { ... } | 2 | Test.kt:113:5:115:5 | when ... |
|
||||
@@ -174,7 +186,9 @@
|
||||
| Test.kt:112:32:116:1 | { ... } | 5 | Test.kt:113:9:113:9 | x |
|
||||
| Test.kt:113:14:113:14 | y | 0 | Test.kt:113:14:113:14 | y |
|
||||
| Test.kt:113:17:115:5 | { ... } | 0 | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:118:1:124:1 | Exceptional Exit | 0 | Test.kt:118:1:124:1 | Exceptional Exit |
|
||||
| Test.kt:118:1:124:1 | Exit | 0 | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:118:1:124:1 | Normal Exit | 0 | Test.kt:118:1:124:1 | Normal Exit |
|
||||
| Test.kt:118:37:124:1 | { ... } | 0 | Test.kt:118:37:124:1 | { ... } |
|
||||
| Test.kt:118:37:124:1 | { ... } | 1 | Test.kt:119:2:123:12 | <Expr>; |
|
||||
| Test.kt:118:37:124:1 | { ... } | 2 | Test.kt:119:2:123:12 | when ... |
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
| Test.kt:3:1:80:1 | { ... } | Test.kt:3:1:80:1 | Exit |
|
||||
| Test.kt:4:2:79:2 | Normal Exit | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:4:2:79:2 | Normal Exit |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:14:10:16:3 | ... -> ... |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:18:3:18:7 | <Expr>; |
|
||||
@@ -10,6 +13,7 @@
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:38:16:41:3 | { ... } |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:43:3:43:8 | <Expr>; |
|
||||
| Test.kt:18:3:18:7 | <Expr>; | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:18:3:18:7 | <Expr>; | Test.kt:4:2:79:2 | Normal Exit |
|
||||
| Test.kt:18:3:18:7 | <Expr>; | Test.kt:22:4:22:9 | <Expr>; |
|
||||
| Test.kt:18:3:18:7 | <Expr>; | Test.kt:24:4:24:9 | ... -> ... |
|
||||
| Test.kt:18:3:18:7 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
|
||||
@@ -27,13 +31,18 @@
|
||||
| Test.kt:35:3:35:8 | <Expr>; | Test.kt:43:3:43:8 | <Expr>; |
|
||||
| Test.kt:38:9:38:9 | x | Test.kt:38:16:41:3 | { ... } |
|
||||
| Test.kt:38:9:38:9 | x | Test.kt:43:3:43:8 | <Expr>; |
|
||||
| Test.kt:82:1:89:1 | Normal Exit | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:84:3:84:18 | x |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) |
|
||||
| Test.kt:91:1:98:1 | Normal Exit | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:93:3:93:13 | x |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:22 | y |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | <Expr>; |
|
||||
@@ -41,15 +50,20 @@
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:101:22:101:22 | y | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:105:20:107:5 | { ... } |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:112:1:116:1 | Normal Exit | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Normal Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:113:14:113:14 | y | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:118:1:124:1 | Normal Exit | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:118:1:124:1 | Normal Exit |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:121:9:121:9 | <Expr>; |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:122:12:122:16 | ... -> ... |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:123:8:123:10 | { ... } |
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
| Test.kt:3:1:80:1 | Exceptional Exit | Test.kt:3:1:80:1 | Exit |
|
||||
| Test.kt:3:1:80:1 | { ... } | Test.kt:3:1:80:1 | Exit |
|
||||
| Test.kt:4:2:79:2 | Exceptional Exit | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:4:2:79:2 | Normal Exit | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } |
|
||||
| Test.kt:4:13:79:2 | { ... } | Test.kt:14:10:16:3 | ... -> ... |
|
||||
| Test.kt:11:14:14:3 | { ... } | Test.kt:18:3:18:7 | <Expr>; |
|
||||
@@ -6,21 +10,26 @@
|
||||
| Test.kt:18:3:18:7 | <Expr>; | Test.kt:24:4:24:9 | ... -> ... |
|
||||
| Test.kt:22:4:22:9 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
|
||||
| Test.kt:22:4:22:9 | <Expr>; | Test.kt:35:3:35:8 | <Expr>; |
|
||||
| Test.kt:24:4:24:9 | ... -> ... | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:24:4:24:9 | ... -> ... | Test.kt:4:2:79:2 | Normal Exit |
|
||||
| Test.kt:30:15:33:3 | { ... } | Test.kt:35:3:35:8 | <Expr>; |
|
||||
| Test.kt:35:3:35:8 | <Expr>; | Test.kt:38:9:38:9 | x |
|
||||
| Test.kt:38:9:38:9 | x | Test.kt:38:16:41:3 | { ... } |
|
||||
| Test.kt:38:9:38:9 | x | Test.kt:43:3:43:8 | <Expr>; |
|
||||
| Test.kt:38:16:41:3 | { ... } | Test.kt:38:9:38:9 | x |
|
||||
| Test.kt:43:3:43:8 | <Expr>; | Test.kt:4:2:79:2 | Exit |
|
||||
| Test.kt:43:3:43:8 | <Expr>; | Test.kt:4:2:79:2 | Normal Exit |
|
||||
| Test.kt:82:1:89:1 | Exceptional Exit | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:1:89:1 | Normal Exit | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:84:3:84:18 | x |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) |
|
||||
| Test.kt:84:3:84:18 | x | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:84:3:84:18 | x | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:91:1:98:1 | Exceptional Exit | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:1:98:1 | Normal Exit | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:93:3:93:13 | x |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) |
|
||||
| Test.kt:93:3:93:13 | x | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:93:3:93:13 | x | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:100:1:110:1 | Normal Exit | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:22 | y |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:101:22:101:22 | y | Test.kt:101:33:103:5 | { ... } |
|
||||
@@ -28,18 +37,22 @@
|
||||
| Test.kt:101:33:103:5 | { ... } | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:105:20:107:5 | { ... } |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:105:20:107:5 | { ... } | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:105:20:107:5 | { ... } | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:107:27:109:5 | { ... } | Test.kt:100:1:110:1 | Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:107:27:109:5 | { ... } | Test.kt:100:1:110:1 | Normal Exit |
|
||||
| Test.kt:112:1:116:1 | Exceptional Exit | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:112:1:116:1 | Normal Exit | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Normal Exit |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y |
|
||||
| Test.kt:113:14:113:14 | y | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:113:14:113:14 | y | Test.kt:112:1:116:1 | Normal Exit |
|
||||
| Test.kt:113:14:113:14 | y | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:113:17:115:5 | { ... } | Test.kt:112:1:116:1 | Exit |
|
||||
| Test.kt:113:17:115:5 | { ... } | Test.kt:112:1:116:1 | Normal Exit |
|
||||
| Test.kt:118:1:124:1 | Exceptional Exit | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:118:1:124:1 | Normal Exit | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:121:9:121:9 | <Expr>; |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:122:12:122:16 | ... -> ... |
|
||||
| Test.kt:121:9:121:9 | <Expr>; | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:121:9:121:9 | <Expr>; | Test.kt:118:1:124:1 | Normal Exit |
|
||||
| Test.kt:121:9:121:9 | <Expr>; | Test.kt:123:8:123:10 | { ... } |
|
||||
| Test.kt:122:12:122:16 | ... -> ... | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:123:8:123:10 | { ... } | Test.kt:118:1:124:1 | Exit |
|
||||
| Test.kt:122:12:122:16 | ... -> ... | Test.kt:118:1:124:1 | Normal Exit |
|
||||
| Test.kt:123:8:123:10 | { ... } | Test.kt:118:1:124:1 | Normal Exit |
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
#select
|
||||
| Test.kt:3:1:80:1 | Exceptional Exit | Constructor | Test.kt:3:1:80:1 | Exit | Constructor |
|
||||
| Test.kt:3:1:80:1 | Exit | Constructor | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:3:1:80:1 | Normal Exit | Constructor | Test.kt:3:1:80:1 | Exit | Constructor |
|
||||
| Test.kt:3:1:80:1 | super(...) | SuperConstructorInvocationStmt | Test.kt:3:1:80:1 | { ... } | BlockStmt |
|
||||
| Test.kt:3:1:80:1 | { ... } | BlockStmt | Test.kt:3:1:80:1 | Exit | Constructor |
|
||||
| Test.kt:3:1:80:1 | { ... } | BlockStmt | Test.kt:3:1:80:1 | Normal Exit | Constructor |
|
||||
| Test.kt:3:1:80:1 | { ... } | BlockStmt | Test.kt:3:1:80:1 | super(...) | SuperConstructorInvocationStmt |
|
||||
| Test.kt:4:2:79:2 | Exceptional Exit | Method | Test.kt:4:2:79:2 | Exit | Method |
|
||||
| Test.kt:4:2:79:2 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:4:2:79:2 | Normal Exit | Method | Test.kt:4:2:79:2 | Exit | Method |
|
||||
| Test.kt:4:13:79:2 | { ... } | BlockStmt | Test.kt:5:3:5:16 | var ...; | LocalVariableDeclStmt |
|
||||
| Test.kt:5:3:5:16 | var ...; | LocalVariableDeclStmt | Test.kt:5:16:5:16 | 0 | IntegerLiteral |
|
||||
| Test.kt:5:3:5:16 | x | LocalVariableDeclExpr | Test.kt:6:3:6:18 | var ...; | LocalVariableDeclStmt |
|
||||
@@ -51,7 +55,7 @@
|
||||
| Test.kt:22:4:22:9 | <Expr>; | ExprStmt | Test.kt:22:8:22:9 | 40 | LongLiteral |
|
||||
| Test.kt:22:8:22:9 | 40 | LongLiteral | Test.kt:22:4:22:9 | ...=... | AssignExpr |
|
||||
| Test.kt:24:4:24:9 | ... -> ... | WhenBranch | Test.kt:24:4:24:9 | true | BooleanLiteral |
|
||||
| Test.kt:24:4:24:9 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Exit | Method |
|
||||
| Test.kt:24:4:24:9 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Normal Exit | Method |
|
||||
| Test.kt:24:4:24:9 | true | BooleanLiteral | Test.kt:24:10:24:10 | INSTANCE | VarAccess |
|
||||
| Test.kt:24:10:24:10 | INSTANCE | VarAccess | Test.kt:24:4:24:9 | return ... | ReturnStmt |
|
||||
| Test.kt:27:3:27:8 | ...=... | AssignExpr | Test.kt:30:3:33:3 | <Expr>; | ExprStmt |
|
||||
@@ -105,9 +109,11 @@
|
||||
| Test.kt:77:3:77:8 | ...=... | AssignExpr | Test.kt:78:9:78:9 | INSTANCE | VarAccess |
|
||||
| Test.kt:77:3:77:8 | <Expr>; | ExprStmt | Test.kt:77:7:77:8 | 40 | IntegerLiteral |
|
||||
| Test.kt:77:7:77:8 | 40 | IntegerLiteral | Test.kt:77:3:77:8 | ...=... | AssignExpr |
|
||||
| Test.kt:78:3:78:8 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Exit | Method |
|
||||
| Test.kt:78:3:78:8 | return ... | ReturnStmt | Test.kt:4:2:79:2 | Normal Exit | Method |
|
||||
| Test.kt:78:9:78:9 | INSTANCE | VarAccess | Test.kt:78:3:78:8 | return ... | ReturnStmt |
|
||||
| Test.kt:82:1:89:1 | Exceptional Exit | Method | Test.kt:82:1:89:1 | Exit | Method |
|
||||
| Test.kt:82:1:89:1 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:82:1:89:1 | Normal Exit | Method | Test.kt:82:1:89:1 | Exit | Method |
|
||||
| Test.kt:82:21:89:1 | { ... } | BlockStmt | Test.kt:83:2:88:2 | try ... | TryStmt |
|
||||
| Test.kt:83:2:88:2 | try ... | TryStmt | Test.kt:83:6:86:2 | { ... } | BlockStmt |
|
||||
| Test.kt:83:6:86:2 | { ... } | BlockStmt | Test.kt:84:3:84:18 | var ...; | LocalVariableDeclStmt |
|
||||
@@ -116,14 +122,16 @@
|
||||
| Test.kt:84:11:84:11 | o | VarAccess | Test.kt:84:11:84:18 | (...)... | CastExpr |
|
||||
| Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:84:3:84:18 | x | LocalVariableDeclExpr |
|
||||
| Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:86:4:88:2 | catch (...) | CatchClause |
|
||||
| Test.kt:85:3:85:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Exit | Method |
|
||||
| Test.kt:85:3:85:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Normal Exit | Method |
|
||||
| Test.kt:85:10:85:10 | 1 | IntegerLiteral | Test.kt:85:3:85:10 | return ... | ReturnStmt |
|
||||
| Test.kt:86:4:88:2 | catch (...) | CatchClause | Test.kt:86:11:86:31 | e | LocalVariableDeclExpr |
|
||||
| Test.kt:86:11:86:31 | e | LocalVariableDeclExpr | Test.kt:86:34:88:2 | { ... } | BlockStmt |
|
||||
| Test.kt:86:34:88:2 | { ... } | BlockStmt | Test.kt:87:10:87:10 | 2 | IntegerLiteral |
|
||||
| Test.kt:87:3:87:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Exit | Method |
|
||||
| Test.kt:87:3:87:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Normal Exit | Method |
|
||||
| Test.kt:87:10:87:10 | 2 | IntegerLiteral | Test.kt:87:3:87:10 | return ... | ReturnStmt |
|
||||
| Test.kt:91:1:98:1 | Exceptional Exit | Method | Test.kt:91:1:98:1 | Exit | Method |
|
||||
| Test.kt:91:1:98:1 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:91:1:98:1 | Normal Exit | Method | Test.kt:91:1:98:1 | Exit | Method |
|
||||
| Test.kt:91:22:98:1 | { ... } | BlockStmt | Test.kt:92:2:97:2 | try ... | TryStmt |
|
||||
| Test.kt:92:2:97:2 | try ... | TryStmt | Test.kt:92:6:95:2 | { ... } | BlockStmt |
|
||||
| Test.kt:92:6:95:2 | { ... } | BlockStmt | Test.kt:93:3:93:13 | var ...; | LocalVariableDeclStmt |
|
||||
@@ -132,14 +140,16 @@
|
||||
| Test.kt:93:11:93:11 | o | VarAccess | Test.kt:93:11:93:13 | ...!! | NotNullExpr |
|
||||
| Test.kt:93:11:93:13 | ...!! | NotNullExpr | Test.kt:93:3:93:13 | x | LocalVariableDeclExpr |
|
||||
| Test.kt:93:11:93:13 | ...!! | NotNullExpr | Test.kt:95:4:97:2 | catch (...) | CatchClause |
|
||||
| Test.kt:94:3:94:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Exit | Method |
|
||||
| Test.kt:94:3:94:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Normal Exit | Method |
|
||||
| Test.kt:94:10:94:10 | 1 | IntegerLiteral | Test.kt:94:3:94:10 | return ... | ReturnStmt |
|
||||
| Test.kt:95:4:97:2 | catch (...) | CatchClause | Test.kt:95:11:95:33 | e | LocalVariableDeclExpr |
|
||||
| Test.kt:95:11:95:33 | e | LocalVariableDeclExpr | Test.kt:95:36:97:2 | { ... } | BlockStmt |
|
||||
| Test.kt:95:36:97:2 | { ... } | BlockStmt | Test.kt:96:10:96:10 | 2 | IntegerLiteral |
|
||||
| Test.kt:96:3:96:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Exit | Method |
|
||||
| Test.kt:96:3:96:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Normal Exit | Method |
|
||||
| Test.kt:96:10:96:10 | 2 | IntegerLiteral | Test.kt:96:3:96:10 | return ... | ReturnStmt |
|
||||
| Test.kt:100:1:110:1 | Exceptional Exit | Method | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:100:1:110:1 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:100:1:110:1 | Normal Exit | Method | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:100:25:110:1 | { ... } | BlockStmt | Test.kt:101:5:103:5 | <Expr>; | ExprStmt |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | ExprStmt | Test.kt:101:5:103:5 | when ... | WhenExpr |
|
||||
| Test.kt:101:5:103:5 | when ... | WhenExpr | Test.kt:101:9:103:5 | ... -> ... | WhenBranch |
|
||||
@@ -154,7 +164,7 @@
|
||||
| Test.kt:101:22:101:30 | ... (value equals) ... | ValueEQExpr | Test.kt:105:5:109:5 | <Expr>; | ExprStmt |
|
||||
| Test.kt:101:27:101:30 | null | NullLiteral | Test.kt:101:22:101:30 | ... (value equals) ... | ValueEQExpr |
|
||||
| Test.kt:101:33:103:5 | { ... } | BlockStmt | Test.kt:102:15:102:25 | new Exception(...) | ClassInstanceExpr |
|
||||
| Test.kt:102:9:102:25 | throw ... | ThrowStmt | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:102:9:102:25 | throw ... | ThrowStmt | Test.kt:100:1:110:1 | Exceptional Exit | Method |
|
||||
| Test.kt:102:15:102:25 | new Exception(...) | ClassInstanceExpr | Test.kt:102:9:102:25 | throw ... | ThrowStmt |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | ExprStmt | Test.kt:105:5:109:5 | when ... | WhenExpr |
|
||||
| Test.kt:105:5:109:5 | when ... | WhenExpr | Test.kt:105:9:107:5 | ... -> ... | WhenBranch |
|
||||
@@ -165,29 +175,33 @@
|
||||
| Test.kt:105:14:105:17 | null | NullLiteral | Test.kt:105:9:105:17 | ... (value not-equals) ... | ValueNEExpr |
|
||||
| Test.kt:105:20:107:5 | { ... } | BlockStmt | Test.kt:106:9:106:29 | <Expr>; | ExprStmt |
|
||||
| Test.kt:106:9:106:29 | <Expr>; | ExprStmt | Test.kt:106:17:106:28 | "x not null" | StringLiteral |
|
||||
| Test.kt:106:9:106:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:106:9:106:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Normal Exit | Method |
|
||||
| Test.kt:106:17:106:28 | "x not null" | StringLiteral | Test.kt:106:9:106:29 | println(...) | MethodCall |
|
||||
| Test.kt:107:16:107:16 | y | VarAccess | Test.kt:107:21:107:24 | null | NullLiteral |
|
||||
| Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:100:1:110:1 | Normal Exit | Method |
|
||||
| Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:107:27:109:5 | { ... } | BlockStmt |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | WhenBranch | Test.kt:107:16:107:16 | y | VarAccess |
|
||||
| Test.kt:107:21:107:24 | null | NullLiteral | Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr |
|
||||
| Test.kt:107:27:109:5 | { ... } | BlockStmt | Test.kt:108:9:108:29 | <Expr>; | ExprStmt |
|
||||
| Test.kt:108:9:108:29 | <Expr>; | ExprStmt | Test.kt:108:17:108:28 | "y not null" | StringLiteral |
|
||||
| Test.kt:108:9:108:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Exit | Method |
|
||||
| Test.kt:108:9:108:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Normal Exit | Method |
|
||||
| Test.kt:108:17:108:28 | "y not null" | StringLiteral | Test.kt:108:9:108:29 | println(...) | MethodCall |
|
||||
| Test.kt:112:1:116:1 | Exceptional Exit | Method | Test.kt:112:1:116:1 | Exit | Method |
|
||||
| Test.kt:112:1:116:1 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:112:1:116:1 | Normal Exit | Method | Test.kt:112:1:116:1 | Exit | Method |
|
||||
| Test.kt:112:32:116:1 | { ... } | BlockStmt | Test.kt:113:5:115:5 | <Expr>; | ExprStmt |
|
||||
| Test.kt:113:5:115:5 | <Expr>; | ExprStmt | Test.kt:113:5:115:5 | when ... | WhenExpr |
|
||||
| Test.kt:113:5:115:5 | when ... | WhenExpr | Test.kt:113:9:115:5 | ... -> ... | WhenBranch |
|
||||
| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:112:1:116:1 | Exit | Method |
|
||||
| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:112:1:116:1 | Normal Exit | Method |
|
||||
| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:113:14:113:14 | y | VarAccess |
|
||||
| Test.kt:113:9:113:14 | ... && ... | AndLogicalExpr | Test.kt:113:9:113:9 | x | VarAccess |
|
||||
| Test.kt:113:9:115:5 | ... -> ... | WhenBranch | Test.kt:113:9:113:14 | ... && ... | AndLogicalExpr |
|
||||
| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:112:1:116:1 | Exit | Method |
|
||||
| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:112:1:116:1 | Normal Exit | Method |
|
||||
| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:113:17:115:5 | { ... } | BlockStmt |
|
||||
| Test.kt:113:17:115:5 | { ... } | BlockStmt | Test.kt:112:1:116:1 | Exit | Method |
|
||||
| Test.kt:113:17:115:5 | { ... } | BlockStmt | Test.kt:112:1:116:1 | Normal Exit | Method |
|
||||
| Test.kt:118:1:124:1 | Exceptional Exit | Method | Test.kt:118:1:124:1 | Exit | Method |
|
||||
| Test.kt:118:1:124:1 | Exit | Method | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:118:1:124:1 | Normal Exit | Method | Test.kt:118:1:124:1 | Exit | Method |
|
||||
| Test.kt:118:37:124:1 | { ... } | BlockStmt | Test.kt:119:2:123:12 | <Expr>; | ExprStmt |
|
||||
| Test.kt:119:2:123:12 | <Expr>; | ExprStmt | Test.kt:119:2:123:12 | when ... | WhenExpr |
|
||||
| Test.kt:119:2:123:12 | when ... | WhenExpr | Test.kt:120:3:123:10 | ... -> ... | WhenBranch |
|
||||
@@ -197,11 +211,11 @@
|
||||
| Test.kt:121:4:121:4 | x | VarAccess | Test.kt:122:12:122:16 | ... -> ... | WhenBranch |
|
||||
| Test.kt:121:4:121:9 | ... -> ... | WhenBranch | Test.kt:121:4:121:4 | x | VarAccess |
|
||||
| Test.kt:121:9:121:9 | <Expr>; | ExprStmt | Test.kt:121:9:121:9 | y | VarAccess |
|
||||
| Test.kt:121:9:121:9 | y | VarAccess | Test.kt:118:1:124:1 | Exit | Method |
|
||||
| Test.kt:121:9:121:9 | y | VarAccess | Test.kt:118:1:124:1 | Normal Exit | Method |
|
||||
| Test.kt:121:9:121:9 | y | VarAccess | Test.kt:123:8:123:10 | { ... } | BlockStmt |
|
||||
| Test.kt:122:12:122:16 | ... -> ... | WhenBranch | Test.kt:122:12:122:16 | true | BooleanLiteral |
|
||||
| Test.kt:122:12:122:16 | <Expr>; | ExprStmt | Test.kt:122:12:122:16 | false | BooleanLiteral |
|
||||
| Test.kt:122:12:122:16 | false | BooleanLiteral | Test.kt:118:1:124:1 | Exit | Method |
|
||||
| Test.kt:122:12:122:16 | false | BooleanLiteral | Test.kt:118:1:124:1 | Normal Exit | Method |
|
||||
| Test.kt:122:12:122:16 | true | BooleanLiteral | Test.kt:122:12:122:16 | <Expr>; | ExprStmt |
|
||||
| Test.kt:123:8:123:10 | { ... } | BlockStmt | Test.kt:118:1:124:1 | Exit | Method |
|
||||
| Test.kt:123:8:123:10 | { ... } | BlockStmt | Test.kt:118:1:124:1 | Normal Exit | Method |
|
||||
missingSuccessor
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
| Test.kt:21:3:24:11 | <Expr>; | Test.kt:21:3:24:11 | when ... |
|
||||
| Test.kt:21:3:24:11 | when ... | Test.kt:21:7:22:9 | ... -> ... |
|
||||
| Test.kt:21:7:21:7 | x | Test.kt:21:11:21:11 | 0 |
|
||||
| Test.kt:21:7:21:11 | ... < ... | Test.kt:2:2:79:2 | Exit |
|
||||
| Test.kt:21:7:21:11 | ... < ... | Test.kt:2:2:79:2 | Normal Exit |
|
||||
| Test.kt:21:7:21:11 | ... < ... | Test.kt:22:4:22:9 | <Expr>; |
|
||||
| Test.kt:21:7:21:11 | ... < ... | Test.kt:24:4:24:11 | ... -> ... |
|
||||
| Test.kt:21:7:22:9 | ... -> ... | Test.kt:21:7:21:7 | x |
|
||||
@@ -141,7 +141,7 @@
|
||||
| Test.kt:92:4:93:9 | <Expr>; | Test.kt:92:4:93:9 | when ... |
|
||||
| Test.kt:92:4:93:9 | when ... | Test.kt:92:8:93:9 | ... -> ... |
|
||||
| Test.kt:92:8:92:8 | a | Test.kt:92:13:92:14 | 10 |
|
||||
| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:81:2:98:2 | Exit |
|
||||
| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:81:2:98:2 | Normal Exit |
|
||||
| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:93:5:93:9 | break |
|
||||
| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:94:4:95:12 | <Expr>; |
|
||||
| Test.kt:92:8:93:9 | ... -> ... | Test.kt:92:8:92:8 | a |
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
| Test.java:3:14:3:17 | Exceptional Exit | 0 | Test.java:3:14:3:17 | Exceptional Exit |
|
||||
| Test.java:3:14:3:17 | Exit | 0 | Test.java:3:14:3:17 | Exit |
|
||||
| Test.java:3:14:3:17 | { ... } | 0 | Test.java:3:14:3:17 | { ... } |
|
||||
| Test.java:3:14:3:17 | { ... } | 1 | Test.java:3:14:3:17 | super(...) |
|
||||
| Test.java:3:14:3:17 | { ... } | 2 | Test.java:3:14:3:17 | Exit |
|
||||
| Test.java:3:14:3:17 | { ... } | 2 | Test.java:3:14:3:17 | Normal Exit |
|
||||
| Test.java:4:14:4:17 | Exceptional Exit | 0 | Test.java:4:14:4:17 | Exceptional Exit |
|
||||
| Test.java:4:14:4:17 | Exit | 0 | Test.java:4:14:4:17 | Exit |
|
||||
| Test.java:4:14:4:17 | Normal Exit | 0 | Test.java:4:14:4:17 | Normal Exit |
|
||||
| Test.java:4:21:76:2 | { ... } | 0 | Test.java:4:21:76:2 | { ... } |
|
||||
| Test.java:4:21:76:2 | { ... } | 1 | Test.java:5:3:5:12 | var ...; |
|
||||
| Test.java:4:21:76:2 | { ... } | 2 | Test.java:5:11:5:11 | 0 |
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
| Test.java:3:14:3:17 | { ... } | Test.java:3:14:3:17 | Exit |
|
||||
| Test.java:4:14:4:17 | Normal Exit | Test.java:4:14:4:17 | Exit |
|
||||
| Test.java:4:21:76:2 | { ... } | Test.java:4:14:4:17 | Exit |
|
||||
| Test.java:4:21:76:2 | { ... } | Test.java:4:14:4:17 | Normal Exit |
|
||||
| Test.java:4:21:76:2 | { ... } | Test.java:11:14:14:3 | { ... } |
|
||||
| Test.java:4:21:76:2 | { ... } | Test.java:14:10:16:3 | { ... } |
|
||||
| Test.java:4:21:76:2 | { ... } | Test.java:18:3:18:8 | <Expr>; |
|
||||
@@ -21,6 +24,7 @@
|
||||
| Test.java:4:21:76:2 | { ... } | Test.java:63:9:66:4 | { ... } |
|
||||
| Test.java:4:21:76:2 | { ... } | Test.java:70:3:70:9 | <Expr>; |
|
||||
| Test.java:18:3:18:8 | <Expr>; | Test.java:4:14:4:17 | Exit |
|
||||
| Test.java:18:3:18:8 | <Expr>; | Test.java:4:14:4:17 | Normal Exit |
|
||||
| Test.java:18:3:18:8 | <Expr>; | Test.java:22:4:22:10 | <Expr>; |
|
||||
| Test.java:18:3:18:8 | <Expr>; | Test.java:24:4:24:10 | return ... |
|
||||
| Test.java:18:3:18:8 | <Expr>; | Test.java:30:15:33:3 | { ... } |
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
| Test.java:3:14:3:17 | Exceptional Exit | Test.java:3:14:3:17 | Exit |
|
||||
| Test.java:3:14:3:17 | { ... } | Test.java:3:14:3:17 | Exit |
|
||||
| Test.java:4:14:4:17 | Exceptional Exit | Test.java:4:14:4:17 | Exit |
|
||||
| Test.java:4:14:4:17 | Normal Exit | Test.java:4:14:4:17 | Exit |
|
||||
| Test.java:4:21:76:2 | { ... } | Test.java:11:14:14:3 | { ... } |
|
||||
| Test.java:4:21:76:2 | { ... } | Test.java:14:10:16:3 | { ... } |
|
||||
| Test.java:11:14:14:3 | { ... } | Test.java:18:3:18:8 | <Expr>; |
|
||||
@@ -6,7 +10,7 @@
|
||||
| Test.java:18:3:18:8 | <Expr>; | Test.java:24:4:24:10 | return ... |
|
||||
| Test.java:22:4:22:10 | <Expr>; | Test.java:30:15:33:3 | { ... } |
|
||||
| Test.java:22:4:22:10 | <Expr>; | Test.java:35:3:35:9 | <Expr>; |
|
||||
| Test.java:24:4:24:10 | return ... | Test.java:4:14:4:17 | Exit |
|
||||
| Test.java:24:4:24:10 | return ... | Test.java:4:14:4:17 | Normal Exit |
|
||||
| Test.java:30:15:33:3 | { ... } | Test.java:35:3:35:9 | <Expr>; |
|
||||
| Test.java:35:3:35:9 | <Expr>; | Test.java:38:9:38:9 | x |
|
||||
| Test.java:38:9:38:9 | x | Test.java:38:16:41:3 | { ... } |
|
||||
@@ -27,4 +31,4 @@
|
||||
| Test.java:57:15:60:5 | { ... } | Test.java:70:3:70:9 | <Expr>; |
|
||||
| Test.java:60:12:62:5 | { ... } | Test.java:54:26:54:26 | j |
|
||||
| Test.java:63:9:66:4 | { ... } | Test.java:54:26:54:26 | j |
|
||||
| Test.java:70:3:70:9 | <Expr>; | Test.java:4:14:4:17 | Exit |
|
||||
| Test.java:70:3:70:9 | <Expr>; | Test.java:4:14:4:17 | Normal Exit |
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
| Test.java:14:18:14:18 | y | Test.java:14:14:14:18 | ... + ... |
|
||||
| Test.java:17:3:17:12 | if (...) | Test.java:17:7:17:7 | x |
|
||||
| Test.java:17:7:17:7 | x | Test.java:17:11:17:11 | 0 |
|
||||
| Test.java:17:7:17:11 | ... < ... | Test.java:2:6:2:9 | Exit |
|
||||
| Test.java:17:7:17:11 | ... < ... | Test.java:2:6:2:9 | Normal Exit |
|
||||
| Test.java:17:7:17:11 | ... < ... | Test.java:18:4:18:10 | <Expr>; |
|
||||
| Test.java:17:7:17:11 | ... < ... | Test.java:20:11:20:11 | z |
|
||||
| Test.java:17:11:17:11 | 0 | Test.java:17:7:17:11 | ... < ... |
|
||||
@@ -163,7 +163,7 @@
|
||||
| Test.java:83:9:83:9 | c | Test.java:83:5:83:9 | ...=... |
|
||||
| Test.java:85:4:85:15 | if (...) | Test.java:85:8:85:8 | a |
|
||||
| Test.java:85:8:85:8 | a | Test.java:85:13:85:14 | 10 |
|
||||
| Test.java:85:8:85:14 | ... == ... | Test.java:74:6:74:10 | Exit |
|
||||
| Test.java:85:8:85:14 | ... == ... | Test.java:74:6:74:10 | Normal Exit |
|
||||
| Test.java:85:8:85:14 | ... == ... | Test.java:86:5:86:10 | break |
|
||||
| Test.java:85:8:85:14 | ... == ... | Test.java:87:4:87:15 | if (...) |
|
||||
| Test.java:85:13:85:14 | 10 | Test.java:85:8:85:14 | ... == ... |
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
| Test.java:5:7:5:11 | ... < ... | false | Test.java:3:7:3:10 | Normal Exit |
|
||||
| Test.java:5:7:5:11 | ... < ... | false | Test.java:8:3:8:12 | var ...; |
|
||||
| Test.java:5:7:5:11 | ... < ... | false | Test.java:9:9:9:9 | x |
|
||||
| Test.java:5:7:5:11 | ... < ... | false | Test.java:9:17:22:3 | { ... } |
|
||||
@@ -10,6 +11,7 @@
|
||||
| Test.java:5:7:5:11 | ... < ... | false | Test.java:18:24:20:4 | { ... } |
|
||||
| Test.java:5:7:5:11 | ... < ... | false | Test.java:21:4:21:7 | <Expr>; |
|
||||
| Test.java:5:7:5:11 | ... < ... | true | Test.java:5:14:7:3 | { ... } |
|
||||
| Test.java:9:9:9:14 | ... >= ... | false | Test.java:3:7:3:10 | Normal Exit |
|
||||
| Test.java:9:9:9:14 | ... >= ... | true | Test.java:9:17:22:3 | { ... } |
|
||||
| Test.java:9:9:9:14 | ... >= ... | true | Test.java:11:5:11:8 | <Expr>; |
|
||||
| Test.java:9:9:9:14 | ... >= ... | true | Test.java:12:4:12:14 | if (...) |
|
||||
|
||||
@@ -46,6 +46,11 @@
|
||||
| Logic.java:36:16:36:21 | g(...) | false | Logic.java:40:5:40:18 | var ...; |
|
||||
| Logic.java:37:9:37:14 | ... > ... | true | Logic.java:37:17:39:5 | { ... } |
|
||||
| Logic.java:44:10:44:10 | b | false | Logic.java:44:33:44:35 | msg |
|
||||
| Logic.java:44:10:44:10 | b | true | Logic.java:43:23:43:31 | Normal Exit |
|
||||
| Logic.java:48:5:48:22 | checkTrue(...) | exception | Logic.java:47:23:47:32 | Exceptional Exit |
|
||||
| Logic.java:48:5:48:22 | checkTrue(...) | no exception | Logic.java:47:23:47:32 | Normal Exit |
|
||||
| Logic.java:48:15:48:16 | !... | true | Logic.java:47:23:47:32 | Normal Exit |
|
||||
| Logic.java:48:16:48:16 | b | false | Logic.java:47:23:47:32 | Normal Exit |
|
||||
| Logic.java:52:5:52:29 | checkTrue(...) | no exception | Logic.java:53:5:53:28 | <Expr>; |
|
||||
| Logic.java:52:5:52:29 | checkTrue(...) | no exception | Logic.java:54:5:54:15 | if (...) |
|
||||
| Logic.java:52:5:52:29 | checkTrue(...) | no exception | Logic.java:54:17:56:5 | { ... } |
|
||||
@@ -62,3 +67,8 @@
|
||||
| Logic.java:53:21:53:26 | g(...) | false | Logic.java:57:5:57:18 | var ...; |
|
||||
| Logic.java:54:9:54:14 | ... > ... | true | Logic.java:54:17:56:5 | { ... } |
|
||||
| Logic.java:61:10:61:10 | b | false | Logic.java:61:33:61:35 | msg |
|
||||
| Logic.java:61:10:61:10 | b | true | Logic.java:60:23:60:31 | Normal Exit |
|
||||
| Logic.java:65:5:65:22 | checkTrue(...) | exception | Logic.java:64:23:64:32 | Exceptional Exit |
|
||||
| Logic.java:65:5:65:22 | checkTrue(...) | no exception | Logic.java:64:23:64:32 | Normal Exit |
|
||||
| Logic.java:65:15:65:16 | !... | true | Logic.java:64:23:64:32 | Normal Exit |
|
||||
| Logic.java:65:16:65:16 | b | false | Logic.java:64:23:64:32 | Normal Exit |
|
||||
|
||||
@@ -1,20 +1,44 @@
|
||||
| Preconditions.java:8:9:8:31 | assertTrue(...) | exception | Preconditions.java:7:10:7:14 | Exceptional Exit |
|
||||
| Preconditions.java:8:9:8:31 | assertTrue(...) | no exception | Preconditions.java:9:9:9:18 | <Expr>; |
|
||||
| Preconditions.java:13:9:13:32 | assertTrue(...) | exception | Preconditions.java:12:10:12:14 | Exceptional Exit |
|
||||
| Preconditions.java:13:9:13:32 | assertTrue(...) | no exception | Preconditions.java:14:9:14:18 | <Expr>; |
|
||||
| Preconditions.java:18:9:18:33 | assertFalse(...) | exception | Preconditions.java:17:10:17:14 | Exceptional Exit |
|
||||
| Preconditions.java:18:9:18:33 | assertFalse(...) | no exception | Preconditions.java:19:9:19:18 | <Expr>; |
|
||||
| Preconditions.java:23:9:23:32 | assertFalse(...) | exception | Preconditions.java:22:10:22:14 | Exceptional Exit |
|
||||
| Preconditions.java:23:9:23:32 | assertFalse(...) | no exception | Preconditions.java:24:9:24:18 | <Expr>; |
|
||||
| Preconditions.java:28:9:28:41 | assertTrue(...) | exception | Preconditions.java:27:10:27:14 | Exceptional Exit |
|
||||
| Preconditions.java:28:9:28:41 | assertTrue(...) | no exception | Preconditions.java:29:9:29:18 | <Expr>; |
|
||||
| Preconditions.java:33:9:33:42 | assertTrue(...) | exception | Preconditions.java:32:10:32:14 | Exceptional Exit |
|
||||
| Preconditions.java:33:9:33:42 | assertTrue(...) | no exception | Preconditions.java:34:9:34:18 | <Expr>; |
|
||||
| Preconditions.java:38:9:38:43 | assertFalse(...) | exception | Preconditions.java:37:10:37:14 | Exceptional Exit |
|
||||
| Preconditions.java:38:9:38:43 | assertFalse(...) | no exception | Preconditions.java:39:9:39:18 | <Expr>; |
|
||||
| Preconditions.java:43:9:43:42 | assertFalse(...) | exception | Preconditions.java:42:10:42:14 | Exceptional Exit |
|
||||
| Preconditions.java:43:9:43:42 | assertFalse(...) | no exception | Preconditions.java:44:9:44:18 | <Expr>; |
|
||||
| Preconditions.java:48:9:48:35 | assertTrue(...) | exception | Preconditions.java:47:10:47:14 | Exceptional Exit |
|
||||
| Preconditions.java:48:9:48:35 | assertTrue(...) | no exception | Preconditions.java:49:9:49:18 | <Expr>; |
|
||||
| Preconditions.java:53:9:53:36 | assertTrue(...) | exception | Preconditions.java:52:10:52:15 | Exceptional Exit |
|
||||
| Preconditions.java:53:9:53:36 | assertTrue(...) | no exception | Preconditions.java:54:9:54:18 | <Expr>; |
|
||||
| Preconditions.java:58:9:58:37 | assertFalse(...) | exception | Preconditions.java:57:10:57:15 | Exceptional Exit |
|
||||
| Preconditions.java:58:9:58:37 | assertFalse(...) | no exception | Preconditions.java:59:9:59:18 | <Expr>; |
|
||||
| Preconditions.java:63:9:63:36 | assertFalse(...) | exception | Preconditions.java:62:10:62:15 | Exceptional Exit |
|
||||
| Preconditions.java:63:9:63:36 | assertFalse(...) | no exception | Preconditions.java:64:9:64:18 | <Expr>; |
|
||||
| Preconditions.java:68:9:68:45 | assertTrue(...) | exception | Preconditions.java:67:10:67:15 | Exceptional Exit |
|
||||
| Preconditions.java:68:9:68:45 | assertTrue(...) | no exception | Preconditions.java:69:9:69:18 | <Expr>; |
|
||||
| Preconditions.java:73:9:73:46 | assertTrue(...) | exception | Preconditions.java:72:10:72:15 | Exceptional Exit |
|
||||
| Preconditions.java:73:9:73:46 | assertTrue(...) | no exception | Preconditions.java:74:9:74:18 | <Expr>; |
|
||||
| Preconditions.java:78:9:78:47 | assertFalse(...) | exception | Preconditions.java:77:10:77:15 | Exceptional Exit |
|
||||
| Preconditions.java:78:9:78:47 | assertFalse(...) | no exception | Preconditions.java:79:9:79:18 | <Expr>; |
|
||||
| Preconditions.java:83:9:83:46 | assertFalse(...) | exception | Preconditions.java:82:10:82:15 | Exceptional Exit |
|
||||
| Preconditions.java:83:9:83:46 | assertFalse(...) | no exception | Preconditions.java:84:9:84:18 | <Expr>; |
|
||||
| Preconditions.java:88:9:88:15 | t(...) | exception | Preconditions.java:87:10:87:15 | Exceptional Exit |
|
||||
| Preconditions.java:88:9:88:15 | t(...) | no exception | Preconditions.java:89:9:89:18 | <Expr>; |
|
||||
| Preconditions.java:93:9:93:16 | t(...) | exception | Preconditions.java:92:10:92:15 | Exceptional Exit |
|
||||
| Preconditions.java:93:9:93:16 | t(...) | no exception | Preconditions.java:94:9:94:18 | <Expr>; |
|
||||
| Preconditions.java:98:9:98:16 | f(...) | exception | Preconditions.java:97:10:97:15 | Exceptional Exit |
|
||||
| Preconditions.java:98:9:98:16 | f(...) | no exception | Preconditions.java:99:9:99:18 | <Expr>; |
|
||||
| Preconditions.java:103:9:103:15 | f(...) | exception | Preconditions.java:102:10:102:15 | Exceptional Exit |
|
||||
| Preconditions.java:103:9:103:15 | f(...) | no exception | Preconditions.java:104:9:104:18 | <Expr>; |
|
||||
| Preconditions.java:108:9:108:46 | assertTrue(...) | exception | Preconditions.java:107:17:107:17 | Exceptional Exit |
|
||||
| Preconditions.java:108:9:108:46 | assertTrue(...) | no exception | Preconditions.java:107:17:107:17 | Normal Exit |
|
||||
| Preconditions.java:112:9:112:47 | assertFalse(...) | exception | Preconditions.java:111:17:111:17 | Exceptional Exit |
|
||||
| Preconditions.java:112:9:112:47 | assertFalse(...) | no exception | Preconditions.java:111:17:111:17 | Normal Exit |
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
| MultiCatch.java:6:14:6:23 | super(...) | MultiCatch.java:6:14:6:23 | Exit |
|
||||
| MultiCatch.java:6:14:6:23 | super(...) | MultiCatch.java:6:14:6:23 | Normal Exit |
|
||||
| MultiCatch.java:6:14:6:23 | { ... } | MultiCatch.java:6:14:6:23 | super(...) |
|
||||
| MultiCatch.java:8:2:20:2 | { ... } | MultiCatch.java:9:3:19:3 | try ... |
|
||||
| MultiCatch.java:9:3:19:3 | try ... | MultiCatch.java:10:3:15:3 | { ... } |
|
||||
@@ -16,7 +16,7 @@
|
||||
| MultiCatch.java:17:4:17:4 | e | MultiCatch.java:17:4:17:22 | printStackTrace(...) |
|
||||
| MultiCatch.java:17:4:17:22 | printStackTrace(...) | MultiCatch.java:18:10:18:10 | e |
|
||||
| MultiCatch.java:17:4:17:23 | <Expr>; | MultiCatch.java:17:4:17:4 | e |
|
||||
| MultiCatch.java:18:4:18:11 | throw ... | MultiCatch.java:7:14:7:23 | Exit |
|
||||
| MultiCatch.java:18:4:18:11 | throw ... | MultiCatch.java:7:14:7:23 | Exceptional Exit |
|
||||
| MultiCatch.java:18:10:18:10 | e | MultiCatch.java:18:4:18:11 | throw ... |
|
||||
| MultiCatch.java:23:2:33:2 | { ... } | MultiCatch.java:24:3:32:4 | try ... |
|
||||
| MultiCatch.java:24:3:32:4 | try ... | MultiCatch.java:25:3:31:3 | { ... } |
|
||||
@@ -31,12 +31,12 @@
|
||||
| MultiCatch.java:28:12:28:12 | c | MultiCatch.java:30:10:30:24 | new Exception(...) |
|
||||
| MultiCatch.java:29:5:29:29 | throw ... | MultiCatch.java:31:5:31:37 | catch (...) |
|
||||
| MultiCatch.java:29:11:29:28 | new SQLException(...) | MultiCatch.java:29:5:29:29 | throw ... |
|
||||
| MultiCatch.java:30:4:30:25 | throw ... | MultiCatch.java:22:14:22:24 | Exit |
|
||||
| MultiCatch.java:30:4:30:25 | throw ... | MultiCatch.java:22:14:22:24 | Exceptional Exit |
|
||||
| MultiCatch.java:30:4:30:25 | throw ... | MultiCatch.java:31:5:31:37 | catch (...) |
|
||||
| MultiCatch.java:30:10:30:24 | new Exception(...) | MultiCatch.java:30:4:30:25 | throw ... |
|
||||
| MultiCatch.java:31:5:31:37 | catch (...) | MultiCatch.java:31:36:31:36 | e |
|
||||
| MultiCatch.java:31:36:31:36 | e | MultiCatch.java:32:3:32:4 | { ... } |
|
||||
| MultiCatch.java:32:3:32:4 | { ... } | MultiCatch.java:22:14:22:24 | Exit |
|
||||
| MultiCatch.java:32:3:32:4 | { ... } | MultiCatch.java:22:14:22:24 | Normal Exit |
|
||||
| MultiCatch.java:36:2:42:2 | { ... } | MultiCatch.java:37:3:41:4 | try ... |
|
||||
| MultiCatch.java:37:3:41:4 | try ... | MultiCatch.java:38:3:40:3 | { ... } |
|
||||
| MultiCatch.java:38:3:40:3 | { ... } | MultiCatch.java:39:10:39:26 | new IOException(...) |
|
||||
@@ -45,4 +45,4 @@
|
||||
| MultiCatch.java:39:10:39:26 | new IOException(...) | MultiCatch.java:40:5:40:22 | catch (...) |
|
||||
| MultiCatch.java:40:5:40:22 | catch (...) | MultiCatch.java:40:21:40:21 | e |
|
||||
| MultiCatch.java:40:21:40:21 | e | MultiCatch.java:41:3:41:4 | { ... } |
|
||||
| MultiCatch.java:41:3:41:4 | { ... } | MultiCatch.java:35:14:35:26 | Exit |
|
||||
| MultiCatch.java:41:3:41:4 | { ... } | MultiCatch.java:35:14:35:26 | Normal Exit |
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| Test.java:1:14:1:17 | super(...) | Test.java:1:14:1:17 | Exit |
|
||||
| Test.java:1:14:1:17 | Exceptional Exit | Test.java:1:14:1:17 | Exit |
|
||||
| Test.java:1:14:1:17 | Normal Exit | Test.java:1:14:1:17 | Exit |
|
||||
| Test.java:1:14:1:17 | super(...) | Test.java:1:14:1:17 | Normal Exit |
|
||||
| Test.java:1:14:1:17 | { ... } | Test.java:1:14:1:17 | super(...) |
|
||||
| Test.java:3:22:3:25 | Exceptional Exit | Test.java:3:22:3:25 | Exit |
|
||||
| Test.java:3:22:3:25 | Normal Exit | Test.java:3:22:3:25 | Exit |
|
||||
| Test.java:3:40:20:3 | { ... } | Test.java:5:5:5:34 | var ...; |
|
||||
| Test.java:5:5:5:34 | var ...; | Test.java:5:26:5:33 | source(...) |
|
||||
| Test.java:5:12:5:33 | directTaint | Test.java:6:5:6:36 | var ...; |
|
||||
@@ -29,7 +33,7 @@
|
||||
| Test.java:11:12:11:12 | s | Test.java:11:7:11:13 | sink(...) |
|
||||
| Test.java:14:5:14:92 | if (...) | Test.java:14:9:14:9 | o |
|
||||
| Test.java:14:9:14:9 | o | Test.java:14:9:14:91 | ...instanceof... |
|
||||
| Test.java:14:9:14:91 | ...instanceof... | Test.java:3:22:3:25 | Exit |
|
||||
| Test.java:14:9:14:91 | ...instanceof... | Test.java:3:22:3:25 | Normal Exit |
|
||||
| Test.java:14:9:14:91 | ...instanceof... | Test.java:14:41:14:47 | tainted |
|
||||
| Test.java:14:22:14:91 | Outer(...) | Test.java:14:94:18:5 | { ... } |
|
||||
| Test.java:14:28:14:67 | Inner(...) | Test.java:14:77:14:90 | alsoNotTainted |
|
||||
@@ -43,17 +47,23 @@
|
||||
| Test.java:16:7:16:22 | sink(...) | Test.java:17:7:17:27 | <Expr>; |
|
||||
| Test.java:16:7:16:23 | <Expr>; | Test.java:16:12:16:21 | notTainted |
|
||||
| Test.java:16:12:16:21 | notTainted | Test.java:16:7:16:22 | sink(...) |
|
||||
| Test.java:17:7:17:26 | sink(...) | Test.java:3:22:3:25 | Exit |
|
||||
| Test.java:17:7:17:26 | sink(...) | Test.java:3:22:3:25 | Normal Exit |
|
||||
| Test.java:17:7:17:27 | <Expr>; | Test.java:17:12:17:25 | alsoNotTainted |
|
||||
| Test.java:17:12:17:25 | alsoNotTainted | Test.java:17:7:17:26 | sink(...) |
|
||||
| Test.java:22:24:22:29 | Exceptional Exit | Test.java:22:24:22:29 | Exit |
|
||||
| Test.java:22:24:22:29 | Normal Exit | Test.java:22:24:22:29 | Exit |
|
||||
| Test.java:22:33:22:53 | { ... } | Test.java:22:42:22:50 | "tainted" |
|
||||
| Test.java:22:35:22:51 | return ... | Test.java:22:24:22:29 | Exit |
|
||||
| Test.java:22:35:22:51 | return ... | Test.java:22:24:22:29 | Normal Exit |
|
||||
| Test.java:22:42:22:50 | "tainted" | Test.java:22:35:22:51 | return ... |
|
||||
| Test.java:23:40:23:42 | { ... } | Test.java:23:22:23:25 | Exit |
|
||||
| Test.java:23:22:23:25 | Exceptional Exit | Test.java:23:22:23:25 | Exit |
|
||||
| Test.java:23:22:23:25 | Normal Exit | Test.java:23:22:23:25 | Exit |
|
||||
| Test.java:23:40:23:42 | { ... } | Test.java:23:22:23:25 | Normal Exit |
|
||||
| Test.java:27:8:27:12 | ...=... | Test.java:27:8:27:12 | <Expr>; |
|
||||
| Test.java:27:8:27:12 | ...=... | Test.java:27:8:27:12 | Exit |
|
||||
| Test.java:27:8:27:12 | ...=... | Test.java:27:8:27:12 | Normal Exit |
|
||||
| Test.java:27:8:27:12 | <Expr>; | Test.java:27:8:27:12 | this |
|
||||
| Test.java:27:8:27:12 | <Expr>; | Test.java:27:8:27:12 | this |
|
||||
| Test.java:27:8:27:12 | Exceptional Exit | Test.java:27:8:27:12 | Exit |
|
||||
| Test.java:27:8:27:12 | Normal Exit | Test.java:27:8:27:12 | Exit |
|
||||
| Test.java:27:8:27:12 | i | Test.java:27:8:27:12 | ...=... |
|
||||
| Test.java:27:8:27:12 | otherField | Test.java:27:8:27:12 | ...=... |
|
||||
| Test.java:27:8:27:12 | super(...) | Test.java:27:8:27:12 | <Expr>; |
|
||||
@@ -61,9 +71,11 @@
|
||||
| Test.java:27:8:27:12 | this | Test.java:27:8:27:12 | otherField |
|
||||
| Test.java:27:8:27:12 | { ... } | Test.java:27:8:27:12 | super(...) |
|
||||
| Test.java:28:8:28:12 | ...=... | Test.java:28:8:28:12 | <Expr>; |
|
||||
| Test.java:28:8:28:12 | ...=... | Test.java:28:8:28:12 | Exit |
|
||||
| Test.java:28:8:28:12 | ...=... | Test.java:28:8:28:12 | Normal Exit |
|
||||
| Test.java:28:8:28:12 | <Expr>; | Test.java:28:8:28:12 | this |
|
||||
| Test.java:28:8:28:12 | <Expr>; | Test.java:28:8:28:12 | this |
|
||||
| Test.java:28:8:28:12 | Exceptional Exit | Test.java:28:8:28:12 | Exit |
|
||||
| Test.java:28:8:28:12 | Normal Exit | Test.java:28:8:28:12 | Exit |
|
||||
| Test.java:28:8:28:12 | nonTaintedField | Test.java:28:8:28:12 | ...=... |
|
||||
| Test.java:28:8:28:12 | super(...) | Test.java:28:8:28:12 | <Expr>; |
|
||||
| Test.java:28:8:28:12 | taintedField | Test.java:28:8:28:12 | ...=... |
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
| Exhaustive.java:1:14:1:23 | super(...) | Exhaustive.java:1:14:1:23 | Exit |
|
||||
| Exhaustive.java:1:14:1:23 | Exceptional Exit | Exhaustive.java:1:14:1:23 | Exit |
|
||||
| Exhaustive.java:1:14:1:23 | Normal Exit | Exhaustive.java:1:14:1:23 | Exit |
|
||||
| Exhaustive.java:1:14:1:23 | super(...) | Exhaustive.java:1:14:1:23 | Normal Exit |
|
||||
| Exhaustive.java:1:14:1:23 | { ... } | Exhaustive.java:1:14:1:23 | super(...) |
|
||||
| Exhaustive.java:3:8:3:8 | super(...) | Exhaustive.java:3:8:3:8 | Exit |
|
||||
| Exhaustive.java:3:8:3:8 | Exceptional Exit | Exhaustive.java:3:8:3:8 | Exit |
|
||||
| Exhaustive.java:3:8:3:8 | Exceptional Exit | Exhaustive.java:3:8:3:8 | Exit |
|
||||
| Exhaustive.java:3:8:3:8 | Normal Exit | Exhaustive.java:3:8:3:8 | Exit |
|
||||
| Exhaustive.java:3:8:3:8 | Normal Exit | Exhaustive.java:3:8:3:8 | Exit |
|
||||
| Exhaustive.java:3:8:3:8 | super(...) | Exhaustive.java:3:8:3:8 | Normal Exit |
|
||||
| Exhaustive.java:3:8:3:8 | { ... } | Exhaustive.java:3:8:3:8 | super(...) |
|
||||
| Exhaustive.java:3:8:3:8 | { ... } | Exhaustive.java:3:12:3:12 | <Expr>; |
|
||||
| Exhaustive.java:3:12:3:12 | ...=... | Exhaustive.java:3:15:3:15 | <Expr>; |
|
||||
@@ -9,13 +15,19 @@
|
||||
| Exhaustive.java:3:15:3:15 | ...=... | Exhaustive.java:3:18:3:18 | <Expr>; |
|
||||
| Exhaustive.java:3:15:3:15 | <Expr>; | Exhaustive.java:3:15:3:15 | new E(...) |
|
||||
| Exhaustive.java:3:15:3:15 | new E(...) | Exhaustive.java:3:15:3:15 | ...=... |
|
||||
| Exhaustive.java:3:18:3:18 | ...=... | Exhaustive.java:3:8:3:8 | Exit |
|
||||
| Exhaustive.java:3:18:3:18 | ...=... | Exhaustive.java:3:8:3:8 | Normal Exit |
|
||||
| Exhaustive.java:3:18:3:18 | <Expr>; | Exhaustive.java:3:18:3:18 | new E(...) |
|
||||
| Exhaustive.java:3:18:3:18 | new E(...) | Exhaustive.java:3:18:3:18 | ...=... |
|
||||
| Exhaustive.java:5:15:5:15 | super(...) | Exhaustive.java:5:15:5:15 | Exit |
|
||||
| Exhaustive.java:5:15:5:15 | Exceptional Exit | Exhaustive.java:5:15:5:15 | Exit |
|
||||
| Exhaustive.java:5:15:5:15 | Normal Exit | Exhaustive.java:5:15:5:15 | Exit |
|
||||
| Exhaustive.java:5:15:5:15 | super(...) | Exhaustive.java:5:15:5:15 | Normal Exit |
|
||||
| Exhaustive.java:5:15:5:15 | { ... } | Exhaustive.java:5:15:5:15 | super(...) |
|
||||
| Exhaustive.java:6:15:6:15 | super(...) | Exhaustive.java:6:15:6:15 | Exit |
|
||||
| Exhaustive.java:6:15:6:15 | Exceptional Exit | Exhaustive.java:6:15:6:15 | Exit |
|
||||
| Exhaustive.java:6:15:6:15 | Normal Exit | Exhaustive.java:6:15:6:15 | Exit |
|
||||
| Exhaustive.java:6:15:6:15 | super(...) | Exhaustive.java:6:15:6:15 | Normal Exit |
|
||||
| Exhaustive.java:6:15:6:15 | { ... } | Exhaustive.java:6:15:6:15 | super(...) |
|
||||
| Exhaustive.java:8:22:8:25 | Exceptional Exit | Exhaustive.java:8:22:8:25 | Exit |
|
||||
| Exhaustive.java:8:22:8:25 | Normal Exit | Exhaustive.java:8:22:8:25 | Exit |
|
||||
| Exhaustive.java:8:47:35:3 | { ... } | Exhaustive.java:11:5:11:14 | switch (...) |
|
||||
| Exhaustive.java:11:5:11:14 | switch (...) | Exhaustive.java:11:13:11:13 | o |
|
||||
| Exhaustive.java:11:13:11:13 | o | Exhaustive.java:12:7:12:22 | case <Pattern> |
|
||||
@@ -50,11 +62,15 @@
|
||||
| Exhaustive.java:30:13:30:13 | i | Exhaustive.java:31:7:31:15 | case <Pattern> |
|
||||
| Exhaustive.java:31:7:31:15 | case <Pattern> | Exhaustive.java:31:14:31:14 | <anonymous local variable> |
|
||||
| Exhaustive.java:31:7:31:15 | case <Pattern> | Exhaustive.java:32:7:32:15 | case <Pattern> |
|
||||
| Exhaustive.java:31:14:31:14 | <anonymous local variable> | Exhaustive.java:8:22:8:25 | Exit |
|
||||
| Exhaustive.java:31:14:31:14 | <anonymous local variable> | Exhaustive.java:8:22:8:25 | Normal Exit |
|
||||
| Exhaustive.java:32:7:32:15 | case <Pattern> | Exhaustive.java:32:14:32:14 | <anonymous local variable> |
|
||||
| Exhaustive.java:32:14:32:14 | <anonymous local variable> | Exhaustive.java:8:22:8:25 | Exit |
|
||||
| Test.java:1:14:1:17 | super(...) | Test.java:1:14:1:17 | Exit |
|
||||
| Exhaustive.java:32:14:32:14 | <anonymous local variable> | Exhaustive.java:8:22:8:25 | Normal Exit |
|
||||
| Test.java:1:14:1:17 | Exceptional Exit | Test.java:1:14:1:17 | Exit |
|
||||
| Test.java:1:14:1:17 | Normal Exit | Test.java:1:14:1:17 | Exit |
|
||||
| Test.java:1:14:1:17 | super(...) | Test.java:1:14:1:17 | Normal Exit |
|
||||
| Test.java:1:14:1:17 | { ... } | Test.java:1:14:1:17 | super(...) |
|
||||
| Test.java:3:22:3:25 | Exceptional Exit | Test.java:3:22:3:25 | Exit |
|
||||
| Test.java:3:22:3:25 | Normal Exit | Test.java:3:22:3:25 | Exit |
|
||||
| Test.java:3:41:134:3 | { ... } | Test.java:5:6:5:19 | switch (...) |
|
||||
| Test.java:5:6:5:19 | switch (...) | Test.java:5:14:5:18 | thing |
|
||||
| Test.java:5:14:5:18 | thing | Test.java:6:8:6:23 | case <Pattern> |
|
||||
@@ -380,11 +396,13 @@
|
||||
| Test.java:130:8:130:21 | case <Pattern> | Test.java:130:20:130:20 | <anonymous local variable> |
|
||||
| Test.java:130:8:130:21 | case <Pattern> | Test.java:131:8:131:15 | default |
|
||||
| Test.java:130:20:130:20 | <anonymous local variable> | Test.java:131:8:131:15 | default |
|
||||
| Test.java:131:8:131:15 | default | Test.java:3:22:3:25 | Exit |
|
||||
| Test.java:131:8:131:15 | default | Test.java:3:22:3:25 | Normal Exit |
|
||||
| Test.java:138:8:138:8 | ...=... | Test.java:138:8:138:8 | <Expr>; |
|
||||
| Test.java:138:8:138:8 | ...=... | Test.java:138:8:138:8 | Exit |
|
||||
| Test.java:138:8:138:8 | ...=... | Test.java:138:8:138:8 | Normal Exit |
|
||||
| Test.java:138:8:138:8 | <Expr>; | Test.java:138:8:138:8 | this |
|
||||
| Test.java:138:8:138:8 | <Expr>; | Test.java:138:8:138:8 | this |
|
||||
| Test.java:138:8:138:8 | Exceptional Exit | Test.java:138:8:138:8 | Exit |
|
||||
| Test.java:138:8:138:8 | Normal Exit | Test.java:138:8:138:8 | Exit |
|
||||
| Test.java:138:8:138:8 | b | Test.java:138:8:138:8 | ...=... |
|
||||
| Test.java:138:8:138:8 | field3 | Test.java:138:8:138:8 | ...=... |
|
||||
| Test.java:138:8:138:8 | super(...) | Test.java:138:8:138:8 | <Expr>; |
|
||||
@@ -392,9 +410,11 @@
|
||||
| Test.java:138:8:138:8 | this | Test.java:138:8:138:8 | field3 |
|
||||
| Test.java:138:8:138:8 | { ... } | Test.java:138:8:138:8 | super(...) |
|
||||
| Test.java:139:8:139:8 | ...=... | Test.java:139:8:139:8 | <Expr>; |
|
||||
| Test.java:139:8:139:8 | ...=... | Test.java:139:8:139:8 | Exit |
|
||||
| Test.java:139:8:139:8 | ...=... | Test.java:139:8:139:8 | Normal Exit |
|
||||
| Test.java:139:8:139:8 | <Expr>; | Test.java:139:8:139:8 | this |
|
||||
| Test.java:139:8:139:8 | <Expr>; | Test.java:139:8:139:8 | this |
|
||||
| Test.java:139:8:139:8 | Exceptional Exit | Test.java:139:8:139:8 | Exit |
|
||||
| Test.java:139:8:139:8 | Normal Exit | Test.java:139:8:139:8 | Exit |
|
||||
| Test.java:139:8:139:8 | field1 | Test.java:139:8:139:8 | ...=... |
|
||||
| Test.java:139:8:139:8 | field2 | Test.java:139:8:139:8 | ...=... |
|
||||
| Test.java:139:8:139:8 | super(...) | Test.java:139:8:139:8 | <Expr>; |
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| CloseReaderTest.java:8:14:8:28 | super(...) | CloseReaderTest.java:8:14:8:28 | Exit |
|
||||
| CloseReaderTest.java:8:14:8:28 | Exceptional Exit | CloseReaderTest.java:8:14:8:28 | Exit |
|
||||
| CloseReaderTest.java:8:14:8:28 | Normal Exit | CloseReaderTest.java:8:14:8:28 | Exit |
|
||||
| CloseReaderTest.java:8:14:8:28 | super(...) | CloseReaderTest.java:8:14:8:28 | Normal Exit |
|
||||
| CloseReaderTest.java:8:14:8:28 | { ... } | CloseReaderTest.java:8:14:8:28 | super(...) |
|
||||
| CloseReaderTest.java:9:23:9:34 | Exceptional Exit | CloseReaderTest.java:9:23:9:34 | Exit |
|
||||
| CloseReaderTest.java:9:23:9:34 | Normal Exit | CloseReaderTest.java:9:23:9:34 | Exit |
|
||||
| CloseReaderTest.java:10:2:24:2 | { ... } | CloseReaderTest.java:12:3:13:42 | <Expr>; |
|
||||
| CloseReaderTest.java:12:3:12:12 | System.out | CloseReaderTest.java:12:20:12:40 | "Enter password for " |
|
||||
| CloseReaderTest.java:12:3:13:41 | print(...) | CloseReaderTest.java:14:3:14:21 | <Expr>; |
|
||||
@@ -19,12 +23,12 @@
|
||||
| CloseReaderTest.java:16:5:16:13 | System.in | CloseReaderTest.java:15:45:16:14 | new InputStreamReader(...) |
|
||||
| CloseReaderTest.java:17:3:23:3 | try ... | CloseReaderTest.java:18:3:20:3 | { ... } |
|
||||
| CloseReaderTest.java:18:3:20:3 | { ... } | CloseReaderTest.java:19:11:19:15 | stdin |
|
||||
| CloseReaderTest.java:19:4:19:27 | return ... | CloseReaderTest.java:9:23:9:34 | Exit |
|
||||
| CloseReaderTest.java:19:4:19:27 | return ... | CloseReaderTest.java:9:23:9:34 | Normal Exit |
|
||||
| CloseReaderTest.java:19:11:19:15 | stdin | CloseReaderTest.java:19:11:19:26 | readLine(...) |
|
||||
| CloseReaderTest.java:19:11:19:26 | readLine(...) | CloseReaderTest.java:19:4:19:27 | return ... |
|
||||
| CloseReaderTest.java:19:11:19:26 | readLine(...) | CloseReaderTest.java:20:5:20:26 | catch (...) |
|
||||
| CloseReaderTest.java:20:5:20:26 | catch (...) | CloseReaderTest.java:20:24:20:25 | ex |
|
||||
| CloseReaderTest.java:20:24:20:25 | ex | CloseReaderTest.java:21:3:23:3 | { ... } |
|
||||
| CloseReaderTest.java:21:3:23:3 | { ... } | CloseReaderTest.java:22:11:22:14 | null |
|
||||
| CloseReaderTest.java:22:4:22:15 | return ... | CloseReaderTest.java:9:23:9:34 | Exit |
|
||||
| CloseReaderTest.java:22:4:22:15 | return ... | CloseReaderTest.java:9:23:9:34 | Normal Exit |
|
||||
| CloseReaderTest.java:22:11:22:14 | null | CloseReaderTest.java:22:4:22:15 | return ... |
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| LoopVarReadTest.java:3:14:3:28 | super(...) | LoopVarReadTest.java:3:14:3:28 | Exit |
|
||||
| LoopVarReadTest.java:3:14:3:28 | Exceptional Exit | LoopVarReadTest.java:3:14:3:28 | Exit |
|
||||
| LoopVarReadTest.java:3:14:3:28 | Normal Exit | LoopVarReadTest.java:3:14:3:28 | Exit |
|
||||
| LoopVarReadTest.java:3:14:3:28 | super(...) | LoopVarReadTest.java:3:14:3:28 | Normal Exit |
|
||||
| LoopVarReadTest.java:3:14:3:28 | { ... } | LoopVarReadTest.java:3:14:3:28 | super(...) |
|
||||
| LoopVarReadTest.java:4:21:4:28 | Exceptional Exit | LoopVarReadTest.java:4:21:4:28 | Exit |
|
||||
| LoopVarReadTest.java:4:21:4:28 | Normal Exit | LoopVarReadTest.java:4:21:4:28 | Exit |
|
||||
| LoopVarReadTest.java:5:2:15:2 | { ... } | LoopVarReadTest.java:6:3:6:12 | var ...; |
|
||||
| LoopVarReadTest.java:6:3:6:12 | var ...; | LoopVarReadTest.java:6:11:6:11 | 2 |
|
||||
| LoopVarReadTest.java:6:7:6:11 | x | LoopVarReadTest.java:7:3:7:33 | for (...;...;...) |
|
||||
@@ -23,6 +27,6 @@
|
||||
| LoopVarReadTest.java:12:7:12:12 | q | LoopVarReadTest.java:14:3:14:28 | <Expr>; |
|
||||
| LoopVarReadTest.java:12:11:12:12 | 10 | LoopVarReadTest.java:12:7:12:12 | q |
|
||||
| LoopVarReadTest.java:14:3:14:12 | System.out | LoopVarReadTest.java:14:22:14:26 | "foo" |
|
||||
| LoopVarReadTest.java:14:3:14:27 | println(...) | LoopVarReadTest.java:4:21:4:28 | Exit |
|
||||
| LoopVarReadTest.java:14:3:14:27 | println(...) | LoopVarReadTest.java:4:21:4:28 | Normal Exit |
|
||||
| LoopVarReadTest.java:14:3:14:28 | <Expr>; | LoopVarReadTest.java:14:3:14:12 | System.out |
|
||||
| LoopVarReadTest.java:14:22:14:26 | "foo" | LoopVarReadTest.java:14:3:14:27 | println(...) |
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| SaveFileTest.java:11:14:11:25 | super(...) | SaveFileTest.java:11:14:11:25 | Exit |
|
||||
| SaveFileTest.java:11:14:11:25 | Exceptional Exit | SaveFileTest.java:11:14:11:25 | Exit |
|
||||
| SaveFileTest.java:11:14:11:25 | Normal Exit | SaveFileTest.java:11:14:11:25 | Exit |
|
||||
| SaveFileTest.java:11:14:11:25 | super(...) | SaveFileTest.java:11:14:11:25 | Normal Exit |
|
||||
| SaveFileTest.java:11:14:11:25 | { ... } | SaveFileTest.java:11:14:11:25 | super(...) |
|
||||
| SaveFileTest.java:12:14:12:21 | Exceptional Exit | SaveFileTest.java:12:14:12:21 | Exit |
|
||||
| SaveFileTest.java:12:14:12:21 | Normal Exit | SaveFileTest.java:12:14:12:21 | Exit |
|
||||
| SaveFileTest.java:15:2:55:2 | { ... } | SaveFileTest.java:17:3:17:25 | var ...; |
|
||||
| SaveFileTest.java:17:3:17:25 | var ...; | SaveFileTest.java:17:21:17:24 | path |
|
||||
| SaveFileTest.java:17:10:17:24 | savePath | SaveFileTest.java:18:3:18:27 | if (...) |
|
||||
@@ -95,9 +99,11 @@
|
||||
| SaveFileTest.java:48:5:48:15 | flush(...) | SaveFileTest.java:50:6:50:30 | catch (...) |
|
||||
| SaveFileTest.java:48:5:48:16 | <Expr>; | SaveFileTest.java:48:5:48:7 | bos |
|
||||
| SaveFileTest.java:49:5:49:7 | bos | SaveFileTest.java:49:5:49:15 | close(...) |
|
||||
| SaveFileTest.java:49:5:49:15 | close(...) | SaveFileTest.java:12:14:12:21 | Exit |
|
||||
| SaveFileTest.java:49:5:49:15 | close(...) | SaveFileTest.java:12:14:12:21 | Exceptional Exit |
|
||||
| SaveFileTest.java:49:5:49:15 | close(...) | SaveFileTest.java:12:14:12:21 | Normal Exit |
|
||||
| SaveFileTest.java:49:5:49:15 | close(...) | SaveFileTest.java:50:6:50:30 | catch (...) |
|
||||
| SaveFileTest.java:49:5:49:16 | <Expr>; | SaveFileTest.java:49:5:49:7 | bos |
|
||||
| SaveFileTest.java:50:6:50:30 | catch (...) | SaveFileTest.java:50:23:50:29 | ignored |
|
||||
| SaveFileTest.java:50:23:50:29 | ignored | SaveFileTest.java:51:4:52:4 | { ... } |
|
||||
| SaveFileTest.java:51:4:52:4 | { ... } | SaveFileTest.java:12:14:12:21 | Exit |
|
||||
| SaveFileTest.java:51:4:52:4 | { ... } | SaveFileTest.java:12:14:12:21 | Exceptional Exit |
|
||||
| SaveFileTest.java:51:4:52:4 | { ... } | SaveFileTest.java:12:14:12:21 | Normal Exit |
|
||||
|
||||
@@ -1,9 +1,17 @@
|
||||
| SchackTest.java:1:14:1:23 | super(...) | SchackTest.java:1:14:1:23 | Exit |
|
||||
| SchackTest.java:1:14:1:23 | Exceptional Exit | SchackTest.java:1:14:1:23 | Exit |
|
||||
| SchackTest.java:1:14:1:23 | Normal Exit | SchackTest.java:1:14:1:23 | Exit |
|
||||
| SchackTest.java:1:14:1:23 | super(...) | SchackTest.java:1:14:1:23 | Normal Exit |
|
||||
| SchackTest.java:1:14:1:23 | { ... } | SchackTest.java:1:14:1:23 | super(...) |
|
||||
| SchackTest.java:2:8:2:10 | super(...) | SchackTest.java:2:8:2:10 | Exit |
|
||||
| SchackTest.java:2:8:2:10 | Exceptional Exit | SchackTest.java:2:8:2:10 | Exit |
|
||||
| SchackTest.java:2:8:2:10 | Normal Exit | SchackTest.java:2:8:2:10 | Exit |
|
||||
| SchackTest.java:2:8:2:10 | super(...) | SchackTest.java:2:8:2:10 | Normal Exit |
|
||||
| SchackTest.java:2:8:2:10 | { ... } | SchackTest.java:2:8:2:10 | super(...) |
|
||||
| SchackTest.java:3:8:3:10 | super(...) | SchackTest.java:3:8:3:10 | Exit |
|
||||
| SchackTest.java:3:8:3:10 | Exceptional Exit | SchackTest.java:3:8:3:10 | Exit |
|
||||
| SchackTest.java:3:8:3:10 | Normal Exit | SchackTest.java:3:8:3:10 | Exit |
|
||||
| SchackTest.java:3:8:3:10 | super(...) | SchackTest.java:3:8:3:10 | Normal Exit |
|
||||
| SchackTest.java:3:8:3:10 | { ... } | SchackTest.java:3:8:3:10 | super(...) |
|
||||
| SchackTest.java:5:7:5:9 | Exceptional Exit | SchackTest.java:5:7:5:9 | Exit |
|
||||
| SchackTest.java:5:7:5:9 | Normal Exit | SchackTest.java:5:7:5:9 | Exit |
|
||||
| SchackTest.java:5:18:24:2 | { ... } | SchackTest.java:6:3:23:3 | try ... |
|
||||
| SchackTest.java:6:3:23:3 | try ... | SchackTest.java:6:7:17:3 | { ... } |
|
||||
| SchackTest.java:6:7:17:3 | { ... } | SchackTest.java:7:4:15:4 | try ... |
|
||||
@@ -56,18 +64,21 @@
|
||||
| SchackTest.java:20:23:20:72 | "successor (but neither true nor false successor)" | SchackTest.java:20:4:20:73 | println(...) |
|
||||
| SchackTest.java:21:13:23:3 | { ... } | SchackTest.java:22:4:22:41 | <Expr>; |
|
||||
| SchackTest.java:22:4:22:13 | System.out | SchackTest.java:22:23:22:39 | "false successor" |
|
||||
| SchackTest.java:22:4:22:40 | println(...) | SchackTest.java:5:7:5:9 | Exit |
|
||||
| SchackTest.java:22:4:22:40 | println(...) | SchackTest.java:5:7:5:9 | Exceptional Exit |
|
||||
| SchackTest.java:22:4:22:40 | println(...) | SchackTest.java:5:7:5:9 | Normal Exit |
|
||||
| SchackTest.java:22:4:22:41 | <Expr>; | SchackTest.java:22:4:22:13 | System.out |
|
||||
| SchackTest.java:22:23:22:39 | "false successor" | SchackTest.java:22:4:22:40 | println(...) |
|
||||
| SchackTest.java:26:18:26:20 | Exceptional Exit | SchackTest.java:26:18:26:20 | Exit |
|
||||
| SchackTest.java:26:18:26:20 | Normal Exit | SchackTest.java:26:18:26:20 | Exit |
|
||||
| SchackTest.java:26:35:30:2 | { ... } | SchackTest.java:27:3:27:25 | if (...) |
|
||||
| SchackTest.java:27:3:27:25 | if (...) | SchackTest.java:27:7:27:19 | random(...) |
|
||||
| SchackTest.java:27:7:27:19 | random(...) | SchackTest.java:27:23:27:24 | .5 |
|
||||
| SchackTest.java:27:7:27:24 | ... > ... | SchackTest.java:28:10:28:18 | new ExB(...) |
|
||||
| SchackTest.java:27:7:27:24 | ... > ... | SchackTest.java:29:10:29:22 | random(...) |
|
||||
| SchackTest.java:27:23:27:24 | .5 | SchackTest.java:27:7:27:24 | ... > ... |
|
||||
| SchackTest.java:28:4:28:19 | throw ... | SchackTest.java:26:18:26:20 | Exit |
|
||||
| SchackTest.java:28:4:28:19 | throw ... | SchackTest.java:26:18:26:20 | Exceptional Exit |
|
||||
| SchackTest.java:28:10:28:18 | new ExB(...) | SchackTest.java:28:4:28:19 | throw ... |
|
||||
| SchackTest.java:29:3:29:28 | return ... | SchackTest.java:26:18:26:20 | Exit |
|
||||
| SchackTest.java:29:3:29:28 | return ... | SchackTest.java:26:18:26:20 | Normal Exit |
|
||||
| SchackTest.java:29:10:29:22 | random(...) | SchackTest.java:29:26:29:27 | .3 |
|
||||
| SchackTest.java:29:10:29:27 | ... > ... | SchackTest.java:29:3:29:28 | return ... |
|
||||
| SchackTest.java:29:26:29:27 | .3 | SchackTest.java:29:10:29:27 | ... > ... |
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| TestBreak.java:3:14:3:22 | super(...) | TestBreak.java:3:14:3:22 | Exit |
|
||||
| TestBreak.java:3:14:3:22 | Exceptional Exit | TestBreak.java:3:14:3:22 | Exit |
|
||||
| TestBreak.java:3:14:3:22 | Normal Exit | TestBreak.java:3:14:3:22 | Exit |
|
||||
| TestBreak.java:3:14:3:22 | super(...) | TestBreak.java:3:14:3:22 | Normal Exit |
|
||||
| TestBreak.java:3:14:3:22 | { ... } | TestBreak.java:3:14:3:22 | super(...) |
|
||||
| TestBreak.java:4:14:4:14 | Exceptional Exit | TestBreak.java:4:14:4:14 | Exit |
|
||||
| TestBreak.java:4:14:4:14 | Normal Exit | TestBreak.java:4:14:4:14 | Exit |
|
||||
| TestBreak.java:5:2:85:2 | { ... } | TestBreak.java:7:3:8:11 | <Label>: ... |
|
||||
| TestBreak.java:7:3:8:11 | <Label>: ... | TestBreak.java:8:4:8:11 | for (...;...;...) |
|
||||
| TestBreak.java:8:4:8:11 | for (...;...;...) | TestBreak.java:9:4:28:4 | { ... } |
|
||||
@@ -140,16 +144,16 @@
|
||||
| TestBreak.java:72:4:72:9 | <Expr>; | TestBreak.java:72:8:72:8 | x |
|
||||
| TestBreak.java:72:8:72:8 | x | TestBreak.java:72:4:72:8 | ...=... |
|
||||
| TestBreak.java:76:3:76:11 | switch (...) | TestBreak.java:76:10:76:10 | x |
|
||||
| TestBreak.java:76:10:76:10 | x | TestBreak.java:4:14:4:14 | Exit |
|
||||
| TestBreak.java:76:10:76:10 | x | TestBreak.java:4:14:4:14 | Normal Exit |
|
||||
| TestBreak.java:76:10:76:10 | x | TestBreak.java:78:3:78:9 | case ... |
|
||||
| TestBreak.java:76:10:76:10 | x | TestBreak.java:81:3:81:9 | case ... |
|
||||
| TestBreak.java:78:3:78:9 | case ... | TestBreak.java:79:4:79:9 | <Expr>; |
|
||||
| TestBreak.java:79:4:79:8 | ...=... | TestBreak.java:80:4:80:9 | break |
|
||||
| TestBreak.java:79:4:79:9 | <Expr>; | TestBreak.java:79:8:79:8 | 1 |
|
||||
| TestBreak.java:79:8:79:8 | 1 | TestBreak.java:79:4:79:8 | ...=... |
|
||||
| TestBreak.java:80:4:80:9 | break | TestBreak.java:4:14:4:14 | Exit |
|
||||
| TestBreak.java:80:4:80:9 | break | TestBreak.java:4:14:4:14 | Normal Exit |
|
||||
| TestBreak.java:81:3:81:9 | case ... | TestBreak.java:82:4:82:9 | <Expr>; |
|
||||
| TestBreak.java:82:4:82:8 | ...=... | TestBreak.java:83:4:83:9 | break |
|
||||
| TestBreak.java:82:4:82:9 | <Expr>; | TestBreak.java:82:8:82:8 | 2 |
|
||||
| TestBreak.java:82:8:82:8 | 2 | TestBreak.java:82:4:82:8 | ...=... |
|
||||
| TestBreak.java:83:4:83:9 | break | TestBreak.java:4:14:4:14 | Exit |
|
||||
| TestBreak.java:83:4:83:9 | break | TestBreak.java:4:14:4:14 | Normal Exit |
|
||||
|
||||
@@ -6,5 +6,5 @@
|
||||
| TestContinue.java:33:8:33:13 | ... == ... | TestContinue.java:37:4:47:4 | { ... } |
|
||||
| TestContinue.java:40:10:40:15 | ... == ... | TestContinue.java:44:6:44:15 | <Expr>; |
|
||||
| TestContinue.java:45:14:45:19 | ... == ... | TestContinue.java:46:5:46:11 | <Expr>; |
|
||||
| TestContinue.java:51:10:51:16 | ... != ... | TestContinue.java:4:14:4:14 | Exit |
|
||||
| TestContinue.java:51:10:51:16 | ... != ... | TestContinue.java:4:14:4:14 | Normal Exit |
|
||||
| TestContinue.java:53:8:53:13 | ... != ... | TestContinue.java:56:5:56:10 | break |
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| TestContinue.java:3:14:3:25 | super(...) | TestContinue.java:3:14:3:25 | Exit |
|
||||
| TestContinue.java:3:14:3:25 | Exceptional Exit | TestContinue.java:3:14:3:25 | Exit |
|
||||
| TestContinue.java:3:14:3:25 | Normal Exit | TestContinue.java:3:14:3:25 | Exit |
|
||||
| TestContinue.java:3:14:3:25 | super(...) | TestContinue.java:3:14:3:25 | Normal Exit |
|
||||
| TestContinue.java:3:14:3:25 | { ... } | TestContinue.java:3:14:3:25 | super(...) |
|
||||
| TestContinue.java:4:14:4:14 | Exceptional Exit | TestContinue.java:4:14:4:14 | Exit |
|
||||
| TestContinue.java:4:14:4:14 | Normal Exit | TestContinue.java:4:14:4:14 | Exit |
|
||||
| TestContinue.java:5:2:58:2 | { ... } | TestContinue.java:7:3:8:27 | <Label>: ... |
|
||||
| TestContinue.java:7:3:8:27 | <Label>: ... | TestContinue.java:8:4:8:27 | for (...;...;...) |
|
||||
| TestContinue.java:8:4:8:27 | for (...;...;...) | TestContinue.java:8:17:8:17 | 0 |
|
||||
@@ -97,7 +101,7 @@
|
||||
| TestContinue.java:50:7:50:8 | 13 | TestContinue.java:50:3:50:8 | ...=... |
|
||||
| TestContinue.java:51:3:51:17 | while (...) | TestContinue.java:51:10:51:10 | y |
|
||||
| TestContinue.java:51:10:51:10 | y | TestContinue.java:51:15:51:16 | 12 |
|
||||
| TestContinue.java:51:10:51:16 | ... != ... | TestContinue.java:4:14:4:14 | Exit |
|
||||
| TestContinue.java:51:10:51:16 | ... != ... | TestContinue.java:4:14:4:14 | Normal Exit |
|
||||
| TestContinue.java:51:10:51:16 | ... != ... | TestContinue.java:52:3:57:3 | { ... } |
|
||||
| TestContinue.java:51:15:51:16 | 12 | TestContinue.java:51:10:51:16 | ... != ... |
|
||||
| TestContinue.java:52:3:57:3 | { ... } | TestContinue.java:53:4:53:14 | if (...) |
|
||||
@@ -107,4 +111,4 @@
|
||||
| TestContinue.java:53:8:53:13 | ... != ... | TestContinue.java:56:5:56:10 | break |
|
||||
| TestContinue.java:53:13:53:13 | 6 | TestContinue.java:53:8:53:13 | ... != ... |
|
||||
| TestContinue.java:54:5:54:13 | continue | TestContinue.java:51:10:51:10 | y |
|
||||
| TestContinue.java:56:5:56:10 | break | TestContinue.java:4:14:4:14 | Exit |
|
||||
| TestContinue.java:56:5:56:10 | break | TestContinue.java:4:14:4:14 | Normal Exit |
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| TestDeclarations.java:1:7:1:22 | super(...) | TestDeclarations.java:1:7:1:22 | Exit |
|
||||
| TestDeclarations.java:1:7:1:22 | Exceptional Exit | TestDeclarations.java:1:7:1:22 | Exit |
|
||||
| TestDeclarations.java:1:7:1:22 | Normal Exit | TestDeclarations.java:1:7:1:22 | Exit |
|
||||
| TestDeclarations.java:1:7:1:22 | super(...) | TestDeclarations.java:1:7:1:22 | Normal Exit |
|
||||
| TestDeclarations.java:1:7:1:22 | { ... } | TestDeclarations.java:1:7:1:22 | super(...) |
|
||||
| TestDeclarations.java:2:6:2:21 | Exceptional Exit | TestDeclarations.java:2:6:2:21 | Exit |
|
||||
| TestDeclarations.java:2:6:2:21 | Normal Exit | TestDeclarations.java:2:6:2:21 | Exit |
|
||||
| TestDeclarations.java:2:30:24:2 | { ... } | TestDeclarations.java:4:3:4:11 | var ...; |
|
||||
| TestDeclarations.java:4:3:4:11 | var ...; | TestDeclarations.java:4:7:4:7 | b |
|
||||
| TestDeclarations.java:4:7:4:7 | b | TestDeclarations.java:4:10:4:10 | c |
|
||||
@@ -39,7 +43,7 @@
|
||||
| TestDeclarations.java:17:8:17:14 | ... == ... | TestDeclarations.java:7:9:7:12 | true |
|
||||
| TestDeclarations.java:17:8:17:14 | ... == ... | TestDeclarations.java:18:12:18:12 | c |
|
||||
| TestDeclarations.java:17:13:17:14 | 20 | TestDeclarations.java:17:8:17:14 | ... == ... |
|
||||
| TestDeclarations.java:18:5:18:13 | return ... | TestDeclarations.java:2:6:2:21 | Exit |
|
||||
| TestDeclarations.java:18:5:18:13 | return ... | TestDeclarations.java:2:6:2:21 | Normal Exit |
|
||||
| TestDeclarations.java:18:12:18:12 | c | TestDeclarations.java:18:5:18:13 | return ... |
|
||||
| TestDeclarations.java:20:3:20:10 | var ...; | TestDeclarations.java:20:7:20:7 | x |
|
||||
| TestDeclarations.java:20:7:20:7 | x | TestDeclarations.java:20:9:20:9 | y |
|
||||
@@ -50,5 +54,5 @@
|
||||
| TestDeclarations.java:22:3:22:7 | ...=... | TestDeclarations.java:23:10:23:10 | b |
|
||||
| TestDeclarations.java:22:3:22:8 | <Expr>; | TestDeclarations.java:22:7:22:7 | 4 |
|
||||
| TestDeclarations.java:22:7:22:7 | 4 | TestDeclarations.java:22:3:22:7 | ...=... |
|
||||
| TestDeclarations.java:23:3:23:11 | return ... | TestDeclarations.java:2:6:2:21 | Exit |
|
||||
| TestDeclarations.java:23:3:23:11 | return ... | TestDeclarations.java:2:6:2:21 | Normal Exit |
|
||||
| TestDeclarations.java:23:10:23:10 | b | TestDeclarations.java:23:3:23:11 | return ... |
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| TestFinally.java:3:14:3:24 | super(...) | TestFinally.java:3:14:3:24 | Exit |
|
||||
| TestFinally.java:3:14:3:24 | Exceptional Exit | TestFinally.java:3:14:3:24 | Exit |
|
||||
| TestFinally.java:3:14:3:24 | Normal Exit | TestFinally.java:3:14:3:24 | Exit |
|
||||
| TestFinally.java:3:14:3:24 | super(...) | TestFinally.java:3:14:3:24 | Normal Exit |
|
||||
| TestFinally.java:3:14:3:24 | { ... } | TestFinally.java:3:14:3:24 | super(...) |
|
||||
| TestFinally.java:4:14:4:14 | Exceptional Exit | TestFinally.java:4:14:4:14 | Exit |
|
||||
| TestFinally.java:4:14:4:14 | Normal Exit | TestFinally.java:4:14:4:14 | Exit |
|
||||
| TestFinally.java:5:2:149:2 | { ... } | TestFinally.java:6:3:6:13 | var ...; |
|
||||
| TestFinally.java:6:3:6:13 | var ...; | TestFinally.java:6:11:6:12 | 12 |
|
||||
| TestFinally.java:6:7:6:12 | z | TestFinally.java:7:3:120:3 | try ... |
|
||||
@@ -268,7 +272,8 @@
|
||||
| TestFinally.java:118:4:118:32 | println(...) | TestFinally.java:119:4:119:13 | <Expr>; |
|
||||
| TestFinally.java:118:4:118:33 | <Expr>; | TestFinally.java:118:4:118:13 | System.out |
|
||||
| TestFinally.java:118:23:118:31 | "Finally" | TestFinally.java:118:4:118:32 | println(...) |
|
||||
| TestFinally.java:119:4:119:12 | ...=... | TestFinally.java:4:14:4:14 | Exit |
|
||||
| TestFinally.java:119:4:119:12 | ...=... | TestFinally.java:4:14:4:14 | Exceptional Exit |
|
||||
| TestFinally.java:119:4:119:12 | ...=... | TestFinally.java:4:14:4:14 | Normal Exit |
|
||||
| TestFinally.java:119:4:119:12 | ...=... | TestFinally.java:121:3:121:12 | <Expr>; |
|
||||
| TestFinally.java:119:4:119:13 | <Expr>; | TestFinally.java:119:8:119:8 | y |
|
||||
| TestFinally.java:119:8:119:8 | y | TestFinally.java:119:12:119:12 | 1 |
|
||||
@@ -324,13 +329,14 @@
|
||||
| TestFinally.java:141:8:141:13 | ... == ... | TestFinally.java:145:4:145:34 | <Expr>; |
|
||||
| TestFinally.java:141:13:141:13 | 1 | TestFinally.java:141:8:141:13 | ... == ... |
|
||||
| TestFinally.java:142:4:144:4 | { ... } | TestFinally.java:143:5:143:11 | return ... |
|
||||
| TestFinally.java:143:5:143:11 | return ... | TestFinally.java:4:14:4:14 | Exit |
|
||||
| TestFinally.java:143:5:143:11 | return ... | TestFinally.java:4:14:4:14 | Normal Exit |
|
||||
| TestFinally.java:145:4:145:13 | System.out | TestFinally.java:145:23:145:32 | "Finally2" |
|
||||
| TestFinally.java:145:4:145:33 | println(...) | TestFinally.java:4:14:4:14 | Exit |
|
||||
| TestFinally.java:145:4:145:33 | println(...) | TestFinally.java:4:14:4:14 | Exceptional Exit |
|
||||
| TestFinally.java:145:4:145:33 | println(...) | TestFinally.java:4:14:4:14 | Normal Exit |
|
||||
| TestFinally.java:145:4:145:33 | println(...) | TestFinally.java:148:3:148:12 | <Expr>; |
|
||||
| TestFinally.java:145:4:145:34 | <Expr>; | TestFinally.java:145:4:145:13 | System.out |
|
||||
| TestFinally.java:145:23:145:32 | "Finally2" | TestFinally.java:145:4:145:33 | println(...) |
|
||||
| TestFinally.java:148:3:148:11 | ...=... | TestFinally.java:4:14:4:14 | Exit |
|
||||
| TestFinally.java:148:3:148:11 | ...=... | TestFinally.java:4:14:4:14 | Normal Exit |
|
||||
| TestFinally.java:148:3:148:12 | <Expr>; | TestFinally.java:148:7:148:7 | z |
|
||||
| TestFinally.java:148:7:148:7 | z | TestFinally.java:148:11:148:11 | 2 |
|
||||
| TestFinally.java:148:7:148:11 | ... + ... | TestFinally.java:148:3:148:11 | ...=... |
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| TestFinallyBreakContinue.java:3:14:3:37 | super(...) | TestFinallyBreakContinue.java:3:14:3:37 | Exit |
|
||||
| TestFinallyBreakContinue.java:3:14:3:37 | Exceptional Exit | TestFinallyBreakContinue.java:3:14:3:37 | Exit |
|
||||
| TestFinallyBreakContinue.java:3:14:3:37 | Normal Exit | TestFinallyBreakContinue.java:3:14:3:37 | Exit |
|
||||
| TestFinallyBreakContinue.java:3:14:3:37 | super(...) | TestFinallyBreakContinue.java:3:14:3:37 | Normal Exit |
|
||||
| TestFinallyBreakContinue.java:3:14:3:37 | { ... } | TestFinallyBreakContinue.java:3:14:3:37 | super(...) |
|
||||
| TestFinallyBreakContinue.java:4:14:4:14 | Exceptional Exit | TestFinallyBreakContinue.java:4:14:4:14 | Exit |
|
||||
| TestFinallyBreakContinue.java:4:14:4:14 | Normal Exit | TestFinallyBreakContinue.java:4:14:4:14 | Exit |
|
||||
| TestFinallyBreakContinue.java:5:2:107:2 | { ... } | TestFinallyBreakContinue.java:6:3:6:12 | var ...; |
|
||||
| TestFinallyBreakContinue.java:6:3:6:12 | var ...; | TestFinallyBreakContinue.java:6:11:6:11 | 1 |
|
||||
| TestFinallyBreakContinue.java:6:7:6:11 | x | TestFinallyBreakContinue.java:7:3:8:10 | <Label>: ... |
|
||||
@@ -79,7 +83,7 @@
|
||||
| TestFinallyBreakContinue.java:62:24:62:34 | "Exception" | TestFinallyBreakContinue.java:62:5:62:35 | println(...) |
|
||||
| TestFinallyBreakContinue.java:64:4:66:4 | { ... } | TestFinallyBreakContinue.java:65:5:65:34 | <Expr>; |
|
||||
| TestFinallyBreakContinue.java:65:5:65:14 | System.out | TestFinallyBreakContinue.java:65:24:65:32 | "finally" |
|
||||
| TestFinallyBreakContinue.java:65:5:65:33 | println(...) | TestFinallyBreakContinue.java:4:14:4:14 | Exit |
|
||||
| TestFinallyBreakContinue.java:65:5:65:33 | println(...) | TestFinallyBreakContinue.java:4:14:4:14 | Exceptional Exit |
|
||||
| TestFinallyBreakContinue.java:65:5:65:33 | println(...) | TestFinallyBreakContinue.java:34:10:34:13 | true |
|
||||
| TestFinallyBreakContinue.java:65:5:65:33 | println(...) | TestFinallyBreakContinue.java:69:3:106:17 | <Label>: ... |
|
||||
| TestFinallyBreakContinue.java:65:5:65:34 | <Expr>; | TestFinallyBreakContinue.java:65:5:65:14 | System.out |
|
||||
@@ -134,7 +138,8 @@
|
||||
| TestFinallyBreakContinue.java:101:24:101:34 | "Exception" | TestFinallyBreakContinue.java:101:5:101:35 | println(...) |
|
||||
| TestFinallyBreakContinue.java:103:4:105:4 | { ... } | TestFinallyBreakContinue.java:104:5:104:34 | <Expr>; |
|
||||
| TestFinallyBreakContinue.java:104:5:104:14 | System.out | TestFinallyBreakContinue.java:104:24:104:32 | "finally" |
|
||||
| TestFinallyBreakContinue.java:104:5:104:33 | println(...) | TestFinallyBreakContinue.java:4:14:4:14 | Exit |
|
||||
| TestFinallyBreakContinue.java:104:5:104:33 | println(...) | TestFinallyBreakContinue.java:4:14:4:14 | Exceptional Exit |
|
||||
| TestFinallyBreakContinue.java:104:5:104:33 | println(...) | TestFinallyBreakContinue.java:4:14:4:14 | Normal Exit |
|
||||
| TestFinallyBreakContinue.java:104:5:104:33 | println(...) | TestFinallyBreakContinue.java:106:12:106:15 | true |
|
||||
| TestFinallyBreakContinue.java:104:5:104:34 | <Expr>; | TestFinallyBreakContinue.java:104:5:104:14 | System.out |
|
||||
| TestFinallyBreakContinue.java:104:24:104:32 | "finally" | TestFinallyBreakContinue.java:104:5:104:33 | println(...) |
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
| TestLoopBranch.java:3:14:3:27 | Exceptional Exit | TestLoopBranch.java:3:14:3:27 | Exit |
|
||||
| TestLoopBranch.java:3:14:3:27 | Normal Exit | TestLoopBranch.java:3:14:3:27 | Exit |
|
||||
| TestLoopBranch.java:3:14:3:27 | { ... } | TestLoopBranch.java:4:2:4:13 | <Expr>; |
|
||||
| TestLoopBranch.java:4:2:4:13 | ...=... | TestLoopBranch.java:5:2:5:13 | <Expr>; |
|
||||
| TestLoopBranch.java:4:2:4:13 | <Expr>; | TestLoopBranch.java:4:11:4:12 | 12 |
|
||||
| TestLoopBranch.java:4:11:4:12 | 12 | TestLoopBranch.java:4:2:4:13 | ...=... |
|
||||
| TestLoopBranch.java:5:2:5:13 | ...=... | TestLoopBranch.java:3:14:3:27 | Exit |
|
||||
| TestLoopBranch.java:5:2:5:13 | ...=... | TestLoopBranch.java:3:14:3:27 | Normal Exit |
|
||||
| TestLoopBranch.java:5:2:5:13 | <Expr>; | TestLoopBranch.java:5:11:5:12 | 13 |
|
||||
| TestLoopBranch.java:5:11:5:12 | 13 | TestLoopBranch.java:5:2:5:13 | ...=... |
|
||||
| TestLoopBranch.java:7:14:7:14 | Exceptional Exit | TestLoopBranch.java:7:14:7:14 | Exit |
|
||||
| TestLoopBranch.java:7:14:7:14 | Normal Exit | TestLoopBranch.java:7:14:7:14 | Exit |
|
||||
| TestLoopBranch.java:8:2:107:2 | { ... } | TestLoopBranch.java:9:3:9:12 | var ...; |
|
||||
| TestLoopBranch.java:9:3:9:12 | var ...; | TestLoopBranch.java:9:11:9:11 | 1 |
|
||||
| TestLoopBranch.java:9:7:9:11 | x | TestLoopBranch.java:10:3:10:12 | var ...; |
|
||||
@@ -133,7 +137,7 @@
|
||||
| TestLoopBranch.java:58:8:58:8 | y | TestLoopBranch.java:58:12:58:12 | x |
|
||||
| TestLoopBranch.java:58:8:58:12 | ... * ... | TestLoopBranch.java:58:4:58:12 | ...=... |
|
||||
| TestLoopBranch.java:58:12:58:12 | x | TestLoopBranch.java:58:8:58:12 | ... * ... |
|
||||
| TestLoopBranch.java:59:4:59:10 | return ... | TestLoopBranch.java:7:14:7:14 | Exit |
|
||||
| TestLoopBranch.java:59:4:59:10 | return ... | TestLoopBranch.java:7:14:7:14 | Normal Exit |
|
||||
| TestLoopBranch.java:62:3:62:12 | switch (...) | TestLoopBranch.java:62:11:62:11 | x |
|
||||
| TestLoopBranch.java:62:11:62:11 | x | TestLoopBranch.java:64:3:64:9 | case ... |
|
||||
| TestLoopBranch.java:62:11:62:11 | x | TestLoopBranch.java:67:3:67:9 | case ... |
|
||||
@@ -214,10 +218,14 @@
|
||||
| TestLoopBranch.java:96:3:102:4 | var ...; | TestLoopBranch.java:96:26:102:3 | new (...) |
|
||||
| TestLoopBranch.java:96:22:102:3 | b | TestLoopBranch.java:103:3:103:21 | <Expr>; |
|
||||
| TestLoopBranch.java:96:26:102:3 | new (...) | TestLoopBranch.java:96:22:102:3 | b |
|
||||
| TestLoopBranch.java:96:30:96:47 | super(...) | TestLoopBranch.java:96:30:96:47 | Exit |
|
||||
| TestLoopBranch.java:96:30:96:47 | Exceptional Exit | TestLoopBranch.java:96:30:96:47 | Exit |
|
||||
| TestLoopBranch.java:96:30:96:47 | Normal Exit | TestLoopBranch.java:96:30:96:47 | Exit |
|
||||
| TestLoopBranch.java:96:30:96:47 | super(...) | TestLoopBranch.java:96:30:96:47 | Normal Exit |
|
||||
| TestLoopBranch.java:96:30:96:47 | { ... } | TestLoopBranch.java:96:30:96:47 | super(...) |
|
||||
| TestLoopBranch.java:98:15:98:23 | Exceptional Exit | TestLoopBranch.java:98:15:98:23 | Exit |
|
||||
| TestLoopBranch.java:98:15:98:23 | Normal Exit | TestLoopBranch.java:98:15:98:23 | Exit |
|
||||
| TestLoopBranch.java:99:4:101:4 | { ... } | TestLoopBranch.java:100:12:100:12 | 0 |
|
||||
| TestLoopBranch.java:100:5:100:13 | return ... | TestLoopBranch.java:98:15:98:23 | Exit |
|
||||
| TestLoopBranch.java:100:5:100:13 | return ... | TestLoopBranch.java:98:15:98:23 | Normal Exit |
|
||||
| TestLoopBranch.java:100:12:100:12 | 0 | TestLoopBranch.java:100:5:100:13 | return ... |
|
||||
| TestLoopBranch.java:103:3:103:3 | b | TestLoopBranch.java:103:15:103:19 | "Foo" |
|
||||
| TestLoopBranch.java:103:3:103:20 | compareTo(...) | TestLoopBranch.java:105:3:105:12 | <Expr>; |
|
||||
@@ -228,24 +236,28 @@
|
||||
| TestLoopBranch.java:105:7:105:7 | x | TestLoopBranch.java:105:11:105:11 | y |
|
||||
| TestLoopBranch.java:105:7:105:11 | ... + ... | TestLoopBranch.java:105:3:105:11 | ...=... |
|
||||
| TestLoopBranch.java:105:11:105:11 | y | TestLoopBranch.java:105:7:105:11 | ... + ... |
|
||||
| TestLoopBranch.java:106:3:106:9 | return ... | TestLoopBranch.java:7:14:7:14 | Exit |
|
||||
| TestLoopBranch.java:106:3:106:9 | return ... | TestLoopBranch.java:7:14:7:14 | Normal Exit |
|
||||
| TestLoopBranch.java:109:9:109:22 | <Expr>; | TestLoopBranch.java:109:9:109:22 | <obinit>(...) |
|
||||
| TestLoopBranch.java:109:9:109:22 | <obinit>(...) | TestLoopBranch.java:111:3:111:10 | <Expr>; |
|
||||
| TestLoopBranch.java:109:9:109:22 | Exceptional Exit | TestLoopBranch.java:109:9:109:22 | Exit |
|
||||
| TestLoopBranch.java:109:9:109:22 | Normal Exit | TestLoopBranch.java:109:9:109:22 | Exit |
|
||||
| TestLoopBranch.java:109:9:109:22 | super(...) | TestLoopBranch.java:109:9:109:22 | <Expr>; |
|
||||
| TestLoopBranch.java:110:2:113:2 | { ... } | TestLoopBranch.java:109:9:109:22 | super(...) |
|
||||
| TestLoopBranch.java:111:3:111:9 | ...=... | TestLoopBranch.java:112:3:112:10 | <Expr>; |
|
||||
| TestLoopBranch.java:111:3:111:10 | <Expr>; | TestLoopBranch.java:111:8:111:9 | 33 |
|
||||
| TestLoopBranch.java:111:8:111:9 | 33 | TestLoopBranch.java:111:3:111:9 | ...=... |
|
||||
| TestLoopBranch.java:112:3:112:9 | ...=... | TestLoopBranch.java:109:9:109:22 | Exit |
|
||||
| TestLoopBranch.java:112:3:112:9 | ...=... | TestLoopBranch.java:109:9:109:22 | Normal Exit |
|
||||
| TestLoopBranch.java:112:3:112:10 | <Expr>; | TestLoopBranch.java:112:8:112:9 | 44 |
|
||||
| TestLoopBranch.java:112:8:112:9 | 44 | TestLoopBranch.java:112:3:112:9 | ...=... |
|
||||
| TestLoopBranch.java:115:9:115:22 | <Expr>; | TestLoopBranch.java:115:9:115:22 | <obinit>(...) |
|
||||
| TestLoopBranch.java:115:9:115:22 | <obinit>(...) | TestLoopBranch.java:117:3:117:9 | <Expr>; |
|
||||
| TestLoopBranch.java:115:9:115:22 | Exceptional Exit | TestLoopBranch.java:115:9:115:22 | Exit |
|
||||
| TestLoopBranch.java:115:9:115:22 | Normal Exit | TestLoopBranch.java:115:9:115:22 | Exit |
|
||||
| TestLoopBranch.java:115:9:115:22 | super(...) | TestLoopBranch.java:115:9:115:22 | <Expr>; |
|
||||
| TestLoopBranch.java:116:2:119:2 | { ... } | TestLoopBranch.java:115:9:115:22 | super(...) |
|
||||
| TestLoopBranch.java:117:3:117:8 | ...=... | TestLoopBranch.java:118:3:118:9 | <Expr>; |
|
||||
| TestLoopBranch.java:117:3:117:9 | <Expr>; | TestLoopBranch.java:117:8:117:8 | i |
|
||||
| TestLoopBranch.java:117:8:117:8 | i | TestLoopBranch.java:117:3:117:8 | ...=... |
|
||||
| TestLoopBranch.java:118:3:118:8 | ...=... | TestLoopBranch.java:115:9:115:22 | Exit |
|
||||
| TestLoopBranch.java:118:3:118:8 | ...=... | TestLoopBranch.java:115:9:115:22 | Normal Exit |
|
||||
| TestLoopBranch.java:118:3:118:9 | <Expr>; | TestLoopBranch.java:118:8:118:8 | i |
|
||||
| TestLoopBranch.java:118:8:118:8 | i | TestLoopBranch.java:118:3:118:8 | ...=... |
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
| TestThrow.java:7:10:7:18 | super(...) | TestThrow.java:7:10:7:18 | Exit |
|
||||
| TestThrow.java:7:10:7:18 | Exceptional Exit | TestThrow.java:7:10:7:18 | Exit |
|
||||
| TestThrow.java:7:10:7:18 | Normal Exit | TestThrow.java:7:10:7:18 | Exit |
|
||||
| TestThrow.java:7:10:7:18 | super(...) | TestThrow.java:7:10:7:18 | Normal Exit |
|
||||
| TestThrow.java:8:2:9:2 | { ... } | TestThrow.java:7:10:7:18 | super(...) |
|
||||
| TestThrow.java:12:2:13:2 | { ... } | TestThrow.java:11:15:11:21 | Exit |
|
||||
| TestThrow.java:11:15:11:21 | Exceptional Exit | TestThrow.java:11:15:11:21 | Exit |
|
||||
| TestThrow.java:11:15:11:21 | Normal Exit | TestThrow.java:11:15:11:21 | Exit |
|
||||
| TestThrow.java:12:2:13:2 | { ... } | TestThrow.java:11:15:11:21 | Normal Exit |
|
||||
| TestThrow.java:15:14:15:14 | Exceptional Exit | TestThrow.java:15:14:15:14 | Exit |
|
||||
| TestThrow.java:15:14:15:14 | Normal Exit | TestThrow.java:15:14:15:14 | Exit |
|
||||
| TestThrow.java:16:2:134:2 | { ... } | TestThrow.java:17:3:17:12 | var ...; |
|
||||
| TestThrow.java:17:3:17:12 | var ...; | TestThrow.java:17:11:17:11 | 0 |
|
||||
| TestThrow.java:17:7:17:11 | z | TestThrow.java:18:3:27:3 | try ... |
|
||||
@@ -69,7 +75,7 @@
|
||||
| TestThrow.java:48:4:48:9 | <Expr>; | TestThrow.java:48:8:48:8 | 1 |
|
||||
| TestThrow.java:48:8:48:8 | 1 | TestThrow.java:48:4:48:8 | ...=... |
|
||||
| TestThrow.java:50:3:52:3 | { ... } | TestThrow.java:51:4:51:9 | <Expr>; |
|
||||
| TestThrow.java:51:4:51:8 | ...=... | TestThrow.java:15:14:15:14 | Exit |
|
||||
| TestThrow.java:51:4:51:8 | ...=... | TestThrow.java:15:14:15:14 | Exceptional Exit |
|
||||
| TestThrow.java:51:4:51:8 | ...=... | TestThrow.java:54:3:54:9 | <Expr>; |
|
||||
| TestThrow.java:51:4:51:9 | <Expr>; | TestThrow.java:51:8:51:8 | 2 |
|
||||
| TestThrow.java:51:8:51:8 | 2 | TestThrow.java:51:4:51:8 | ...=... |
|
||||
@@ -85,7 +91,7 @@
|
||||
| TestThrow.java:58:8:58:13 | ... == ... | TestThrow.java:62:9:62:19 | if (...) |
|
||||
| TestThrow.java:58:13:58:13 | 1 | TestThrow.java:58:8:58:13 | ... == ... |
|
||||
| TestThrow.java:59:4:61:4 | { ... } | TestThrow.java:60:11:60:25 | new Exception(...) |
|
||||
| TestThrow.java:60:5:60:26 | throw ... | TestThrow.java:15:14:15:14 | Exit |
|
||||
| TestThrow.java:60:5:60:26 | throw ... | TestThrow.java:15:14:15:14 | Exceptional Exit |
|
||||
| TestThrow.java:60:5:60:26 | throw ... | TestThrow.java:69:5:69:30 | catch (...) |
|
||||
| TestThrow.java:60:11:60:25 | new Exception(...) | TestThrow.java:60:5:60:26 | throw ... |
|
||||
| TestThrow.java:60:11:60:25 | new Exception(...) | TestThrow.java:69:5:69:30 | catch (...) |
|
||||
@@ -95,7 +101,7 @@
|
||||
| TestThrow.java:62:13:62:18 | ... == ... | TestThrow.java:66:4:68:4 | { ... } |
|
||||
| TestThrow.java:62:18:62:18 | 2 | TestThrow.java:62:13:62:18 | ... == ... |
|
||||
| TestThrow.java:63:4:65:4 | { ... } | TestThrow.java:64:5:64:20 | <Expr>; |
|
||||
| TestThrow.java:64:5:64:19 | new TestThrow(...) | TestThrow.java:15:14:15:14 | Exit |
|
||||
| TestThrow.java:64:5:64:19 | new TestThrow(...) | TestThrow.java:15:14:15:14 | Exceptional Exit |
|
||||
| TestThrow.java:64:5:64:19 | new TestThrow(...) | TestThrow.java:69:5:69:30 | catch (...) |
|
||||
| TestThrow.java:64:5:64:19 | new TestThrow(...) | TestThrow.java:74:3:74:9 | <Expr>; |
|
||||
| TestThrow.java:64:5:64:20 | <Expr>; | TestThrow.java:64:5:64:19 | new TestThrow(...) |
|
||||
@@ -124,7 +130,7 @@
|
||||
| TestThrow.java:79:11:79:25 | new Exception(...) | TestThrow.java:79:5:79:26 | throw ... |
|
||||
| TestThrow.java:79:11:79:25 | new Exception(...) | TestThrow.java:81:3:83:3 | { ... } |
|
||||
| TestThrow.java:81:3:83:3 | { ... } | TestThrow.java:82:4:82:9 | <Expr>; |
|
||||
| TestThrow.java:82:4:82:8 | ...=... | TestThrow.java:15:14:15:14 | Exit |
|
||||
| TestThrow.java:82:4:82:8 | ...=... | TestThrow.java:15:14:15:14 | Exceptional Exit |
|
||||
| TestThrow.java:82:4:82:8 | ...=... | TestThrow.java:85:3:126:3 | try ... |
|
||||
| TestThrow.java:82:4:82:9 | <Expr>; | TestThrow.java:82:8:82:8 | 1 |
|
||||
| TestThrow.java:82:8:82:8 | 1 | TestThrow.java:82:4:82:8 | ...=... |
|
||||
@@ -211,7 +217,7 @@
|
||||
| TestThrow.java:121:4:121:9 | <Expr>; | TestThrow.java:121:8:121:8 | 2 |
|
||||
| TestThrow.java:121:8:121:8 | 2 | TestThrow.java:121:4:121:8 | ...=... |
|
||||
| TestThrow.java:124:3:126:3 | { ... } | TestThrow.java:125:4:125:9 | <Expr>; |
|
||||
| TestThrow.java:125:4:125:8 | ...=... | TestThrow.java:15:14:15:14 | Exit |
|
||||
| TestThrow.java:125:4:125:8 | ...=... | TestThrow.java:15:14:15:14 | Exceptional Exit |
|
||||
| TestThrow.java:125:4:125:8 | ...=... | TestThrow.java:128:3:128:13 | if (...) |
|
||||
| TestThrow.java:125:4:125:9 | <Expr>; | TestThrow.java:125:8:125:8 | 3 |
|
||||
| TestThrow.java:125:8:125:8 | 3 | TestThrow.java:125:4:125:8 | ...=... |
|
||||
@@ -221,9 +227,9 @@
|
||||
| TestThrow.java:128:7:128:12 | ... == ... | TestThrow.java:133:3:133:9 | <Expr>; |
|
||||
| TestThrow.java:128:12:128:12 | 1 | TestThrow.java:128:7:128:12 | ... == ... |
|
||||
| TestThrow.java:129:3:131:3 | { ... } | TestThrow.java:130:10:130:24 | new Exception(...) |
|
||||
| TestThrow.java:130:4:130:25 | throw ... | TestThrow.java:15:14:15:14 | Exit |
|
||||
| TestThrow.java:130:4:130:25 | throw ... | TestThrow.java:15:14:15:14 | Exceptional Exit |
|
||||
| TestThrow.java:130:10:130:24 | new Exception(...) | TestThrow.java:130:4:130:25 | throw ... |
|
||||
| TestThrow.java:133:3:133:8 | ...=... | TestThrow.java:15:14:15:14 | Exit |
|
||||
| TestThrow.java:133:3:133:8 | ...=... | TestThrow.java:15:14:15:14 | Normal Exit |
|
||||
| TestThrow.java:133:3:133:9 | <Expr>; | TestThrow.java:133:8:133:8 | 1 |
|
||||
| TestThrow.java:133:7:133:8 | -... | TestThrow.java:133:3:133:8 | ...=... |
|
||||
| TestThrow.java:133:8:133:8 | 1 | TestThrow.java:133:7:133:8 | -... |
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
| TestThrow2.java:3:7:3:16 | <Expr>; | TestThrow2.java:3:7:3:16 | <obinit>(...) |
|
||||
| TestThrow2.java:3:7:3:16 | <obinit>(...) | TestThrow2.java:3:7:3:16 | Exit |
|
||||
| TestThrow2.java:3:7:3:16 | <obinit>(...) | TestThrow2.java:3:7:3:16 | Normal Exit |
|
||||
| TestThrow2.java:3:7:3:16 | Exceptional Exit | TestThrow2.java:3:7:3:16 | Exit |
|
||||
| TestThrow2.java:3:7:3:16 | Exceptional Exit | TestThrow2.java:3:7:3:16 | Exit |
|
||||
| TestThrow2.java:3:7:3:16 | Normal Exit | TestThrow2.java:3:7:3:16 | Exit |
|
||||
| TestThrow2.java:3:7:3:16 | Normal Exit | TestThrow2.java:3:7:3:16 | Exit |
|
||||
| TestThrow2.java:3:7:3:16 | super(...) | TestThrow2.java:3:7:3:16 | <Expr>; |
|
||||
| TestThrow2.java:3:7:3:16 | { ... } | TestThrow2.java:3:7:3:16 | super(...) |
|
||||
| TestThrow2.java:3:7:3:16 | { ... } | TestThrow2.java:5:2:11:2 | { ... } |
|
||||
| TestThrow2.java:5:2:11:2 | { ... } | TestThrow2.java:6:3:10:3 | try ... |
|
||||
| TestThrow2.java:6:3:10:3 | try ... | TestThrow2.java:6:7:8:3 | { ... } |
|
||||
| TestThrow2.java:6:7:8:3 | { ... } | TestThrow2.java:7:4:7:13 | <Expr>; |
|
||||
| TestThrow2.java:7:4:7:12 | thrower(...) | TestThrow2.java:3:7:3:16 | Exit |
|
||||
| TestThrow2.java:7:4:7:12 | thrower(...) | TestThrow2.java:3:7:3:16 | Normal Exit |
|
||||
| TestThrow2.java:7:4:7:12 | thrower(...) | TestThrow2.java:8:5:8:23 | catch (...) |
|
||||
| TestThrow2.java:7:4:7:13 | <Expr>; | TestThrow2.java:7:4:7:12 | thrower(...) |
|
||||
| TestThrow2.java:8:5:8:23 | catch (...) | TestThrow2.java:8:22:8:22 | e |
|
||||
| TestThrow2.java:8:22:8:22 | e | TestThrow2.java:8:25:10:3 | { ... } |
|
||||
| TestThrow2.java:8:25:10:3 | { ... } | TestThrow2.java:9:4:9:4 | ; |
|
||||
| TestThrow2.java:9:4:9:4 | ; | TestThrow2.java:3:7:3:16 | Exit |
|
||||
| TestThrow2.java:9:4:9:4 | ; | TestThrow2.java:3:7:3:16 | Normal Exit |
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| TestTryCatch.java:3:14:3:25 | super(...) | TestTryCatch.java:3:14:3:25 | Exit |
|
||||
| TestTryCatch.java:3:14:3:25 | Exceptional Exit | TestTryCatch.java:3:14:3:25 | Exit |
|
||||
| TestTryCatch.java:3:14:3:25 | Normal Exit | TestTryCatch.java:3:14:3:25 | Exit |
|
||||
| TestTryCatch.java:3:14:3:25 | super(...) | TestTryCatch.java:3:14:3:25 | Normal Exit |
|
||||
| TestTryCatch.java:3:14:3:25 | { ... } | TestTryCatch.java:3:14:3:25 | super(...) |
|
||||
| TestTryCatch.java:4:14:4:14 | Exceptional Exit | TestTryCatch.java:4:14:4:14 | Exit |
|
||||
| TestTryCatch.java:4:14:4:14 | Normal Exit | TestTryCatch.java:4:14:4:14 | Exit |
|
||||
| TestTryCatch.java:5:2:43:2 | { ... } | TestTryCatch.java:6:3:23:3 | try ... |
|
||||
| TestTryCatch.java:6:3:23:3 | try ... | TestTryCatch.java:7:3:12:3 | { ... } |
|
||||
| TestTryCatch.java:7:3:12:3 | { ... } | TestTryCatch.java:8:4:8:29 | <Expr>; |
|
||||
@@ -51,7 +55,8 @@
|
||||
| TestTryCatch.java:21:4:21:32 | println(...) | TestTryCatch.java:22:4:22:13 | <Expr>; |
|
||||
| TestTryCatch.java:21:4:21:33 | <Expr>; | TestTryCatch.java:21:4:21:13 | System.out |
|
||||
| TestTryCatch.java:21:23:21:31 | "Finally" | TestTryCatch.java:21:4:21:32 | println(...) |
|
||||
| TestTryCatch.java:22:4:22:12 | ...=... | TestTryCatch.java:4:14:4:14 | Exit |
|
||||
| TestTryCatch.java:22:4:22:12 | ...=... | TestTryCatch.java:4:14:4:14 | Exceptional Exit |
|
||||
| TestTryCatch.java:22:4:22:12 | ...=... | TestTryCatch.java:4:14:4:14 | Normal Exit |
|
||||
| TestTryCatch.java:22:4:22:12 | ...=... | TestTryCatch.java:24:3:24:13 | var ...; |
|
||||
| TestTryCatch.java:22:4:22:13 | <Expr>; | TestTryCatch.java:22:8:22:8 | y |
|
||||
| TestTryCatch.java:22:8:22:8 | y | TestTryCatch.java:22:12:22:12 | 1 |
|
||||
@@ -114,7 +119,7 @@
|
||||
| TestTryCatch.java:39:9:39:9 | x | TestTryCatch.java:39:13:39:13 | 1 |
|
||||
| TestTryCatch.java:39:9:39:13 | ... + ... | TestTryCatch.java:39:5:39:13 | ...=... |
|
||||
| TestTryCatch.java:39:13:39:13 | 1 | TestTryCatch.java:39:9:39:13 | ... + ... |
|
||||
| TestTryCatch.java:42:3:42:11 | ...=... | TestTryCatch.java:4:14:4:14 | Exit |
|
||||
| TestTryCatch.java:42:3:42:11 | ...=... | TestTryCatch.java:4:14:4:14 | Normal Exit |
|
||||
| TestTryCatch.java:42:3:42:12 | <Expr>; | TestTryCatch.java:42:7:42:7 | z |
|
||||
| TestTryCatch.java:42:7:42:7 | z | TestTryCatch.java:42:11:42:11 | 2 |
|
||||
| TestTryCatch.java:42:7:42:11 | ... + ... | TestTryCatch.java:42:3:42:11 | ...=... |
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| TestTryWithResources.java:6:14:6:33 | super(...) | TestTryWithResources.java:6:14:6:33 | Exit |
|
||||
| TestTryWithResources.java:6:14:6:33 | Exceptional Exit | TestTryWithResources.java:6:14:6:33 | Exit |
|
||||
| TestTryWithResources.java:6:14:6:33 | Normal Exit | TestTryWithResources.java:6:14:6:33 | Exit |
|
||||
| TestTryWithResources.java:6:14:6:33 | super(...) | TestTryWithResources.java:6:14:6:33 | Normal Exit |
|
||||
| TestTryWithResources.java:6:14:6:33 | { ... } | TestTryWithResources.java:6:14:6:33 | super(...) |
|
||||
| TestTryWithResources.java:7:21:7:24 | Exceptional Exit | TestTryWithResources.java:7:21:7:24 | Exit |
|
||||
| TestTryWithResources.java:7:21:7:24 | Normal Exit | TestTryWithResources.java:7:21:7:24 | Exit |
|
||||
| TestTryWithResources.java:7:60:16:2 | { ... } | TestTryWithResources.java:8:3:15:3 | try ... |
|
||||
| TestTryWithResources.java:8:3:15:3 | try ... | TestTryWithResources.java:8:8:8:58 | var ...; |
|
||||
| TestTryWithResources.java:8:8:8:58 | var ...; | TestTryWithResources.java:8:50:8:53 | args |
|
||||
@@ -32,6 +36,7 @@
|
||||
| TestTryWithResources.java:12:23:12:38 | "file not found" | TestTryWithResources.java:12:4:12:39 | println(...) |
|
||||
| TestTryWithResources.java:13:13:15:3 | { ... } | TestTryWithResources.java:14:4:14:33 | <Expr>; |
|
||||
| TestTryWithResources.java:14:4:14:13 | System.out | TestTryWithResources.java:14:23:14:31 | "finally" |
|
||||
| TestTryWithResources.java:14:4:14:32 | println(...) | TestTryWithResources.java:7:21:7:24 | Exit |
|
||||
| TestTryWithResources.java:14:4:14:32 | println(...) | TestTryWithResources.java:7:21:7:24 | Exceptional Exit |
|
||||
| TestTryWithResources.java:14:4:14:32 | println(...) | TestTryWithResources.java:7:21:7:24 | Normal Exit |
|
||||
| TestTryWithResources.java:14:4:14:33 | <Expr>; | TestTryWithResources.java:14:4:14:13 | System.out |
|
||||
| TestTryWithResources.java:14:23:14:31 | "finally" | TestTryWithResources.java:14:4:14:32 | println(...) |
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
| unreachableblocks/Unreachable.java:3:14:3:24 | Exceptional Exit |
|
||||
| unreachableblocks/Unreachable.java:3:14:3:24 | Exceptional Exit |
|
||||
| unreachableblocks/Unreachable.java:5:14:5:19 | Exceptional Exit |
|
||||
| unreachableblocks/Unreachable.java:6:14:8:3 | { ... } |
|
||||
| unreachableblocks/Unreachable.java:9:21:11:3 | { ... } |
|
||||
| unreachableblocks/Unreachable.java:12:22:14:3 | { ... } |
|
||||
@@ -6,3 +9,4 @@
|
||||
| unreachableblocks/Unreachable.java:24:3:24:9 | case ... |
|
||||
| unreachableblocks/Unreachable.java:26:3:26:10 | case ... |
|
||||
| unreachableblocks/Unreachable.java:27:3:27:10 | default |
|
||||
| unreachableblocks/Unreachable.java:32:18:32:28 | Exceptional Exit |
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
| Test.java:14:17:14:31 | <Label>: ... | Possibly erroneous non-case label in switch statement. The case keyword might be missing. |
|
||||
| Test.java:17:17:17:39 | <Label>: ... | Confusing non-case label in switch statement. |
|
||||
@@ -0,0 +1,2 @@
|
||||
query: Language Abuse/LabelInSwitch.ql
|
||||
postprocess: utils/test/InlineExpectationsTestQuery.ql
|
||||
21
java/ql/test/query-tests/LabelInSwitch/Test.java
Normal file
21
java/ql/test/query-tests/LabelInSwitch/Test.java
Normal file
@@ -0,0 +1,21 @@
|
||||
public class Test {
|
||||
void test_case_label_only_in_switch(int p) {
|
||||
switch (p) {
|
||||
case 1:
|
||||
case 2:
|
||||
break;
|
||||
}
|
||||
notcaselabelnotinswitch: for (;;) {}
|
||||
}
|
||||
|
||||
void test_noncase_label_in_switch(int p) {
|
||||
switch (p) {
|
||||
case 1:
|
||||
notcaselabel1:; // $ Alert | Possibly erroneous non-case label in switch statement. The case keyword might be missing.
|
||||
break;
|
||||
case 2:
|
||||
notcaselabel2: for (;;) { break notcaselabel2; } // $ Alert | Confusing non-case label in switch statement.
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
package unsafedeserialization;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.Socket;
|
||||
import java.beans.XMLDecoder;
|
||||
import com.example.MyObjectInput;
|
||||
import com.thoughtworks.xstream.XStream;
|
||||
import com.esotericsoftware.kryo.Kryo;
|
||||
import com.esotericsoftware.kryo.io.Input;
|
||||
@@ -10,13 +13,23 @@ import org.yaml.snakeyaml.Yaml;
|
||||
import org.nibblesec.tools.SerialKiller;
|
||||
|
||||
public class A {
|
||||
public Object deserialize1(Socket sock) throws java.io.IOException, ClassNotFoundException {
|
||||
public Object deserialize1a(Socket sock) throws java.io.IOException, ClassNotFoundException {
|
||||
InputStream inputStream = sock.getInputStream(); // $ Source
|
||||
ObjectInputStream in = new ObjectInputStream(inputStream);
|
||||
return in.readObject(); // $ Alert
|
||||
}
|
||||
|
||||
public Object deserialize2(Socket sock) throws java.io.IOException, ClassNotFoundException {
|
||||
public Object deserialize2() throws java.io.IOException, ClassNotFoundException {
|
||||
ObjectInput objectInput = A.getTaintedObjectInput(); // $ Source
|
||||
return objectInput.readObject(); // $ Alert
|
||||
}
|
||||
|
||||
public Object deserialize3() throws java.io.IOException, ClassNotFoundException {
|
||||
MyObjectInput objectInput = A.getTaintedMyObjectInput(); // $ Source
|
||||
return objectInput.readObject(); // $ Alert
|
||||
}
|
||||
|
||||
public Object deserialize4(Socket sock) throws java.io.IOException, ClassNotFoundException {
|
||||
InputStream inputStream = sock.getInputStream(); // $ Source
|
||||
ObjectInputStream in = new ObjectInputStream(inputStream);
|
||||
return in.readUnshared(); // $ Alert
|
||||
@@ -28,20 +41,20 @@ public class A {
|
||||
return in.readUnshared(); // OK
|
||||
}
|
||||
|
||||
public Object deserialize3(Socket sock) throws java.io.IOException {
|
||||
public Object deserialize5(Socket sock) throws java.io.IOException {
|
||||
InputStream inputStream = sock.getInputStream(); // $ Source
|
||||
XMLDecoder d = new XMLDecoder(inputStream);
|
||||
return d.readObject(); // $ Alert
|
||||
}
|
||||
|
||||
public Object deserialize4(Socket sock) throws java.io.IOException {
|
||||
public Object deserialize6(Socket sock) throws java.io.IOException {
|
||||
XStream xs = new XStream();
|
||||
InputStream inputStream = sock.getInputStream(); // $ Source
|
||||
Reader reader = new InputStreamReader(inputStream);
|
||||
return xs.fromXML(reader); // $ Alert
|
||||
}
|
||||
|
||||
public void deserialize5(Socket sock) throws java.io.IOException {
|
||||
public void deserialize7(Socket sock) throws java.io.IOException {
|
||||
Kryo kryo = new Kryo();
|
||||
Input input = new Input(sock.getInputStream()); // $ Source
|
||||
A a1 = kryo.readObject(input, A.class); // $ Alert
|
||||
@@ -56,7 +69,7 @@ public class A {
|
||||
return kryo;
|
||||
}
|
||||
|
||||
public void deserialize6(Socket sock) throws java.io.IOException {
|
||||
public void deserialize8(Socket sock) throws java.io.IOException {
|
||||
Kryo kryo = getSafeKryo();
|
||||
Input input = new Input(sock.getInputStream());
|
||||
Object o = kryo.readClassAndObject(input); // OK
|
||||
@@ -101,4 +114,8 @@ public class A {
|
||||
A o4 = yaml.loadAs(input, A.class); // $ Alert
|
||||
A o5 = yaml.loadAs(new InputStreamReader(input), A.class); // $ Alert
|
||||
}
|
||||
|
||||
static ObjectInput getTaintedObjectInput() { return null; }
|
||||
|
||||
static MyObjectInput getTaintedMyObjectInput() { return null; }
|
||||
}
|
||||
|
||||
@@ -1,26 +1,28 @@
|
||||
#select
|
||||
| A.java:16:12:16:26 | readObject(...) | A.java:14:31:14:51 | getInputStream(...) : InputStream | A.java:16:12:16:13 | in | Unsafe deserialization depends on a $@. | A.java:14:31:14:51 | getInputStream(...) | user-provided value |
|
||||
| A.java:22:12:22:28 | readUnshared(...) | A.java:20:31:20:51 | getInputStream(...) : InputStream | A.java:22:12:22:13 | in | Unsafe deserialization depends on a $@. | A.java:20:31:20:51 | getInputStream(...) | user-provided value |
|
||||
| A.java:34:12:34:25 | readObject(...) | A.java:32:31:32:51 | getInputStream(...) : InputStream | A.java:34:12:34:12 | d | Unsafe deserialization depends on a $@. | A.java:32:31:32:51 | getInputStream(...) | user-provided value |
|
||||
| A.java:41:12:41:29 | fromXML(...) | A.java:39:31:39:51 | getInputStream(...) : InputStream | A.java:41:23:41:28 | reader | Unsafe deserialization depends on a $@. | A.java:39:31:39:51 | getInputStream(...) | user-provided value |
|
||||
| A.java:47:12:47:42 | readObject(...) | A.java:46:29:46:49 | getInputStream(...) : InputStream | A.java:47:28:47:32 | input | Unsafe deserialization depends on a $@. | A.java:46:29:46:49 | getInputStream(...) | user-provided value |
|
||||
| A.java:48:12:48:48 | readObjectOrNull(...) | A.java:46:29:46:49 | getInputStream(...) : InputStream | A.java:48:34:48:38 | input | Unsafe deserialization depends on a $@. | A.java:46:29:46:49 | getInputStream(...) | user-provided value |
|
||||
| A.java:49:16:49:45 | readClassAndObject(...) | A.java:46:29:46:49 | getInputStream(...) : InputStream | A.java:49:40:49:44 | input | Unsafe deserialization depends on a $@. | A.java:46:29:46:49 | getInputStream(...) | user-provided value |
|
||||
| A.java:68:16:68:31 | load(...) | A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:68:26:68:30 | input | Unsafe deserialization depends on a $@. | A.java:67:25:67:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:69:17:69:35 | loadAll(...) | A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:69:30:69:34 | input | Unsafe deserialization depends on a $@. | A.java:67:25:67:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:70:17:70:56 | parse(...) | A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:70:28:70:55 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:67:25:67:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:71:12:71:38 | loadAs(...) | A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:71:24:71:28 | input | Unsafe deserialization depends on a $@. | A.java:67:25:67:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:72:12:72:61 | loadAs(...) | A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:72:24:72:51 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:67:25:67:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:78:16:78:31 | load(...) | A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:78:26:78:30 | input | Unsafe deserialization depends on a $@. | A.java:77:25:77:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:79:17:79:35 | loadAll(...) | A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:79:30:79:34 | input | Unsafe deserialization depends on a $@. | A.java:77:25:77:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:80:17:80:56 | parse(...) | A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:80:28:80:55 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:77:25:77:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:81:12:81:38 | loadAs(...) | A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:81:24:81:28 | input | Unsafe deserialization depends on a $@. | A.java:77:25:77:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:82:12:82:61 | loadAs(...) | A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:82:24:82:51 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:77:25:77:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:98:16:98:31 | load(...) | A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:98:26:98:30 | input | Unsafe deserialization depends on a $@. | A.java:97:25:97:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:99:17:99:35 | loadAll(...) | A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:99:30:99:34 | input | Unsafe deserialization depends on a $@. | A.java:97:25:97:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:100:17:100:56 | parse(...) | A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:100:28:100:55 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:97:25:97:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:101:12:101:38 | loadAs(...) | A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:101:24:101:28 | input | Unsafe deserialization depends on a $@. | A.java:97:25:97:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:102:12:102:61 | loadAs(...) | A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:102:24:102:51 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:97:25:97:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:19:12:19:26 | readObject(...) | A.java:17:31:17:51 | getInputStream(...) : InputStream | A.java:19:12:19:13 | in | Unsafe deserialization depends on a $@. | A.java:17:31:17:51 | getInputStream(...) | user-provided value |
|
||||
| A.java:24:12:24:35 | readObject(...) | A.java:23:31:23:55 | getTaintedObjectInput(...) : ObjectInput | A.java:24:12:24:22 | objectInput | Unsafe deserialization depends on a $@. | A.java:23:31:23:55 | getTaintedObjectInput(...) | user-provided value |
|
||||
| A.java:29:12:29:35 | readObject(...) | A.java:28:33:28:59 | getTaintedMyObjectInput(...) : MyObjectInput | A.java:29:12:29:22 | objectInput | Unsafe deserialization depends on a $@. | A.java:28:33:28:59 | getTaintedMyObjectInput(...) | user-provided value |
|
||||
| A.java:35:12:35:28 | readUnshared(...) | A.java:33:31:33:51 | getInputStream(...) : InputStream | A.java:35:12:35:13 | in | Unsafe deserialization depends on a $@. | A.java:33:31:33:51 | getInputStream(...) | user-provided value |
|
||||
| A.java:47:12:47:25 | readObject(...) | A.java:45:31:45:51 | getInputStream(...) : InputStream | A.java:47:12:47:12 | d | Unsafe deserialization depends on a $@. | A.java:45:31:45:51 | getInputStream(...) | user-provided value |
|
||||
| A.java:54:12:54:29 | fromXML(...) | A.java:52:31:52:51 | getInputStream(...) : InputStream | A.java:54:23:54:28 | reader | Unsafe deserialization depends on a $@. | A.java:52:31:52:51 | getInputStream(...) | user-provided value |
|
||||
| A.java:60:12:60:42 | readObject(...) | A.java:59:29:59:49 | getInputStream(...) : InputStream | A.java:60:28:60:32 | input | Unsafe deserialization depends on a $@. | A.java:59:29:59:49 | getInputStream(...) | user-provided value |
|
||||
| A.java:61:12:61:48 | readObjectOrNull(...) | A.java:59:29:59:49 | getInputStream(...) : InputStream | A.java:61:34:61:38 | input | Unsafe deserialization depends on a $@. | A.java:59:29:59:49 | getInputStream(...) | user-provided value |
|
||||
| A.java:62:16:62:45 | readClassAndObject(...) | A.java:59:29:59:49 | getInputStream(...) : InputStream | A.java:62:40:62:44 | input | Unsafe deserialization depends on a $@. | A.java:59:29:59:49 | getInputStream(...) | user-provided value |
|
||||
| A.java:81:16:81:31 | load(...) | A.java:80:25:80:45 | getInputStream(...) : InputStream | A.java:81:26:81:30 | input | Unsafe deserialization depends on a $@. | A.java:80:25:80:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:82:17:82:35 | loadAll(...) | A.java:80:25:80:45 | getInputStream(...) : InputStream | A.java:82:30:82:34 | input | Unsafe deserialization depends on a $@. | A.java:80:25:80:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:83:17:83:56 | parse(...) | A.java:80:25:80:45 | getInputStream(...) : InputStream | A.java:83:28:83:55 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:80:25:80:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:84:12:84:38 | loadAs(...) | A.java:80:25:80:45 | getInputStream(...) : InputStream | A.java:84:24:84:28 | input | Unsafe deserialization depends on a $@. | A.java:80:25:80:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:85:12:85:61 | loadAs(...) | A.java:80:25:80:45 | getInputStream(...) : InputStream | A.java:85:24:85:51 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:80:25:80:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:91:16:91:31 | load(...) | A.java:90:25:90:45 | getInputStream(...) : InputStream | A.java:91:26:91:30 | input | Unsafe deserialization depends on a $@. | A.java:90:25:90:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:92:17:92:35 | loadAll(...) | A.java:90:25:90:45 | getInputStream(...) : InputStream | A.java:92:30:92:34 | input | Unsafe deserialization depends on a $@. | A.java:90:25:90:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:93:17:93:56 | parse(...) | A.java:90:25:90:45 | getInputStream(...) : InputStream | A.java:93:28:93:55 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:90:25:90:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:94:12:94:38 | loadAs(...) | A.java:90:25:90:45 | getInputStream(...) : InputStream | A.java:94:24:94:28 | input | Unsafe deserialization depends on a $@. | A.java:90:25:90:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:95:12:95:61 | loadAs(...) | A.java:90:25:90:45 | getInputStream(...) : InputStream | A.java:95:24:95:51 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:90:25:90:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:111:16:111:31 | load(...) | A.java:110:25:110:45 | getInputStream(...) : InputStream | A.java:111:26:111:30 | input | Unsafe deserialization depends on a $@. | A.java:110:25:110:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:112:17:112:35 | loadAll(...) | A.java:110:25:110:45 | getInputStream(...) : InputStream | A.java:112:30:112:34 | input | Unsafe deserialization depends on a $@. | A.java:110:25:110:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:113:17:113:56 | parse(...) | A.java:110:25:110:45 | getInputStream(...) : InputStream | A.java:113:28:113:55 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:110:25:110:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:114:12:114:38 | loadAs(...) | A.java:110:25:110:45 | getInputStream(...) : InputStream | A.java:114:24:114:28 | input | Unsafe deserialization depends on a $@. | A.java:110:25:110:45 | getInputStream(...) | user-provided value |
|
||||
| A.java:115:12:115:61 | loadAs(...) | A.java:110:25:110:45 | getInputStream(...) : InputStream | A.java:115:24:115:51 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:110:25:110:45 | getInputStream(...) | user-provided value |
|
||||
| B.java:8:12:8:46 | parseObject(...) | B.java:7:31:7:51 | getInputStream(...) : InputStream | B.java:8:29:8:39 | inputStream | Unsafe deserialization depends on a $@. | B.java:7:31:7:51 | getInputStream(...) | user-provided value |
|
||||
| B.java:15:12:15:28 | parse(...) | B.java:12:31:12:51 | getInputStream(...) : InputStream | B.java:15:23:15:27 | bytes | Unsafe deserialization depends on a $@. | B.java:12:31:12:51 | getInputStream(...) | user-provided value |
|
||||
| B.java:23:12:23:30 | parseObject(...) | B.java:19:31:19:51 | getInputStream(...) : InputStream | B.java:23:29:23:29 | s | Unsafe deserialization depends on a $@. | B.java:19:31:19:51 | getInputStream(...) | user-provided value |
|
||||
@@ -72,117 +74,121 @@
|
||||
| ParcelableEntity.java:32:30:32:70 | fromJson(...) | GsonActivity.java:15:54:15:64 | getIntent(...) : Intent | ParcelableEntity.java:32:44:32:62 | readString(...) | Unsafe deserialization depends on a $@. | GsonActivity.java:15:54:15:64 | getIntent(...) | user-provided value |
|
||||
| TestMessageBodyReader.java:22:18:22:65 | readObject(...) | TestMessageBodyReader.java:20:55:20:78 | entityStream : InputStream | TestMessageBodyReader.java:22:18:22:52 | new ObjectInputStream(...) | Unsafe deserialization depends on a $@. | TestMessageBodyReader.java:20:55:20:78 | entityStream | user-provided value |
|
||||
edges
|
||||
| A.java:14:31:14:51 | getInputStream(...) : InputStream | A.java:15:50:15:60 | inputStream : InputStream | provenance | Src:MaD:1 |
|
||||
| A.java:14:31:14:51 | getInputStream(...) : InputStream | A.java:16:12:16:13 | in | provenance | Src:MaD:1 inputStreamWrapper |
|
||||
| A.java:15:28:15:61 | new ObjectInputStream(...) : ObjectInputStream | A.java:16:12:16:13 | in | provenance | |
|
||||
| A.java:15:50:15:60 | inputStream : InputStream | A.java:15:28:15:61 | new ObjectInputStream(...) : ObjectInputStream | provenance | MaD:11 |
|
||||
| A.java:20:31:20:51 | getInputStream(...) : InputStream | A.java:21:50:21:60 | inputStream : InputStream | provenance | Src:MaD:1 |
|
||||
| A.java:20:31:20:51 | getInputStream(...) : InputStream | A.java:22:12:22:13 | in | provenance | Src:MaD:1 inputStreamWrapper |
|
||||
| A.java:21:28:21:61 | new ObjectInputStream(...) : ObjectInputStream | A.java:22:12:22:13 | in | provenance | |
|
||||
| A.java:21:50:21:60 | inputStream : InputStream | A.java:21:28:21:61 | new ObjectInputStream(...) : ObjectInputStream | provenance | MaD:11 |
|
||||
| A.java:32:31:32:51 | getInputStream(...) : InputStream | A.java:33:35:33:45 | inputStream : InputStream | provenance | Src:MaD:1 |
|
||||
| A.java:33:20:33:46 | new XMLDecoder(...) : XMLDecoder | A.java:34:12:34:12 | d | provenance | |
|
||||
| A.java:33:35:33:45 | inputStream : InputStream | A.java:33:20:33:46 | new XMLDecoder(...) : XMLDecoder | provenance | MaD:7 |
|
||||
| A.java:39:31:39:51 | getInputStream(...) : InputStream | A.java:40:43:40:53 | inputStream : InputStream | provenance | Src:MaD:1 |
|
||||
| A.java:40:21:40:54 | new InputStreamReader(...) : InputStreamReader | A.java:41:23:41:28 | reader | provenance | |
|
||||
| A.java:40:43:40:53 | inputStream : InputStream | A.java:40:21:40:54 | new InputStreamReader(...) : InputStreamReader | provenance | MaD:10 |
|
||||
| A.java:46:19:46:50 | new Input(...) : Input | A.java:47:28:47:32 | input | provenance | |
|
||||
| A.java:46:19:46:50 | new Input(...) : Input | A.java:48:34:48:38 | input | provenance | |
|
||||
| A.java:46:19:46:50 | new Input(...) : Input | A.java:49:40:49:44 | input | provenance | |
|
||||
| A.java:46:29:46:49 | getInputStream(...) : InputStream | A.java:46:19:46:50 | new Input(...) : Input | provenance | Src:MaD:1 MaD:5 |
|
||||
| A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:68:26:68:30 | input | provenance | Src:MaD:1 |
|
||||
| A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:69:30:69:34 | input | provenance | Src:MaD:1 |
|
||||
| A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:70:50:70:54 | input : InputStream | provenance | Src:MaD:1 |
|
||||
| A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:71:24:71:28 | input | provenance | Src:MaD:1 |
|
||||
| A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:72:46:72:50 | input : InputStream | provenance | Src:MaD:1 |
|
||||
| A.java:70:50:70:54 | input : InputStream | A.java:70:28:70:55 | new InputStreamReader(...) | provenance | MaD:10 |
|
||||
| A.java:72:46:72:50 | input : InputStream | A.java:72:24:72:51 | new InputStreamReader(...) | provenance | MaD:10 |
|
||||
| A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:78:26:78:30 | input | provenance | Src:MaD:1 |
|
||||
| A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:79:30:79:34 | input | provenance | Src:MaD:1 |
|
||||
| A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:80:50:80:54 | input : InputStream | provenance | Src:MaD:1 |
|
||||
| A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:81:24:81:28 | input | provenance | Src:MaD:1 |
|
||||
| A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:82:46:82:50 | input : InputStream | provenance | Src:MaD:1 |
|
||||
| A.java:80:50:80:54 | input : InputStream | A.java:80:28:80:55 | new InputStreamReader(...) | provenance | MaD:10 |
|
||||
| A.java:82:46:82:50 | input : InputStream | A.java:82:24:82:51 | new InputStreamReader(...) | provenance | MaD:10 |
|
||||
| A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:98:26:98:30 | input | provenance | Src:MaD:1 |
|
||||
| A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:99:30:99:34 | input | provenance | Src:MaD:1 |
|
||||
| A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:100:50:100:54 | input : InputStream | provenance | Src:MaD:1 |
|
||||
| A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:101:24:101:28 | input | provenance | Src:MaD:1 |
|
||||
| A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:102:46:102:50 | input : InputStream | provenance | Src:MaD:1 |
|
||||
| A.java:100:50:100:54 | input : InputStream | A.java:100:28:100:55 | new InputStreamReader(...) | provenance | MaD:10 |
|
||||
| A.java:102:46:102:50 | input : InputStream | A.java:102:24:102:51 | new InputStreamReader(...) | provenance | MaD:10 |
|
||||
| B.java:7:31:7:51 | getInputStream(...) : InputStream | B.java:8:29:8:39 | inputStream | provenance | Src:MaD:1 |
|
||||
| B.java:12:31:12:51 | getInputStream(...) : InputStream | B.java:14:5:14:15 | inputStream : InputStream | provenance | Src:MaD:1 |
|
||||
| B.java:14:5:14:15 | inputStream : InputStream | B.java:14:22:14:26 | bytes [post update] : byte[] | provenance | MaD:9 |
|
||||
| A.java:17:31:17:51 | getInputStream(...) : InputStream | A.java:18:50:18:60 | inputStream : InputStream | provenance | Src:MaD:17 |
|
||||
| A.java:17:31:17:51 | getInputStream(...) : InputStream | A.java:19:12:19:13 | in | provenance | Src:MaD:17 inputStreamWrapper |
|
||||
| A.java:18:28:18:61 | new ObjectInputStream(...) : ObjectInputStream | A.java:19:12:19:13 | in | provenance | |
|
||||
| A.java:18:50:18:60 | inputStream : InputStream | A.java:18:28:18:61 | new ObjectInputStream(...) : ObjectInputStream | provenance | MaD:29 |
|
||||
| A.java:23:31:23:55 | getTaintedObjectInput(...) : ObjectInput | A.java:24:12:24:22 | objectInput | provenance | Src:MaD:21 |
|
||||
| A.java:28:33:28:59 | getTaintedMyObjectInput(...) : MyObjectInput | A.java:29:12:29:22 | objectInput | provenance | Src:MaD:20 |
|
||||
| A.java:33:31:33:51 | getInputStream(...) : InputStream | A.java:34:50:34:60 | inputStream : InputStream | provenance | Src:MaD:17 |
|
||||
| A.java:33:31:33:51 | getInputStream(...) : InputStream | A.java:35:12:35:13 | in | provenance | Src:MaD:17 inputStreamWrapper |
|
||||
| A.java:34:28:34:61 | new ObjectInputStream(...) : ObjectInputStream | A.java:35:12:35:13 | in | provenance | |
|
||||
| A.java:34:50:34:60 | inputStream : InputStream | A.java:34:28:34:61 | new ObjectInputStream(...) : ObjectInputStream | provenance | MaD:29 |
|
||||
| A.java:45:31:45:51 | getInputStream(...) : InputStream | A.java:46:35:46:45 | inputStream : InputStream | provenance | Src:MaD:17 |
|
||||
| A.java:46:20:46:46 | new XMLDecoder(...) : XMLDecoder | A.java:47:12:47:12 | d | provenance | Sink:MaD:6 |
|
||||
| A.java:46:35:46:45 | inputStream : InputStream | A.java:46:20:46:46 | new XMLDecoder(...) : XMLDecoder | provenance | MaD:25 |
|
||||
| A.java:52:31:52:51 | getInputStream(...) : InputStream | A.java:53:43:53:53 | inputStream : InputStream | provenance | Src:MaD:17 |
|
||||
| A.java:53:21:53:54 | new InputStreamReader(...) : InputStreamReader | A.java:54:23:54:28 | reader | provenance | |
|
||||
| A.java:53:43:53:53 | inputStream : InputStream | A.java:53:21:53:54 | new InputStreamReader(...) : InputStreamReader | provenance | MaD:28 |
|
||||
| A.java:59:19:59:50 | new Input(...) : Input | A.java:60:28:60:32 | input | provenance | |
|
||||
| A.java:59:19:59:50 | new Input(...) : Input | A.java:61:34:61:38 | input | provenance | |
|
||||
| A.java:59:19:59:50 | new Input(...) : Input | A.java:62:40:62:44 | input | provenance | |
|
||||
| A.java:59:29:59:49 | getInputStream(...) : InputStream | A.java:59:19:59:50 | new Input(...) : Input | provenance | Src:MaD:17 MaD:23 |
|
||||
| A.java:80:25:80:45 | getInputStream(...) : InputStream | A.java:81:26:81:30 | input | provenance | Src:MaD:17 |
|
||||
| A.java:80:25:80:45 | getInputStream(...) : InputStream | A.java:82:30:82:34 | input | provenance | Src:MaD:17 |
|
||||
| A.java:80:25:80:45 | getInputStream(...) : InputStream | A.java:83:50:83:54 | input : InputStream | provenance | Src:MaD:17 |
|
||||
| A.java:80:25:80:45 | getInputStream(...) : InputStream | A.java:84:24:84:28 | input | provenance | Src:MaD:17 |
|
||||
| A.java:80:25:80:45 | getInputStream(...) : InputStream | A.java:85:46:85:50 | input : InputStream | provenance | Src:MaD:17 |
|
||||
| A.java:83:50:83:54 | input : InputStream | A.java:83:28:83:55 | new InputStreamReader(...) | provenance | MaD:28 |
|
||||
| A.java:85:46:85:50 | input : InputStream | A.java:85:24:85:51 | new InputStreamReader(...) | provenance | MaD:28 |
|
||||
| A.java:90:25:90:45 | getInputStream(...) : InputStream | A.java:91:26:91:30 | input | provenance | Src:MaD:17 |
|
||||
| A.java:90:25:90:45 | getInputStream(...) : InputStream | A.java:92:30:92:34 | input | provenance | Src:MaD:17 |
|
||||
| A.java:90:25:90:45 | getInputStream(...) : InputStream | A.java:93:50:93:54 | input : InputStream | provenance | Src:MaD:17 |
|
||||
| A.java:90:25:90:45 | getInputStream(...) : InputStream | A.java:94:24:94:28 | input | provenance | Src:MaD:17 |
|
||||
| A.java:90:25:90:45 | getInputStream(...) : InputStream | A.java:95:46:95:50 | input : InputStream | provenance | Src:MaD:17 |
|
||||
| A.java:93:50:93:54 | input : InputStream | A.java:93:28:93:55 | new InputStreamReader(...) | provenance | MaD:28 |
|
||||
| A.java:95:46:95:50 | input : InputStream | A.java:95:24:95:51 | new InputStreamReader(...) | provenance | MaD:28 |
|
||||
| A.java:110:25:110:45 | getInputStream(...) : InputStream | A.java:111:26:111:30 | input | provenance | Src:MaD:17 |
|
||||
| A.java:110:25:110:45 | getInputStream(...) : InputStream | A.java:112:30:112:34 | input | provenance | Src:MaD:17 |
|
||||
| A.java:110:25:110:45 | getInputStream(...) : InputStream | A.java:113:50:113:54 | input : InputStream | provenance | Src:MaD:17 |
|
||||
| A.java:110:25:110:45 | getInputStream(...) : InputStream | A.java:114:24:114:28 | input | provenance | Src:MaD:17 |
|
||||
| A.java:110:25:110:45 | getInputStream(...) : InputStream | A.java:115:46:115:50 | input : InputStream | provenance | Src:MaD:17 |
|
||||
| A.java:113:50:113:54 | input : InputStream | A.java:113:28:113:55 | new InputStreamReader(...) | provenance | MaD:28 |
|
||||
| A.java:115:46:115:50 | input : InputStream | A.java:115:24:115:51 | new InputStreamReader(...) | provenance | MaD:28 |
|
||||
| B.java:7:31:7:51 | getInputStream(...) : InputStream | B.java:8:29:8:39 | inputStream | provenance | Src:MaD:17 |
|
||||
| B.java:12:31:12:51 | getInputStream(...) : InputStream | B.java:14:5:14:15 | inputStream : InputStream | provenance | Src:MaD:17 |
|
||||
| B.java:14:5:14:15 | inputStream : InputStream | B.java:14:22:14:26 | bytes [post update] : byte[] | provenance | MaD:27 |
|
||||
| B.java:14:22:14:26 | bytes [post update] : byte[] | B.java:15:23:15:27 | bytes | provenance | |
|
||||
| B.java:19:31:19:51 | getInputStream(...) : InputStream | B.java:21:5:21:15 | inputStream : InputStream | provenance | Src:MaD:1 |
|
||||
| B.java:21:5:21:15 | inputStream : InputStream | B.java:21:22:21:26 | bytes [post update] : byte[] | provenance | MaD:9 |
|
||||
| B.java:19:31:19:51 | getInputStream(...) : InputStream | B.java:21:5:21:15 | inputStream : InputStream | provenance | Src:MaD:17 |
|
||||
| B.java:21:5:21:15 | inputStream : InputStream | B.java:21:22:21:26 | bytes [post update] : byte[] | provenance | MaD:27 |
|
||||
| B.java:21:22:21:26 | bytes [post update] : byte[] | B.java:22:27:22:31 | bytes : byte[] | provenance | |
|
||||
| B.java:22:16:22:32 | new String(...) : String | B.java:23:29:23:29 | s | provenance | |
|
||||
| B.java:22:27:22:31 | bytes : byte[] | B.java:22:16:22:32 | new String(...) : String | provenance | MaD:13 |
|
||||
| B.java:27:31:27:51 | getInputStream(...) : InputStream | B.java:29:5:29:15 | inputStream : InputStream | provenance | Src:MaD:1 |
|
||||
| B.java:29:5:29:15 | inputStream : InputStream | B.java:29:22:29:26 | bytes [post update] : byte[] | provenance | MaD:9 |
|
||||
| B.java:22:27:22:31 | bytes : byte[] | B.java:22:16:22:32 | new String(...) : String | provenance | MaD:31 |
|
||||
| B.java:27:31:27:51 | getInputStream(...) : InputStream | B.java:29:5:29:15 | inputStream : InputStream | provenance | Src:MaD:17 |
|
||||
| B.java:29:5:29:15 | inputStream : InputStream | B.java:29:22:29:26 | bytes [post update] : byte[] | provenance | MaD:27 |
|
||||
| B.java:29:22:29:26 | bytes [post update] : byte[] | B.java:30:27:30:31 | bytes : byte[] | provenance | |
|
||||
| B.java:30:16:30:32 | new String(...) : String | B.java:31:23:31:23 | s | provenance | |
|
||||
| B.java:30:27:30:31 | bytes : byte[] | B.java:30:16:30:32 | new String(...) : String | provenance | MaD:13 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:24:13:24:16 | data | provenance | Src:MaD:3 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:25:19:25:22 | data | provenance | Src:MaD:3 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:26:25:26:28 | data | provenance | Src:MaD:3 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:27:17:27:20 | data | provenance | Src:MaD:3 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:30:19:30:22 | data | provenance | Src:MaD:3 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:31:25:31:28 | data | provenance | Src:MaD:3 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:32:31:32:34 | data | provenance | Src:MaD:3 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:33:23:33:26 | data | provenance | Src:MaD:3 |
|
||||
| C.java:38:17:38:44 | getParameter(...) : String | C.java:43:25:43:28 | data | provenance | Src:MaD:3 |
|
||||
| C.java:38:17:38:44 | getParameter(...) : String | C.java:45:34:45:37 | data : String | provenance | Src:MaD:3 |
|
||||
| C.java:45:19:45:44 | new JsonReader(...) : JsonReader | C.java:46:3:46:4 | jr | provenance | |
|
||||
| B.java:30:27:30:31 | bytes : byte[] | B.java:30:16:30:32 | new String(...) : String | provenance | MaD:31 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:24:13:24:16 | data | provenance | Src:MaD:19 Sink:MaD:8 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:25:19:25:22 | data | provenance | Src:MaD:19 Sink:MaD:9 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:26:25:26:28 | data | provenance | Src:MaD:19 Sink:MaD:10 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:27:17:27:20 | data | provenance | Src:MaD:19 Sink:MaD:11 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:30:19:30:22 | data | provenance | Src:MaD:19 Sink:MaD:12 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:31:25:31:28 | data | provenance | Src:MaD:19 Sink:MaD:13 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:32:31:32:34 | data | provenance | Src:MaD:19 Sink:MaD:14 |
|
||||
| C.java:23:17:23:44 | getParameter(...) : String | C.java:33:23:33:26 | data | provenance | Src:MaD:19 Sink:MaD:15 |
|
||||
| C.java:38:17:38:44 | getParameter(...) : String | C.java:43:25:43:28 | data | provenance | Src:MaD:19 Sink:MaD:3 |
|
||||
| C.java:38:17:38:44 | getParameter(...) : String | C.java:45:34:45:37 | data : String | provenance | Src:MaD:19 |
|
||||
| C.java:45:19:45:44 | new JsonReader(...) : JsonReader | C.java:46:3:46:4 | jr | provenance | Sink:MaD:4 |
|
||||
| C.java:45:34:45:37 | data : String | C.java:45:19:45:44 | new JsonReader(...) : JsonReader | provenance | Config |
|
||||
| C.java:51:17:51:44 | getParameter(...) : String | C.java:52:33:52:36 | data : String | provenance | Src:MaD:3 |
|
||||
| C.java:52:18:52:37 | new YamlReader(...) : YamlReader | C.java:53:3:53:3 | r | provenance | |
|
||||
| C.java:52:18:52:37 | new YamlReader(...) : YamlReader | C.java:54:3:54:3 | r | provenance | |
|
||||
| C.java:52:18:52:37 | new YamlReader(...) : YamlReader | C.java:55:3:55:3 | r | provenance | |
|
||||
| C.java:51:17:51:44 | getParameter(...) : String | C.java:52:33:52:36 | data : String | provenance | Src:MaD:19 |
|
||||
| C.java:52:18:52:37 | new YamlReader(...) : YamlReader | C.java:53:3:53:3 | r | provenance | Sink:MaD:5 |
|
||||
| C.java:52:18:52:37 | new YamlReader(...) : YamlReader | C.java:54:3:54:3 | r | provenance | Sink:MaD:5 |
|
||||
| C.java:52:18:52:37 | new YamlReader(...) : YamlReader | C.java:55:3:55:3 | r | provenance | Sink:MaD:5 |
|
||||
| C.java:52:33:52:36 | data : String | C.java:52:18:52:37 | new YamlReader(...) : YamlReader | provenance | Config |
|
||||
| C.java:60:18:60:45 | getParameter(...) : String | C.java:60:18:60:56 | getBytes(...) : byte[] | provenance | Src:MaD:3 MaD:14 |
|
||||
| C.java:60:18:60:45 | getParameter(...) : String | C.java:60:18:60:56 | getBytes(...) : byte[] | provenance | Src:MaD:19 MaD:32 |
|
||||
| C.java:60:18:60:56 | getBytes(...) : byte[] | C.java:61:55:61:59 | bytes : byte[] | provenance | |
|
||||
| C.java:60:18:60:56 | getBytes(...) : byte[] | C.java:62:48:62:50 | bis : ByteArrayInputStream | provenance | inputStreamWrapper |
|
||||
| C.java:61:30:61:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | C.java:62:48:62:50 | bis : ByteArrayInputStream | provenance | |
|
||||
| C.java:61:55:61:59 | bytes : byte[] | C.java:61:30:61:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | provenance | MaD:8 |
|
||||
| C.java:62:31:62:51 | new HessianInput(...) : HessianInput | C.java:63:3:63:14 | hessianInput | provenance | |
|
||||
| C.java:62:31:62:51 | new HessianInput(...) : HessianInput | C.java:64:3:64:14 | hessianInput | provenance | |
|
||||
| C.java:61:55:61:59 | bytes : byte[] | C.java:61:30:61:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | provenance | MaD:26 |
|
||||
| C.java:62:31:62:51 | new HessianInput(...) : HessianInput | C.java:63:3:63:14 | hessianInput | provenance | Sink:MaD:2 |
|
||||
| C.java:62:31:62:51 | new HessianInput(...) : HessianInput | C.java:64:3:64:14 | hessianInput | provenance | Sink:MaD:2 |
|
||||
| C.java:62:48:62:50 | bis : ByteArrayInputStream | C.java:62:31:62:51 | new HessianInput(...) : HessianInput | provenance | Config |
|
||||
| C.java:69:18:69:45 | getParameter(...) : String | C.java:69:18:69:56 | getBytes(...) : byte[] | provenance | Src:MaD:3 MaD:14 |
|
||||
| C.java:69:18:69:45 | getParameter(...) : String | C.java:69:18:69:56 | getBytes(...) : byte[] | provenance | Src:MaD:19 MaD:32 |
|
||||
| C.java:69:18:69:56 | getBytes(...) : byte[] | C.java:70:55:70:59 | bytes : byte[] | provenance | |
|
||||
| C.java:69:18:69:56 | getBytes(...) : byte[] | C.java:71:50:71:52 | bis : ByteArrayInputStream | provenance | inputStreamWrapper |
|
||||
| C.java:70:30:70:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | C.java:71:50:71:52 | bis : ByteArrayInputStream | provenance | |
|
||||
| C.java:70:55:70:59 | bytes : byte[] | C.java:70:30:70:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | provenance | MaD:8 |
|
||||
| C.java:71:32:71:53 | new Hessian2Input(...) : Hessian2Input | C.java:72:3:72:14 | hessianInput | provenance | |
|
||||
| C.java:71:32:71:53 | new Hessian2Input(...) : Hessian2Input | C.java:73:3:73:14 | hessianInput | provenance | |
|
||||
| C.java:70:55:70:59 | bytes : byte[] | C.java:70:30:70:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | provenance | MaD:26 |
|
||||
| C.java:71:32:71:53 | new Hessian2Input(...) : Hessian2Input | C.java:72:3:72:14 | hessianInput | provenance | Sink:MaD:2 |
|
||||
| C.java:71:32:71:53 | new Hessian2Input(...) : Hessian2Input | C.java:73:3:73:14 | hessianInput | provenance | Sink:MaD:2 |
|
||||
| C.java:71:50:71:52 | bis : ByteArrayInputStream | C.java:71:32:71:53 | new Hessian2Input(...) : Hessian2Input | provenance | Config |
|
||||
| C.java:79:43:79:70 | getParameter(...) : String | C.java:79:26:79:71 | new StringReader(...) | provenance | Src:MaD:3 MaD:12 |
|
||||
| C.java:84:27:84:54 | getParameter(...) : String | C.java:84:27:84:65 | getBytes(...) : byte[] | provenance | Src:MaD:3 MaD:14 |
|
||||
| C.java:79:43:79:70 | getParameter(...) : String | C.java:79:26:79:71 | new StringReader(...) | provenance | Src:MaD:19 MaD:30 Sink:MaD:7 |
|
||||
| C.java:84:27:84:54 | getParameter(...) : String | C.java:84:27:84:65 | getBytes(...) : byte[] | provenance | Src:MaD:19 MaD:32 |
|
||||
| C.java:84:27:84:65 | getBytes(...) : byte[] | C.java:85:54:85:67 | serializedData : byte[] | provenance | |
|
||||
| C.java:84:27:84:65 | getBytes(...) : byte[] | C.java:86:45:86:46 | is : ByteArrayInputStream | provenance | inputStreamWrapper |
|
||||
| C.java:85:29:85:68 | new ByteArrayInputStream(...) : ByteArrayInputStream | C.java:86:45:86:46 | is : ByteArrayInputStream | provenance | |
|
||||
| C.java:85:54:85:67 | serializedData : byte[] | C.java:85:29:85:68 | new ByteArrayInputStream(...) : ByteArrayInputStream | provenance | MaD:8 |
|
||||
| C.java:86:29:86:47 | new BurlapInput(...) : BurlapInput | C.java:87:3:87:13 | burlapInput | provenance | |
|
||||
| C.java:85:54:85:67 | serializedData : byte[] | C.java:85:29:85:68 | new ByteArrayInputStream(...) : ByteArrayInputStream | provenance | MaD:26 |
|
||||
| C.java:86:29:86:47 | new BurlapInput(...) : BurlapInput | C.java:87:3:87:13 | burlapInput | provenance | Sink:MaD:1 |
|
||||
| C.java:86:29:86:47 | new BurlapInput(...) : BurlapInput | C.java:87:3:87:13 | burlapInput | provenance | Sink:MaD:2 |
|
||||
| C.java:86:45:86:46 | is : ByteArrayInputStream | C.java:86:29:86:47 | new BurlapInput(...) : BurlapInput | provenance | Config |
|
||||
| C.java:86:45:86:46 | is : ByteArrayInputStream | C.java:90:21:90:22 | is : ByteArrayInputStream | provenance | |
|
||||
| C.java:90:3:90:14 | burlapInput1 : BurlapInput | C.java:91:3:91:14 | burlapInput1 | provenance | |
|
||||
| C.java:90:3:90:14 | burlapInput1 : BurlapInput | C.java:91:3:91:14 | burlapInput1 | provenance | Sink:MaD:1 |
|
||||
| C.java:90:3:90:14 | burlapInput1 : BurlapInput | C.java:91:3:91:14 | burlapInput1 | provenance | Sink:MaD:2 |
|
||||
| C.java:90:21:90:22 | is : ByteArrayInputStream | C.java:90:3:90:14 | burlapInput1 : BurlapInput | provenance | Config |
|
||||
| FlexjsonServlet.java:67:23:67:46 | getParameter(...) : String | FlexjsonServlet.java:68:127:68:130 | json | provenance | Src:MaD:3 |
|
||||
| FlexjsonServlet.java:79:23:79:46 | getParameter(...) : String | FlexjsonServlet.java:80:93:80:96 | json | provenance | Src:MaD:3 |
|
||||
| FlexjsonServlet.java:119:23:119:46 | getParameter(...) : String | FlexjsonServlet.java:124:50:124:53 | json | provenance | Src:MaD:3 |
|
||||
| FlexjsonServlet.java:67:23:67:46 | getParameter(...) : String | FlexjsonServlet.java:68:127:68:130 | json | provenance | Src:MaD:19 |
|
||||
| FlexjsonServlet.java:79:23:79:46 | getParameter(...) : String | FlexjsonServlet.java:80:93:80:96 | json | provenance | Src:MaD:19 |
|
||||
| FlexjsonServlet.java:119:23:119:46 | getParameter(...) : String | FlexjsonServlet.java:124:50:124:53 | json | provenance | Src:MaD:19 |
|
||||
| GsonActivity.java:15:54:15:64 | getIntent(...) : Intent | ParcelableEntity.java:29:50:29:62 | parcel : Parcel | provenance | Config |
|
||||
| GsonServlet.java:39:23:39:46 | getParameter(...) : String | GsonServlet.java:44:40:44:43 | json | provenance | Src:MaD:3 |
|
||||
| GsonServlet.java:53:23:53:46 | getParameter(...) : String | GsonServlet.java:60:40:60:43 | json | provenance | Src:MaD:3 |
|
||||
| JabsorbServlet.java:89:23:89:46 | getParameter(...) : String | JabsorbServlet.java:93:48:93:51 | json : String | provenance | Src:MaD:3 |
|
||||
| GsonServlet.java:39:23:39:46 | getParameter(...) : String | GsonServlet.java:44:40:44:43 | json | provenance | Src:MaD:19 |
|
||||
| GsonServlet.java:53:23:53:46 | getParameter(...) : String | GsonServlet.java:60:40:60:43 | json | provenance | Src:MaD:19 |
|
||||
| JabsorbServlet.java:89:23:89:46 | getParameter(...) : String | JabsorbServlet.java:93:48:93:51 | json : String | provenance | Src:MaD:19 |
|
||||
| JabsorbServlet.java:93:33:93:52 | new JSONObject(...) : JSONObject | JabsorbServlet.java:102:83:102:92 | jsonObject | provenance | |
|
||||
| JabsorbServlet.java:93:48:93:51 | json : String | JabsorbServlet.java:93:33:93:52 | new JSONObject(...) : JSONObject | provenance | MaD:16 |
|
||||
| JabsorbServlet.java:110:23:110:46 | getParameter(...) : String | JabsorbServlet.java:116:52:116:55 | json | provenance | Src:MaD:3 |
|
||||
| JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | JacksonTest.java:20:54:20:58 | bytes [post update] : byte[] | provenance | Src:MaD:1 MaD:9 |
|
||||
| JabsorbServlet.java:93:48:93:51 | json : String | JabsorbServlet.java:93:33:93:52 | new JSONObject(...) : JSONObject | provenance | MaD:34 |
|
||||
| JabsorbServlet.java:110:23:110:46 | getParameter(...) : String | JabsorbServlet.java:116:52:116:55 | json | provenance | Src:MaD:19 Sink:MaD:16 |
|
||||
| JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | JacksonTest.java:20:54:20:58 | bytes [post update] : byte[] | provenance | Src:MaD:17 MaD:27 |
|
||||
| JacksonTest.java:20:54:20:58 | bytes [post update] : byte[] | JacksonTest.java:21:46:21:50 | bytes : byte[] | provenance | |
|
||||
| JacksonTest.java:21:35:21:57 | new String(...) : String | JacksonTest.java:22:28:22:35 | jexlExpr : String | provenance | |
|
||||
| JacksonTest.java:21:46:21:50 | bytes : byte[] | JacksonTest.java:21:35:21:57 | new String(...) : String | provenance | MaD:13 |
|
||||
| JacksonTest.java:21:46:21:50 | bytes : byte[] | JacksonTest.java:21:35:21:57 | new String(...) : String | provenance | MaD:31 |
|
||||
| JacksonTest.java:22:28:22:35 | jexlExpr : String | JacksonTest.java:74:32:74:37 | string : String | provenance | |
|
||||
| JacksonTest.java:22:28:22:35 | jexlExpr : String | JacksonTest.java:83:32:83:37 | string : String | provenance | |
|
||||
| JacksonTest.java:22:28:22:35 | jexlExpr : String | JacksonTest.java:92:32:92:37 | string : String | provenance | |
|
||||
@@ -197,89 +203,111 @@ edges
|
||||
| JacksonTest.java:139:32:139:37 | string : String | JacksonTest.java:142:30:142:35 | string | provenance | |
|
||||
| JacksonTest.java:148:32:148:37 | string : String | JacksonTest.java:151:62:151:67 | string : String | provenance | |
|
||||
| JacksonTest.java:151:62:151:67 | string : String | JacksonTest.java:151:31:151:68 | createParser(...) | provenance | Config |
|
||||
| JacksonTest.java:151:62:151:67 | string : String | JacksonTest.java:151:31:151:68 | createParser(...) | provenance | MaD:6 |
|
||||
| JacksonTest.java:151:62:151:67 | string : String | JacksonTest.java:151:31:151:68 | createParser(...) | provenance | MaD:24 |
|
||||
| JacksonTest.java:157:32:157:37 | string : String | JacksonTest.java:160:48:160:53 | string : String | provenance | |
|
||||
| JacksonTest.java:160:48:160:53 | string : String | JacksonTest.java:160:32:160:54 | readTree(...) | provenance | Config |
|
||||
| JacksonTest.java:166:32:166:36 | input : String | JacksonTest.java:167:30:167:34 | input : String | provenance | |
|
||||
| JacksonTest.java:167:30:167:34 | input : String | JacksonTest.java:167:30:167:45 | split(...) : String[] | provenance | MaD:15 |
|
||||
| JacksonTest.java:167:30:167:34 | input : String | JacksonTest.java:167:30:167:45 | split(...) : String[] | provenance | MaD:33 |
|
||||
| JacksonTest.java:167:30:167:45 | split(...) : String[] | JacksonTest.java:172:30:172:33 | data | provenance | |
|
||||
| JacksonTest.java:178:32:178:36 | input : String | JacksonTest.java:179:30:179:34 | input : String | provenance | |
|
||||
| JacksonTest.java:179:30:179:34 | input : String | JacksonTest.java:179:30:179:45 | split(...) : String[] | provenance | MaD:15 |
|
||||
| JacksonTest.java:179:30:179:34 | input : String | JacksonTest.java:179:30:179:45 | split(...) : String[] | provenance | MaD:33 |
|
||||
| JacksonTest.java:179:30:179:45 | split(...) : String[] | JacksonTest.java:183:30:183:33 | data | provenance | |
|
||||
| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:45:37:45:40 | json | provenance | Src:MaD:3 |
|
||||
| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:47:56:47:59 | json | provenance | Src:MaD:3 |
|
||||
| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:49:67:49:70 | json | provenance | Src:MaD:3 |
|
||||
| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:51:61:51:64 | json | provenance | Src:MaD:3 |
|
||||
| JoddJsonServlet.java:58:23:58:46 | getParameter(...) : String | JoddJsonServlet.java:63:39:63:42 | json | provenance | Src:MaD:3 |
|
||||
| ObjectMessageTest.java:6:27:6:41 | message : Message | ObjectMessageTest.java:7:26:7:32 | message | provenance | Src:MaD:2 |
|
||||
| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:45:37:45:40 | json | provenance | Src:MaD:19 |
|
||||
| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:47:56:47:59 | json | provenance | Src:MaD:19 |
|
||||
| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:49:67:49:70 | json | provenance | Src:MaD:19 |
|
||||
| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:51:61:51:64 | json | provenance | Src:MaD:19 |
|
||||
| JoddJsonServlet.java:58:23:58:46 | getParameter(...) : String | JoddJsonServlet.java:63:39:63:42 | json | provenance | Src:MaD:19 |
|
||||
| ObjectMessageTest.java:6:27:6:41 | message : Message | ObjectMessageTest.java:7:26:7:32 | message | provenance | Src:MaD:18 |
|
||||
| ParcelableEntity.java:29:50:29:62 | parcel : Parcel | ParcelableEntity.java:32:44:32:49 | parcel : Parcel | provenance | |
|
||||
| ParcelableEntity.java:32:44:32:49 | parcel : Parcel | ParcelableEntity.java:32:44:32:62 | readString(...) | provenance | MaD:4 |
|
||||
| ParcelableEntity.java:32:44:32:49 | parcel : Parcel | ParcelableEntity.java:32:44:32:62 | readString(...) | provenance | MaD:22 |
|
||||
| TestMessageBodyReader.java:20:55:20:78 | entityStream : InputStream | TestMessageBodyReader.java:22:18:22:52 | new ObjectInputStream(...) | provenance | inputStreamWrapper |
|
||||
| TestMessageBodyReader.java:20:55:20:78 | entityStream : InputStream | TestMessageBodyReader.java:22:40:22:51 | entityStream : InputStream | provenance | |
|
||||
| TestMessageBodyReader.java:22:40:22:51 | entityStream : InputStream | TestMessageBodyReader.java:22:18:22:52 | new ObjectInputStream(...) | provenance | MaD:11 |
|
||||
| TestMessageBodyReader.java:22:40:22:51 | entityStream : InputStream | TestMessageBodyReader.java:22:18:22:52 | new ObjectInputStream(...) | provenance | MaD:29 |
|
||||
models
|
||||
| 1 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 2 | Source: javax.jms; MessageListener; true; onMessage; (Message); ; Parameter[0]; remote; manual |
|
||||
| 3 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual |
|
||||
| 4 | Summary: android.os; Parcel; false; readString; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 5 | Summary: com.esotericsoftware.kryo.io; Input; false; Input; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 6 | Summary: com.fasterxml.jackson.core; JsonFactory; false; createParser; ; ; Argument[0]; ReturnValue; taint; manual |
|
||||
| 7 | Summary: java.beans; XMLDecoder; false; XMLDecoder; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 8 | Summary: java.io; ByteArrayInputStream; false; ByteArrayInputStream; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 9 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 10 | Summary: java.io; InputStreamReader; false; InputStreamReader; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 11 | Summary: java.io; ObjectInputStream; false; ObjectInputStream; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 12 | Summary: java.io; StringReader; false; StringReader; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 13 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 14 | Summary: java.lang; String; false; getBytes; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 15 | Summary: java.lang; String; false; split; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 16 | Summary: org.json; JSONObject; false; JSONObject; (String); ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 1 | Sink: com.caucho.burlap.io; BurlapInput; true; readObject; ; ; Argument[this]; unsafe-deserialization; manual |
|
||||
| 2 | Sink: com.caucho.hessian.io; AbstractHessianInput; true; readObject; ; ; Argument[this]; unsafe-deserialization; manual |
|
||||
| 3 | Sink: com.cedarsoftware.util.io; JsonReader; false; jsonToJava; ; ; Argument[0]; unsafe-deserialization; manual |
|
||||
| 4 | Sink: com.cedarsoftware.util.io; JsonReader; true; readObject; ; ; Argument[this]; unsafe-deserialization; manual |
|
||||
| 5 | Sink: com.esotericsoftware.yamlbeans; YamlReader; true; read; ; ; Argument[this]; unsafe-deserialization; manual |
|
||||
| 6 | Sink: java.beans; XMLDecoder; true; readObject; (); ; Argument[this]; unsafe-deserialization; manual |
|
||||
| 7 | Sink: org.exolab.castor.xml; Unmarshaller; true; unmarshal; ; ; Argument[0..1]; unsafe-deserialization; manual |
|
||||
| 8 | Sink: org.ho.yaml; Yaml; false; load; ; ; Argument[0]; unsafe-deserialization; manual |
|
||||
| 9 | Sink: org.ho.yaml; Yaml; false; loadStream; ; ; Argument[0]; unsafe-deserialization; manual |
|
||||
| 10 | Sink: org.ho.yaml; Yaml; false; loadStreamOfType; ; ; Argument[0]; unsafe-deserialization; manual |
|
||||
| 11 | Sink: org.ho.yaml; Yaml; false; loadType; ; ; Argument[0]; unsafe-deserialization; manual |
|
||||
| 12 | Sink: org.ho.yaml; YamlConfig; false; load; ; ; Argument[0]; unsafe-deserialization; manual |
|
||||
| 13 | Sink: org.ho.yaml; YamlConfig; false; loadStream; ; ; Argument[0]; unsafe-deserialization; manual |
|
||||
| 14 | Sink: org.ho.yaml; YamlConfig; false; loadStreamOfType; ; ; Argument[0]; unsafe-deserialization; manual |
|
||||
| 15 | Sink: org.ho.yaml; YamlConfig; false; loadType; ; ; Argument[0]; unsafe-deserialization; manual |
|
||||
| 16 | Sink: org.jabsorb; JSONSerializer; true; fromJSON; ; ; Argument[0]; unsafe-deserialization; manual |
|
||||
| 17 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 18 | Source: javax.jms; MessageListener; true; onMessage; (Message); ; Parameter[0]; remote; manual |
|
||||
| 19 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual |
|
||||
| 20 | Source: unsafedeserialization; A; false; getTaintedMyObjectInput; (); ; ReturnValue; remote; manual |
|
||||
| 21 | Source: unsafedeserialization; A; false; getTaintedObjectInput; (); ; ReturnValue; remote; manual |
|
||||
| 22 | Summary: android.os; Parcel; false; readString; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 23 | Summary: com.esotericsoftware.kryo.io; Input; false; Input; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 24 | Summary: com.fasterxml.jackson.core; JsonFactory; false; createParser; ; ; Argument[0]; ReturnValue; taint; manual |
|
||||
| 25 | Summary: java.beans; XMLDecoder; false; XMLDecoder; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 26 | Summary: java.io; ByteArrayInputStream; false; ByteArrayInputStream; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 27 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 28 | Summary: java.io; InputStreamReader; false; InputStreamReader; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 29 | Summary: java.io; ObjectInputStream; false; ObjectInputStream; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 30 | Summary: java.io; StringReader; false; StringReader; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 31 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 32 | Summary: java.lang; String; false; getBytes; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 33 | Summary: java.lang; String; false; split; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 34 | Summary: org.json; JSONObject; false; JSONObject; (String); ; Argument[0]; Argument[this]; taint; manual |
|
||||
nodes
|
||||
| A.java:14:31:14:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:15:28:15:61 | new ObjectInputStream(...) : ObjectInputStream | semmle.label | new ObjectInputStream(...) : ObjectInputStream |
|
||||
| A.java:15:50:15:60 | inputStream : InputStream | semmle.label | inputStream : InputStream |
|
||||
| A.java:16:12:16:13 | in | semmle.label | in |
|
||||
| A.java:20:31:20:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:21:28:21:61 | new ObjectInputStream(...) : ObjectInputStream | semmle.label | new ObjectInputStream(...) : ObjectInputStream |
|
||||
| A.java:21:50:21:60 | inputStream : InputStream | semmle.label | inputStream : InputStream |
|
||||
| A.java:22:12:22:13 | in | semmle.label | in |
|
||||
| A.java:32:31:32:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:33:20:33:46 | new XMLDecoder(...) : XMLDecoder | semmle.label | new XMLDecoder(...) : XMLDecoder |
|
||||
| A.java:33:35:33:45 | inputStream : InputStream | semmle.label | inputStream : InputStream |
|
||||
| A.java:34:12:34:12 | d | semmle.label | d |
|
||||
| A.java:39:31:39:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:40:21:40:54 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader |
|
||||
| A.java:40:43:40:53 | inputStream : InputStream | semmle.label | inputStream : InputStream |
|
||||
| A.java:41:23:41:28 | reader | semmle.label | reader |
|
||||
| A.java:46:19:46:50 | new Input(...) : Input | semmle.label | new Input(...) : Input |
|
||||
| A.java:46:29:46:49 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:47:28:47:32 | input | semmle.label | input |
|
||||
| A.java:48:34:48:38 | input | semmle.label | input |
|
||||
| A.java:49:40:49:44 | input | semmle.label | input |
|
||||
| A.java:67:25:67:45 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:68:26:68:30 | input | semmle.label | input |
|
||||
| A.java:69:30:69:34 | input | semmle.label | input |
|
||||
| A.java:70:28:70:55 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:70:50:70:54 | input : InputStream | semmle.label | input : InputStream |
|
||||
| A.java:71:24:71:28 | input | semmle.label | input |
|
||||
| A.java:72:24:72:51 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:72:46:72:50 | input : InputStream | semmle.label | input : InputStream |
|
||||
| A.java:77:25:77:45 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:78:26:78:30 | input | semmle.label | input |
|
||||
| A.java:79:30:79:34 | input | semmle.label | input |
|
||||
| A.java:80:28:80:55 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:80:50:80:54 | input : InputStream | semmle.label | input : InputStream |
|
||||
| A.java:81:24:81:28 | input | semmle.label | input |
|
||||
| A.java:82:24:82:51 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:82:46:82:50 | input : InputStream | semmle.label | input : InputStream |
|
||||
| A.java:97:25:97:45 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:98:26:98:30 | input | semmle.label | input |
|
||||
| A.java:99:30:99:34 | input | semmle.label | input |
|
||||
| A.java:100:28:100:55 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:100:50:100:54 | input : InputStream | semmle.label | input : InputStream |
|
||||
| A.java:101:24:101:28 | input | semmle.label | input |
|
||||
| A.java:102:24:102:51 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:102:46:102:50 | input : InputStream | semmle.label | input : InputStream |
|
||||
| A.java:17:31:17:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:18:28:18:61 | new ObjectInputStream(...) : ObjectInputStream | semmle.label | new ObjectInputStream(...) : ObjectInputStream |
|
||||
| A.java:18:50:18:60 | inputStream : InputStream | semmle.label | inputStream : InputStream |
|
||||
| A.java:19:12:19:13 | in | semmle.label | in |
|
||||
| A.java:23:31:23:55 | getTaintedObjectInput(...) : ObjectInput | semmle.label | getTaintedObjectInput(...) : ObjectInput |
|
||||
| A.java:24:12:24:22 | objectInput | semmle.label | objectInput |
|
||||
| A.java:28:33:28:59 | getTaintedMyObjectInput(...) : MyObjectInput | semmle.label | getTaintedMyObjectInput(...) : MyObjectInput |
|
||||
| A.java:29:12:29:22 | objectInput | semmle.label | objectInput |
|
||||
| A.java:33:31:33:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:34:28:34:61 | new ObjectInputStream(...) : ObjectInputStream | semmle.label | new ObjectInputStream(...) : ObjectInputStream |
|
||||
| A.java:34:50:34:60 | inputStream : InputStream | semmle.label | inputStream : InputStream |
|
||||
| A.java:35:12:35:13 | in | semmle.label | in |
|
||||
| A.java:45:31:45:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:46:20:46:46 | new XMLDecoder(...) : XMLDecoder | semmle.label | new XMLDecoder(...) : XMLDecoder |
|
||||
| A.java:46:35:46:45 | inputStream : InputStream | semmle.label | inputStream : InputStream |
|
||||
| A.java:47:12:47:12 | d | semmle.label | d |
|
||||
| A.java:52:31:52:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:53:21:53:54 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader |
|
||||
| A.java:53:43:53:53 | inputStream : InputStream | semmle.label | inputStream : InputStream |
|
||||
| A.java:54:23:54:28 | reader | semmle.label | reader |
|
||||
| A.java:59:19:59:50 | new Input(...) : Input | semmle.label | new Input(...) : Input |
|
||||
| A.java:59:29:59:49 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:60:28:60:32 | input | semmle.label | input |
|
||||
| A.java:61:34:61:38 | input | semmle.label | input |
|
||||
| A.java:62:40:62:44 | input | semmle.label | input |
|
||||
| A.java:80:25:80:45 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:81:26:81:30 | input | semmle.label | input |
|
||||
| A.java:82:30:82:34 | input | semmle.label | input |
|
||||
| A.java:83:28:83:55 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:83:50:83:54 | input : InputStream | semmle.label | input : InputStream |
|
||||
| A.java:84:24:84:28 | input | semmle.label | input |
|
||||
| A.java:85:24:85:51 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:85:46:85:50 | input : InputStream | semmle.label | input : InputStream |
|
||||
| A.java:90:25:90:45 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:91:26:91:30 | input | semmle.label | input |
|
||||
| A.java:92:30:92:34 | input | semmle.label | input |
|
||||
| A.java:93:28:93:55 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:93:50:93:54 | input : InputStream | semmle.label | input : InputStream |
|
||||
| A.java:94:24:94:28 | input | semmle.label | input |
|
||||
| A.java:95:24:95:51 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:95:46:95:50 | input : InputStream | semmle.label | input : InputStream |
|
||||
| A.java:110:25:110:45 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| A.java:111:26:111:30 | input | semmle.label | input |
|
||||
| A.java:112:30:112:34 | input | semmle.label | input |
|
||||
| A.java:113:28:113:55 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:113:50:113:54 | input : InputStream | semmle.label | input : InputStream |
|
||||
| A.java:114:24:114:28 | input | semmle.label | input |
|
||||
| A.java:115:24:115:51 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) |
|
||||
| A.java:115:46:115:50 | input : InputStream | semmle.label | input : InputStream |
|
||||
| B.java:7:31:7:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| B.java:8:29:8:39 | inputStream | semmle.label | inputStream |
|
||||
| B.java:12:31:12:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/java-all
|
||||
extensible: sourceModel
|
||||
data:
|
||||
- ["unsafedeserialization", "A", False, "getTaintedObjectInput", "()", "", "ReturnValue", "remote", "manual"]
|
||||
- ["unsafedeserialization", "A", False, "getTaintedMyObjectInput", "()", "", "ReturnValue", "remote", "manual"]
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.example;
|
||||
import java.io.*;
|
||||
|
||||
public final class MyObjectInput implements ObjectInput {
|
||||
|
||||
@Override
|
||||
public Object readObject() throws ClassNotFoundException, IOException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int read() throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int read(byte[] b) throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int read(byte[] b, int off, int len) throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long skip(long n) throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int available() throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {}
|
||||
|
||||
@Override
|
||||
public void readFully(byte[] b) throws IOException {}
|
||||
|
||||
@Override
|
||||
public void readFully(byte[] b, int off, int len) throws IOException {}
|
||||
|
||||
@Override
|
||||
public int skipBytes(int n) throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean readBoolean() throws IOException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte readByte() throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int readUnsignedByte() throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public short readShort() throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int readUnsignedShort() throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public char readChar() throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int readInt() throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long readLong() throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float readFloat() throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double readDouble() throws IOException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readLine() throws IOException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readUTF() throws IOException {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -113,117 +113,118 @@
|
||||
| XmlInputFactoryTests.java:55:35:55:55 | getInputStream(...) | XmlInputFactoryTests.java:55:35:55:55 | getInputStream(...) | XmlInputFactoryTests.java:55:35:55:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:55:35:55:55 | getInputStream(...) | user-provided value |
|
||||
| XmlInputFactoryTests.java:56:34:56:54 | getInputStream(...) | XmlInputFactoryTests.java:56:34:56:54 | getInputStream(...) | XmlInputFactoryTests.java:56:34:56:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:56:34:56:54 | getInputStream(...) | user-provided value |
|
||||
edges
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:11:66:11:67 | is : InputStream | provenance | Src:MaD:1 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:12:22:12:23 | is | provenance | Src:MaD:1 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:14:22:14:23 | is | provenance | Src:MaD:1 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:15:22:15:23 | is | provenance | Src:MaD:1 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:16:34:16:35 | is | provenance | Src:MaD:1 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:20:24:20:25 | is | provenance | Src:MaD:1 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:21:24:21:25 | is | provenance | Src:MaD:1 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:11:66:11:67 | is : InputStream | provenance | Src:MaD:2 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:12:22:12:23 | is | provenance | Src:MaD:2 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:14:22:14:23 | is | provenance | Src:MaD:2 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:15:22:15:23 | is | provenance | Src:MaD:2 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:16:34:16:35 | is | provenance | Src:MaD:2 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:20:24:20:25 | is | provenance | Src:MaD:2 |
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:21:24:21:25 | is | provenance | Src:MaD:2 |
|
||||
| CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | CdaUtilTests.java:13:22:13:25 | iSrc | provenance | |
|
||||
| CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | CdaUtilTests.java:17:22:17:25 | iSrc | provenance | |
|
||||
| CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | CdaUtilTests.java:18:22:18:25 | iSrc | provenance | |
|
||||
| CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | CdaUtilTests.java:19:34:19:37 | iSrc | provenance | |
|
||||
| CdaUtilTests.java:11:44:11:68 | new InputStreamReader(...) : InputStreamReader | CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | provenance | MaD:13 |
|
||||
| CdaUtilTests.java:11:66:11:67 | is : InputStream | CdaUtilTests.java:11:44:11:68 | new InputStreamReader(...) : InputStreamReader | provenance | MaD:5 |
|
||||
| DigesterTests.java:14:49:14:72 | getInputStream(...) : ServletInputStream | DigesterTests.java:16:24:16:41 | servletInputStream | provenance | Src:MaD:2 |
|
||||
| CdaUtilTests.java:11:44:11:68 | new InputStreamReader(...) : InputStreamReader | CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | provenance | MaD:14 |
|
||||
| CdaUtilTests.java:11:66:11:67 | is : InputStream | CdaUtilTests.java:11:44:11:68 | new InputStreamReader(...) : InputStreamReader | provenance | MaD:6 |
|
||||
| DigesterTests.java:14:49:14:72 | getInputStream(...) : ServletInputStream | DigesterTests.java:16:24:16:41 | servletInputStream | provenance | Src:MaD:3 |
|
||||
| DocumentBuilderTests.java:95:24:95:76 | new SAXSource(...) : SAXSource | DocumentBuilderTests.java:96:19:96:24 | source : SAXSource | provenance | |
|
||||
| DocumentBuilderTests.java:95:38:95:75 | new InputSource(...) : InputSource | DocumentBuilderTests.java:95:24:95:76 | new SAXSource(...) : SAXSource | provenance | MaD:7 |
|
||||
| DocumentBuilderTests.java:95:54:95:74 | getInputStream(...) : InputStream | DocumentBuilderTests.java:95:38:95:75 | new InputSource(...) : InputSource | provenance | Src:MaD:1 MaD:13 |
|
||||
| DocumentBuilderTests.java:96:19:96:24 | source : SAXSource | DocumentBuilderTests.java:96:19:96:41 | getInputSource(...) | provenance | MaD:9 |
|
||||
| DocumentBuilderTests.java:95:38:95:75 | new InputSource(...) : InputSource | DocumentBuilderTests.java:95:24:95:76 | new SAXSource(...) : SAXSource | provenance | MaD:8 |
|
||||
| DocumentBuilderTests.java:95:54:95:74 | getInputStream(...) : InputStream | DocumentBuilderTests.java:95:38:95:75 | new InputSource(...) : InputSource | provenance | Src:MaD:2 MaD:14 |
|
||||
| DocumentBuilderTests.java:96:19:96:24 | source : SAXSource | DocumentBuilderTests.java:96:19:96:41 | getInputSource(...) | provenance | MaD:10 |
|
||||
| DocumentBuilderTests.java:102:27:102:65 | new StreamSource(...) : StreamSource | DocumentBuilderTests.java:103:49:103:54 | source : StreamSource | provenance | |
|
||||
| DocumentBuilderTests.java:102:27:102:65 | new StreamSource(...) : StreamSource | DocumentBuilderTests.java:104:19:104:24 | source : StreamSource | provenance | |
|
||||
| DocumentBuilderTests.java:102:44:102:64 | getInputStream(...) : InputStream | DocumentBuilderTests.java:102:27:102:65 | new StreamSource(...) : StreamSource | provenance | Src:MaD:1 MaD:11 |
|
||||
| DocumentBuilderTests.java:103:49:103:54 | source : StreamSource | DocumentBuilderTests.java:103:19:103:55 | sourceToInputSource(...) | provenance | MaD:10 |
|
||||
| DocumentBuilderTests.java:104:19:104:24 | source : StreamSource | DocumentBuilderTests.java:104:19:104:41 | getInputStream(...) | provenance | MaD:12 |
|
||||
| DocumentBuilderTests.java:102:44:102:64 | getInputStream(...) : InputStream | DocumentBuilderTests.java:102:27:102:65 | new StreamSource(...) : StreamSource | provenance | Src:MaD:2 MaD:12 |
|
||||
| DocumentBuilderTests.java:103:49:103:54 | source : StreamSource | DocumentBuilderTests.java:103:19:103:55 | sourceToInputSource(...) | provenance | MaD:11 |
|
||||
| DocumentBuilderTests.java:104:19:104:24 | source : StreamSource | DocumentBuilderTests.java:104:19:104:41 | getInputStream(...) | provenance | MaD:13 |
|
||||
| SAXSourceTests.java:17:24:17:84 | new SAXSource(...) : SAXSource | SAXSourceTests.java:20:18:20:23 | source | provenance | |
|
||||
| SAXSourceTests.java:17:46:17:83 | new InputSource(...) : InputSource | SAXSourceTests.java:17:24:17:84 | new SAXSource(...) : SAXSource | provenance | MaD:8 |
|
||||
| SAXSourceTests.java:17:62:17:82 | getInputStream(...) : InputStream | SAXSourceTests.java:17:46:17:83 | new InputSource(...) : InputSource | provenance | Src:MaD:1 MaD:13 |
|
||||
| SchemaTests.java:12:56:12:76 | getInputStream(...) : InputStream | SchemaTests.java:12:39:12:77 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| SchemaTests.java:25:56:25:76 | getInputStream(...) : InputStream | SchemaTests.java:25:39:25:77 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| SchemaTests.java:31:56:31:76 | getInputStream(...) : InputStream | SchemaTests.java:31:39:31:77 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| SchemaTests.java:38:56:38:76 | getInputStream(...) : InputStream | SchemaTests.java:38:39:38:77 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| SchemaTests.java:45:56:45:76 | getInputStream(...) : InputStream | SchemaTests.java:45:39:45:77 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| SimpleXMLTests.java:24:63:24:83 | getInputStream(...) : InputStream | SimpleXMLTests.java:24:41:24:84 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 |
|
||||
| SimpleXMLTests.java:30:5:30:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:30:32:30:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 |
|
||||
| SAXSourceTests.java:17:46:17:83 | new InputSource(...) : InputSource | SAXSourceTests.java:17:24:17:84 | new SAXSource(...) : SAXSource | provenance | MaD:9 |
|
||||
| SAXSourceTests.java:17:62:17:82 | getInputStream(...) : InputStream | SAXSourceTests.java:17:46:17:83 | new InputSource(...) : InputSource | provenance | Src:MaD:2 MaD:14 |
|
||||
| SchemaTests.java:12:56:12:76 | getInputStream(...) : InputStream | SchemaTests.java:12:39:12:77 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| SchemaTests.java:25:56:25:76 | getInputStream(...) : InputStream | SchemaTests.java:25:39:25:77 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| SchemaTests.java:31:56:31:76 | getInputStream(...) : InputStream | SchemaTests.java:31:39:31:77 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| SchemaTests.java:38:56:38:76 | getInputStream(...) : InputStream | SchemaTests.java:38:39:38:77 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| SchemaTests.java:45:56:45:76 | getInputStream(...) : InputStream | SchemaTests.java:45:39:45:77 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| SimpleXMLTests.java:24:63:24:83 | getInputStream(...) : InputStream | SimpleXMLTests.java:24:41:24:84 | new InputStreamReader(...) | provenance | Src:MaD:2 MaD:6 |
|
||||
| SimpleXMLTests.java:30:5:30:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:30:32:30:32 | b [post update] : byte[] | provenance | Src:MaD:2 MaD:5 |
|
||||
| SimpleXMLTests.java:30:32:30:32 | b [post update] : byte[] | SimpleXMLTests.java:31:52:31:52 | b : byte[] | provenance | |
|
||||
| SimpleXMLTests.java:31:52:31:52 | b : byte[] | SimpleXMLTests.java:31:41:31:53 | new String(...) | provenance | MaD:6 |
|
||||
| SimpleXMLTests.java:37:5:37:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:37:32:37:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 |
|
||||
| SimpleXMLTests.java:31:52:31:52 | b : byte[] | SimpleXMLTests.java:31:41:31:53 | new String(...) | provenance | MaD:7 |
|
||||
| SimpleXMLTests.java:37:5:37:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:37:32:37:32 | b [post update] : byte[] | provenance | Src:MaD:2 MaD:5 |
|
||||
| SimpleXMLTests.java:37:32:37:32 | b [post update] : byte[] | SimpleXMLTests.java:38:52:38:52 | b : byte[] | provenance | |
|
||||
| SimpleXMLTests.java:38:52:38:52 | b : byte[] | SimpleXMLTests.java:38:41:38:53 | new String(...) | provenance | MaD:6 |
|
||||
| SimpleXMLTests.java:43:63:43:83 | getInputStream(...) : InputStream | SimpleXMLTests.java:43:41:43:84 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 |
|
||||
| SimpleXMLTests.java:68:59:68:79 | getInputStream(...) : InputStream | SimpleXMLTests.java:68:37:68:80 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 |
|
||||
| SimpleXMLTests.java:73:59:73:79 | getInputStream(...) : InputStream | SimpleXMLTests.java:73:37:73:80 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 |
|
||||
| SimpleXMLTests.java:78:48:78:68 | getInputStream(...) : InputStream | SimpleXMLTests.java:78:26:78:69 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 |
|
||||
| SimpleXMLTests.java:83:48:83:68 | getInputStream(...) : InputStream | SimpleXMLTests.java:83:26:83:69 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 |
|
||||
| SimpleXMLTests.java:89:5:89:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:89:32:89:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 |
|
||||
| SimpleXMLTests.java:38:52:38:52 | b : byte[] | SimpleXMLTests.java:38:41:38:53 | new String(...) | provenance | MaD:7 |
|
||||
| SimpleXMLTests.java:43:63:43:83 | getInputStream(...) : InputStream | SimpleXMLTests.java:43:41:43:84 | new InputStreamReader(...) | provenance | Src:MaD:2 MaD:6 |
|
||||
| SimpleXMLTests.java:68:59:68:79 | getInputStream(...) : InputStream | SimpleXMLTests.java:68:37:68:80 | new InputStreamReader(...) | provenance | Src:MaD:2 MaD:6 |
|
||||
| SimpleXMLTests.java:73:59:73:79 | getInputStream(...) : InputStream | SimpleXMLTests.java:73:37:73:80 | new InputStreamReader(...) | provenance | Src:MaD:2 MaD:6 |
|
||||
| SimpleXMLTests.java:78:48:78:68 | getInputStream(...) : InputStream | SimpleXMLTests.java:78:26:78:69 | new InputStreamReader(...) | provenance | Src:MaD:2 MaD:6 |
|
||||
| SimpleXMLTests.java:83:48:83:68 | getInputStream(...) : InputStream | SimpleXMLTests.java:83:26:83:69 | new InputStreamReader(...) | provenance | Src:MaD:2 MaD:6 |
|
||||
| SimpleXMLTests.java:89:5:89:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:89:32:89:32 | b [post update] : byte[] | provenance | Src:MaD:2 MaD:5 |
|
||||
| SimpleXMLTests.java:89:32:89:32 | b [post update] : byte[] | SimpleXMLTests.java:90:48:90:48 | b : byte[] | provenance | |
|
||||
| SimpleXMLTests.java:90:48:90:48 | b : byte[] | SimpleXMLTests.java:90:37:90:49 | new String(...) | provenance | MaD:6 |
|
||||
| SimpleXMLTests.java:96:5:96:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:96:32:96:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 |
|
||||
| SimpleXMLTests.java:90:48:90:48 | b : byte[] | SimpleXMLTests.java:90:37:90:49 | new String(...) | provenance | MaD:7 |
|
||||
| SimpleXMLTests.java:96:5:96:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:96:32:96:32 | b [post update] : byte[] | provenance | Src:MaD:2 MaD:5 |
|
||||
| SimpleXMLTests.java:96:32:96:32 | b [post update] : byte[] | SimpleXMLTests.java:97:48:97:48 | b : byte[] | provenance | |
|
||||
| SimpleXMLTests.java:97:48:97:48 | b : byte[] | SimpleXMLTests.java:97:37:97:49 | new String(...) | provenance | MaD:6 |
|
||||
| SimpleXMLTests.java:103:5:103:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:103:32:103:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 |
|
||||
| SimpleXMLTests.java:97:48:97:48 | b : byte[] | SimpleXMLTests.java:97:37:97:49 | new String(...) | provenance | MaD:7 |
|
||||
| SimpleXMLTests.java:103:5:103:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:103:32:103:32 | b [post update] : byte[] | provenance | Src:MaD:2 MaD:5 |
|
||||
| SimpleXMLTests.java:103:32:103:32 | b [post update] : byte[] | SimpleXMLTests.java:104:37:104:37 | b : byte[] | provenance | |
|
||||
| SimpleXMLTests.java:104:37:104:37 | b : byte[] | SimpleXMLTests.java:104:26:104:38 | new String(...) | provenance | MaD:6 |
|
||||
| SimpleXMLTests.java:110:5:110:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:110:32:110:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 |
|
||||
| SimpleXMLTests.java:104:37:104:37 | b : byte[] | SimpleXMLTests.java:104:26:104:38 | new String(...) | provenance | MaD:7 |
|
||||
| SimpleXMLTests.java:110:5:110:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:110:32:110:32 | b [post update] : byte[] | provenance | Src:MaD:2 MaD:5 |
|
||||
| SimpleXMLTests.java:110:32:110:32 | b [post update] : byte[] | SimpleXMLTests.java:111:37:111:37 | b : byte[] | provenance | |
|
||||
| SimpleXMLTests.java:111:37:111:37 | b : byte[] | SimpleXMLTests.java:111:26:111:38 | new String(...) | provenance | MaD:6 |
|
||||
| SimpleXMLTests.java:119:44:119:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:119:22:119:65 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 |
|
||||
| SimpleXMLTests.java:129:44:129:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:129:22:129:65 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 |
|
||||
| SimpleXMLTests.java:139:44:139:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:139:22:139:65 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 |
|
||||
| SimpleXMLTests.java:145:5:145:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:145:32:145:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 |
|
||||
| SimpleXMLTests.java:111:37:111:37 | b : byte[] | SimpleXMLTests.java:111:26:111:38 | new String(...) | provenance | MaD:7 |
|
||||
| SimpleXMLTests.java:119:44:119:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:119:22:119:65 | new InputStreamReader(...) | provenance | Src:MaD:2 MaD:6 |
|
||||
| SimpleXMLTests.java:129:44:129:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:129:22:129:65 | new InputStreamReader(...) | provenance | Src:MaD:2 MaD:6 |
|
||||
| SimpleXMLTests.java:139:44:139:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:139:22:139:65 | new InputStreamReader(...) | provenance | Src:MaD:2 MaD:6 |
|
||||
| SimpleXMLTests.java:145:5:145:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:145:32:145:32 | b [post update] : byte[] | provenance | Src:MaD:2 MaD:5 |
|
||||
| SimpleXMLTests.java:145:32:145:32 | b [post update] : byte[] | SimpleXMLTests.java:146:33:146:33 | b : byte[] | provenance | |
|
||||
| SimpleXMLTests.java:146:33:146:33 | b : byte[] | SimpleXMLTests.java:146:22:146:34 | new String(...) | provenance | MaD:6 |
|
||||
| SimpleXMLTests.java:152:5:152:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:152:32:152:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 |
|
||||
| SimpleXMLTests.java:146:33:146:33 | b : byte[] | SimpleXMLTests.java:146:22:146:34 | new String(...) | provenance | MaD:7 |
|
||||
| SimpleXMLTests.java:152:5:152:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:152:32:152:32 | b [post update] : byte[] | provenance | Src:MaD:2 MaD:5 |
|
||||
| SimpleXMLTests.java:152:32:152:32 | b [post update] : byte[] | SimpleXMLTests.java:153:33:153:33 | b : byte[] | provenance | |
|
||||
| SimpleXMLTests.java:153:33:153:33 | b : byte[] | SimpleXMLTests.java:153:22:153:34 | new String(...) | provenance | MaD:6 |
|
||||
| TransformerTests.java:20:44:20:64 | getInputStream(...) : InputStream | TransformerTests.java:20:27:20:65 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:21:40:21:60 | getInputStream(...) : InputStream | TransformerTests.java:21:23:21:61 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:71:44:71:64 | getInputStream(...) : InputStream | TransformerTests.java:71:27:71:65 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:72:40:72:60 | getInputStream(...) : InputStream | TransformerTests.java:72:23:72:61 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:79:44:79:64 | getInputStream(...) : InputStream | TransformerTests.java:79:27:79:65 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:80:40:80:60 | getInputStream(...) : InputStream | TransformerTests.java:80:23:80:61 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:88:44:88:64 | getInputStream(...) : InputStream | TransformerTests.java:88:27:88:65 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:89:40:89:60 | getInputStream(...) : InputStream | TransformerTests.java:89:23:89:61 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:97:44:97:64 | getInputStream(...) : InputStream | TransformerTests.java:97:27:97:65 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:98:40:98:60 | getInputStream(...) : InputStream | TransformerTests.java:98:23:98:61 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:103:38:103:58 | getInputStream(...) : InputStream | TransformerTests.java:103:21:103:59 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:116:38:116:58 | getInputStream(...) : InputStream | TransformerTests.java:116:21:116:59 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:122:38:122:58 | getInputStream(...) : InputStream | TransformerTests.java:122:21:122:59 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:129:38:129:58 | getInputStream(...) : InputStream | TransformerTests.java:129:21:129:59 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:136:38:136:58 | getInputStream(...) : InputStream | TransformerTests.java:136:21:136:59 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 |
|
||||
| TransformerTests.java:141:35:141:72 | new InputSource(...) : InputSource | TransformerTests.java:141:21:141:73 | new SAXSource(...) | provenance | MaD:7 |
|
||||
| TransformerTests.java:141:51:141:71 | getInputStream(...) : InputStream | TransformerTests.java:141:35:141:72 | new InputSource(...) : InputSource | provenance | Src:MaD:1 MaD:13 |
|
||||
| ValidatorTests.java:17:49:17:72 | getInputStream(...) : ServletInputStream | ValidatorTests.java:21:48:21:65 | servletInputStream : ServletInputStream | provenance | Src:MaD:2 |
|
||||
| SimpleXMLTests.java:153:33:153:33 | b : byte[] | SimpleXMLTests.java:153:22:153:34 | new String(...) | provenance | MaD:7 |
|
||||
| TransformerTests.java:20:44:20:64 | getInputStream(...) : InputStream | TransformerTests.java:20:27:20:65 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:21:40:21:60 | getInputStream(...) : InputStream | TransformerTests.java:21:23:21:61 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:71:44:71:64 | getInputStream(...) : InputStream | TransformerTests.java:71:27:71:65 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:72:40:72:60 | getInputStream(...) : InputStream | TransformerTests.java:72:23:72:61 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:79:44:79:64 | getInputStream(...) : InputStream | TransformerTests.java:79:27:79:65 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:80:40:80:60 | getInputStream(...) : InputStream | TransformerTests.java:80:23:80:61 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:88:44:88:64 | getInputStream(...) : InputStream | TransformerTests.java:88:27:88:65 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:89:40:89:60 | getInputStream(...) : InputStream | TransformerTests.java:89:23:89:61 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:97:44:97:64 | getInputStream(...) : InputStream | TransformerTests.java:97:27:97:65 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:98:40:98:60 | getInputStream(...) : InputStream | TransformerTests.java:98:23:98:61 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:103:38:103:58 | getInputStream(...) : InputStream | TransformerTests.java:103:21:103:59 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:116:38:116:58 | getInputStream(...) : InputStream | TransformerTests.java:116:21:116:59 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:122:38:122:58 | getInputStream(...) : InputStream | TransformerTests.java:122:21:122:59 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:129:38:129:58 | getInputStream(...) : InputStream | TransformerTests.java:129:21:129:59 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:136:38:136:58 | getInputStream(...) : InputStream | TransformerTests.java:136:21:136:59 | new StreamSource(...) | provenance | Src:MaD:2 MaD:12 |
|
||||
| TransformerTests.java:141:35:141:72 | new InputSource(...) : InputSource | TransformerTests.java:141:21:141:73 | new SAXSource(...) | provenance | MaD:8 |
|
||||
| TransformerTests.java:141:51:141:71 | getInputStream(...) : InputStream | TransformerTests.java:141:35:141:72 | new InputSource(...) : InputSource | provenance | Src:MaD:2 MaD:14 |
|
||||
| ValidatorTests.java:17:49:17:72 | getInputStream(...) : ServletInputStream | ValidatorTests.java:21:48:21:65 | servletInputStream : ServletInputStream | provenance | Src:MaD:3 |
|
||||
| ValidatorTests.java:21:31:21:66 | new StreamSource(...) : StreamSource | ValidatorTests.java:22:28:22:33 | source | provenance | |
|
||||
| ValidatorTests.java:21:48:21:65 | servletInputStream : ServletInputStream | ValidatorTests.java:21:31:21:66 | new StreamSource(...) : StreamSource | provenance | MaD:11 |
|
||||
| XMLDecoderTests.java:16:49:16:72 | getInputStream(...) : ServletInputStream | XMLDecoderTests.java:17:48:17:65 | servletInputStream : ServletInputStream | provenance | Src:MaD:2 |
|
||||
| XMLDecoderTests.java:17:33:17:66 | new XMLDecoder(...) : XMLDecoder | XMLDecoderTests.java:18:9:18:18 | xmlDecoder | provenance | |
|
||||
| XMLDecoderTests.java:17:48:17:65 | servletInputStream : ServletInputStream | XMLDecoderTests.java:17:33:17:66 | new XMLDecoder(...) : XMLDecoder | provenance | MaD:3 |
|
||||
| XMLReaderTests.java:16:34:16:54 | getInputStream(...) : InputStream | XMLReaderTests.java:16:18:16:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 |
|
||||
| XMLReaderTests.java:56:34:56:54 | getInputStream(...) : InputStream | XMLReaderTests.java:56:18:56:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 |
|
||||
| XMLReaderTests.java:63:34:63:54 | getInputStream(...) : InputStream | XMLReaderTests.java:63:18:63:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 |
|
||||
| XMLReaderTests.java:70:34:70:54 | getInputStream(...) : InputStream | XMLReaderTests.java:70:18:70:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 |
|
||||
| XMLReaderTests.java:78:34:78:54 | getInputStream(...) : InputStream | XMLReaderTests.java:78:18:78:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 |
|
||||
| XMLReaderTests.java:86:34:86:54 | getInputStream(...) : InputStream | XMLReaderTests.java:86:18:86:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 |
|
||||
| XMLReaderTests.java:94:34:94:54 | getInputStream(...) : InputStream | XMLReaderTests.java:94:18:94:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 |
|
||||
| XMLReaderTests.java:100:34:100:54 | getInputStream(...) : InputStream | XMLReaderTests.java:100:18:100:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 |
|
||||
| XPathExpressionTests.java:27:35:27:55 | getInputStream(...) : InputStream | XPathExpressionTests.java:27:19:27:56 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 |
|
||||
| XPathExpressionTests.java:42:39:42:59 | getInputStream(...) : InputStream | XPathExpressionTests.java:42:23:42:60 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 |
|
||||
| ValidatorTests.java:21:48:21:65 | servletInputStream : ServletInputStream | ValidatorTests.java:21:31:21:66 | new StreamSource(...) : StreamSource | provenance | MaD:12 |
|
||||
| XMLDecoderTests.java:16:49:16:72 | getInputStream(...) : ServletInputStream | XMLDecoderTests.java:17:48:17:65 | servletInputStream : ServletInputStream | provenance | Src:MaD:3 |
|
||||
| XMLDecoderTests.java:17:33:17:66 | new XMLDecoder(...) : XMLDecoder | XMLDecoderTests.java:18:9:18:18 | xmlDecoder | provenance | Sink:MaD:1 |
|
||||
| XMLDecoderTests.java:17:48:17:65 | servletInputStream : ServletInputStream | XMLDecoderTests.java:17:33:17:66 | new XMLDecoder(...) : XMLDecoder | provenance | MaD:4 |
|
||||
| XMLReaderTests.java:16:34:16:54 | getInputStream(...) : InputStream | XMLReaderTests.java:16:18:16:55 | new InputSource(...) | provenance | Src:MaD:2 MaD:14 |
|
||||
| XMLReaderTests.java:56:34:56:54 | getInputStream(...) : InputStream | XMLReaderTests.java:56:18:56:55 | new InputSource(...) | provenance | Src:MaD:2 MaD:14 |
|
||||
| XMLReaderTests.java:63:34:63:54 | getInputStream(...) : InputStream | XMLReaderTests.java:63:18:63:55 | new InputSource(...) | provenance | Src:MaD:2 MaD:14 |
|
||||
| XMLReaderTests.java:70:34:70:54 | getInputStream(...) : InputStream | XMLReaderTests.java:70:18:70:55 | new InputSource(...) | provenance | Src:MaD:2 MaD:14 |
|
||||
| XMLReaderTests.java:78:34:78:54 | getInputStream(...) : InputStream | XMLReaderTests.java:78:18:78:55 | new InputSource(...) | provenance | Src:MaD:2 MaD:14 |
|
||||
| XMLReaderTests.java:86:34:86:54 | getInputStream(...) : InputStream | XMLReaderTests.java:86:18:86:55 | new InputSource(...) | provenance | Src:MaD:2 MaD:14 |
|
||||
| XMLReaderTests.java:94:34:94:54 | getInputStream(...) : InputStream | XMLReaderTests.java:94:18:94:55 | new InputSource(...) | provenance | Src:MaD:2 MaD:14 |
|
||||
| XMLReaderTests.java:100:34:100:54 | getInputStream(...) : InputStream | XMLReaderTests.java:100:18:100:55 | new InputSource(...) | provenance | Src:MaD:2 MaD:14 |
|
||||
| XPathExpressionTests.java:27:35:27:55 | getInputStream(...) : InputStream | XPathExpressionTests.java:27:19:27:56 | new InputSource(...) | provenance | Src:MaD:2 MaD:14 |
|
||||
| XPathExpressionTests.java:42:39:42:59 | getInputStream(...) : InputStream | XPathExpressionTests.java:42:23:42:60 | new InputSource(...) | provenance | Src:MaD:2 MaD:14 |
|
||||
models
|
||||
| 1 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 2 | Source: javax.servlet; ServletRequest; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 3 | Summary: java.beans; XMLDecoder; false; XMLDecoder; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 4 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 5 | Summary: java.io; InputStreamReader; false; InputStreamReader; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 6 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 7 | Summary: javax.xml.transform.sax; SAXSource; false; SAXSource; (InputSource); ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 8 | Summary: javax.xml.transform.sax; SAXSource; false; SAXSource; (XMLReader,InputSource); ; Argument[1]; Argument[this]; taint; manual |
|
||||
| 9 | Summary: javax.xml.transform.sax; SAXSource; false; getInputSource; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 10 | Summary: javax.xml.transform.sax; SAXSource; false; sourceToInputSource; ; ; Argument[0]; ReturnValue; taint; manual |
|
||||
| 11 | Summary: javax.xml.transform.stream; StreamSource; false; StreamSource; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 12 | Summary: javax.xml.transform.stream; StreamSource; false; getInputStream; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 13 | Summary: org.xml.sax; InputSource; false; InputSource; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 1 | Sink: java.beans; XMLDecoder; true; readObject; (); ; Argument[this]; unsafe-deserialization; manual |
|
||||
| 2 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 3 | Source: javax.servlet; ServletRequest; false; getInputStream; (); ; ReturnValue; remote; manual |
|
||||
| 4 | Summary: java.beans; XMLDecoder; false; XMLDecoder; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 5 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual |
|
||||
| 6 | Summary: java.io; InputStreamReader; false; InputStreamReader; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 7 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 8 | Summary: javax.xml.transform.sax; SAXSource; false; SAXSource; (InputSource); ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 9 | Summary: javax.xml.transform.sax; SAXSource; false; SAXSource; (XMLReader,InputSource); ; Argument[1]; Argument[this]; taint; manual |
|
||||
| 10 | Summary: javax.xml.transform.sax; SAXSource; false; getInputSource; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 11 | Summary: javax.xml.transform.sax; SAXSource; false; sourceToInputSource; ; ; Argument[0]; ReturnValue; taint; manual |
|
||||
| 12 | Summary: javax.xml.transform.stream; StreamSource; false; StreamSource; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
| 13 | Summary: javax.xml.transform.stream; StreamSource; false; getInputStream; ; ; Argument[this]; ReturnValue; taint; manual |
|
||||
| 14 | Summary: org.xml.sax; InputSource; false; InputSource; ; ; Argument[0]; Argument[this]; taint; manual |
|
||||
nodes
|
||||
| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream |
|
||||
| CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | semmle.label | new InputSource(...) : InputSource |
|
||||
|
||||
Reference in New Issue
Block a user