Merge pull request #12739 from jcogs33/jcogs33/add-one-more-top500-model

Java: add summary model for `UnsupportedOperationException(String)` constructor
This commit is contained in:
Jami
2023-04-11 08:25:36 -04:00
committed by GitHub
6 changed files with 21 additions and 2 deletions

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* Added a summary model for the `java.lang.UnsupportedOperationException(String)` constructor.

View File

@@ -132,6 +132,8 @@ extensions:
- ["java.lang", "Throwable", True, "getMessage", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"]
- ["java.lang", "Throwable", True, "getLocalizedMessage", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"]
- ["java.lang", "Throwable", True, "toString", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "taint", "manual"]
- ["java.lang", "UnsupportedOperationException", False, "UnsupportedOperationException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
- addsTo:
pack: codeql/java-all
extensible: neutralModel

View File

@@ -56,7 +56,8 @@ predicate topJdkApiName(string apiName) {
"java.lang.StringBuilder#append(int)", "java.util.Objects#requireNonNull(Object,String)",
"java.nio.file.Path#resolve(String)", "java.lang.Enum#toString()",
"java.lang.RuntimeException#RuntimeException(Throwable)", "java.util.Collection#size()",
"java.lang.String#charAt(int)", "java.util.stream.Stream#forEach(Consumer)",
"java.lang.String#charAt(int)",
"java.lang.UnsupportedOperationException#UnsupportedOperationException(String)",
"java.util.Map#isEmpty()", "java.lang.String#valueOf(int)",
// top 200 JDK APIs
"java.lang.Integer#intValue()", "java.util.ArrayList#size()",

View File

@@ -44,6 +44,9 @@ public class Test {
Exception e4 = new IllegalStateException((String)source());
sink((String)e4.getMessage()); // $hasValueFlow
Exception e5 = new UnsupportedOperationException((String)source());
sink((String)e5.getMessage()); // $hasValueFlow
Throwable t = new Throwable((Throwable)source());
sink((Throwable)t.getCause()); // $hasValueFlow

View File

@@ -0,0 +1,9 @@
// Manually created from java.lang.UnsupportedOperationException for testing purposes
package java.lang;
public class UnsupportedOperationException
{
public UnsupportedOperationException(String p0){} // manual summary
}

View File

@@ -1,5 +1,5 @@
| java.io | 0 | 0 | 22 | 9 | 31 | 0.7096774193548387 | 0.0 | 0.7096774193548387 | 0.0 | NaN | 0.2903225806451613 |
| java.lang | 0 | 0 | 59 | 89 | 148 | 0.39864864864864863 | 0.0 | 0.39864864864864863 | 0.0 | NaN | 0.6013513513513513 |
| java.lang | 0 | 0 | 60 | 89 | 149 | 0.40268456375838924 | 0.0 | 0.40268456375838924 | 0.0 | NaN | 0.5973154362416108 |
| java.lang.invoke | 0 | 0 | 0 | 1 | 1 | 0.0 | 0.0 | 0.0 | NaN | NaN | 1.0 |
| java.lang.reflect | 0 | 0 | 0 | 4 | 4 | 0.0 | 0.0 | 0.0 | NaN | NaN | 1.0 |
| java.math | 0 | 0 | 0 | 16 | 16 | 0.0 | 0.0 | 0.0 | NaN | NaN | 1.0 |