2019
DOI: 10.1145/3295739
|View full text |Cite
|
Sign up to set email alerts
|

Understanding and Analyzing Java Reflection

Abstract: Java reflection has been increasingly used in a wide range of software. It allows a software system to inspect and/or modify the behaviour of its classes, interfaces, methods and fields at runtime, enabling the software to adapt to dynamically changing runtime environments. However, this dynamic language feature imposes significant challenges to static analysis, because the behaviour of reflection-rich software is logically complex and statically hard to predict, especially when manipulated frequently by stati… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
19
0

Year Published

2020
2020
2024
2024

Publication Types

Select...
3
3
1

Relationship

0
7

Authors

Journals

citations
Cited by 36 publications
(19 citation statements)
references
References 68 publications
0
19
0
Order By: Relevance
“…Here, we have used the TamiFlex framework for handling reflection calls. Other approaches have improved the reflection handling [10,[15][16][17][18]25]. To convince ourself, we experimented with one of the state-of-the-art techniques, i.e., reflection with matching substring resolution [10].…”
Section: Threats To Validitymentioning
confidence: 99%
See 1 more Smart Citation
“…Here, we have used the TamiFlex framework for handling reflection calls. Other approaches have improved the reflection handling [10,[15][16][17][18]25]. To convince ourself, we experimented with one of the state-of-the-art techniques, i.e., reflection with matching substring resolution [10].…”
Section: Threats To Validitymentioning
confidence: 99%
“…Researchers have proposed various approaches to enhance the precision and soundness of static analyses [6,9,10,14,17,26,30,31]. They use program analysis frameworks to prototype and evaluate their algorithms.…”
Section: Introductionmentioning
confidence: 99%
“…Message part 1: (contains the generic method invocation statement): The component in its 'internal logic' has the necessary code to check the category of the component. Accordingly, Java statements to invoke the standalone method implementation of the encapsulated Spark APIs via reflection [63,64] are added for every vertex. These Java statements form the main methods in Spark Driver program.…”
Section: Message Passingmentioning
confidence: 99%
“…In this paper, we focus on aiding points to analysis in handling by serialization-related features in a program. Previous research on static analysis also explored the challenges involving supporting reflection features [6,24,25,34]. These approaches involve making certain assumptions when performing the analysis, in order to create analyses that are not overly imprecise.…”
Section: Related Workmentioning
confidence: 99%
“…Therefore, ignoring such constructs leads to unsound callgraphs; they miss feasible runtime paths because they cannot infer the possible execution from the code [29,30,37]. To tackle this problem, previous literature explored certain classes of dynamic features, such as reflection features [6,24,25,34], and programs with Remote Method Invocation (RMI) [33]. However, as demonstrated by Reif et al [29,30], one programming construct that has been left out from the programming analysis techniques is the support for handling serialization (and deserialization) of objects.…”
Section: Introductionmentioning
confidence: 99%