{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,8,24]],"date-time":"2026-08-24T09:35:54Z","timestamp":1787564154957,"version":"build-2736575974"},"publisher-location":"New York, NY, USA","reference-count":58,"publisher":"ACM","license":[{"start":{"date-parts":[[2018,7,12]],"date-time":"2018-07-12T00:00:00Z","timestamp":1531353600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Facebook Research and Academic Relations Award"},{"name":"Oracle Labs collaborative research grant"},{"name":"European Research Council","award":["307334"],"award-info":[{"award-number":["307334"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2018,7,12]]},"DOI":"10.1145\/3213846.3213864","type":"proceedings-article","created":{"date-parts":[[2018,7,12]],"date-time":"2018-07-12T13:46:44Z","timestamp":1531403204000},"page":"209-220","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":22,"title":["Static analysis of Java dynamic proxies"],"prefix":"10.1145","author":[{"given":"George","family":"Fourtounis","sequence":"first","affiliation":[{"name":"University of Athens, Greece"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"George","family":"Kastrinis","sequence":"additional","affiliation":[{"name":"University of Athens, Greece"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Yannis","family":"Smaragdakis","sequence":"additional","affiliation":[{"name":"University of Athens, Greece"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2018,7,12]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"2016. FAQ - androidannotations Wiki. https:\/\/github.com\/androidannotations\/ androidannotations\/wiki\/FAQ. Accessed: Jan. 28 2018. 2016. Proxy | Android Developers. https:\/\/developer.android.com\/reference\/ java\/lang\/reflect\/Proxy.html Accessed: Jan. 28 2018.  2016. FAQ - androidannotations Wiki. https:\/\/github.com\/androidannotations\/ androidannotations\/wiki\/FAQ. Accessed: Jan. 28 2018. 2016. Proxy | Android Developers. https:\/\/developer.android.com\/reference\/ java\/lang\/reflect\/Proxy.html Accessed: Jan. 28 2018."},{"key":"e_1_3_2_1_2_1","first-page":"809","article-title":"A Dynamic Proxy Based Architecture to Support Distributed Java Objects in a Mobile Environment. Springer Berlin Heidelberg, Berlin","author":"Biegel G.","year":"2002","journal-title":"Heidelberg"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"crossref","unstructured":"Jonas Bon\u00e9r. 2008.  Jonas Bon\u00e9r. 2008.","DOI":"10.28937\/1000107953"},{"key":"e_1_3_2_1_4_1","unstructured":"Real-World Scala: Managing Cross-Cutting Concerns using Mixin Composition and AOP. http:\/\/jonasboner.com\/real-world-scala-managing-crosscutting-concerns-using-mixin-composition-and-aop.  Real-World Scala: Managing Cross-Cutting Concerns using Mixin Composition and AOP. http:\/\/jonasboner.com\/real-world-scala-managing-crosscutting-concerns-using-mixin-composition-and-aop."},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1572272.1572274"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640108"},{"key":"e_1_3_2_1_7_1","volume-title":"Proceedings of the 2004 Dynamic Aspects Workshop (DAW04)","author":"Chitchyan Ruzanna","year":"2004"},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-13821-8_11"},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"crossref","unstructured":"Jens Dietrich Henrik Schole Li Sui and Ewan Tempero. 2017. XCorpus \u2013 An executable Corpus of Java Programs.  Jens Dietrich Henrik Schole Li Sui and Ewan Tempero. 2017. XCorpus \u2013 An executable Corpus of Java Programs.","DOI":"10.5381\/jot.2017.16.4.a1"},{"key":"e_1_3_2_1_10_1","volume-title":"Accessed","author":"Eliasson A.","year":"2002"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167485"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1180475.1180481"},{"key":"e_1_3_2_1_13_1","unstructured":"Stephen J. Fink et al. {n. d.}. WALA UserGuide: PointerAnalysis. http:\/\/wala. sourceforge.net\/wiki\/index.php\/UserGuide:PointerAnalysis.  Stephen J. Fink et al. {n. d.}. WALA UserGuide: PointerAnalysis. http:\/\/wala. sourceforge.net\/wiki\/index.php\/UserGuide:PointerAnalysis."},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.5555\/1515915.1515939"},{"key":"e_1_3_2_1_15_1","unstructured":"Martin Fowler. 2004. Inversion of Control Containers and the Dependency Injection pattern. http:\/\/martinfowler.com\/articles\/injection.html# ServiceLocatorVsDependencyInjection  Martin Fowler. 2004. Inversion of Control Containers and the Dependency Injection pattern. http:\/\/martinfowler.com\/articles\/injection.html# ServiceLocatorVsDependencyInjection"},{"key":"e_1_3_2_1_16_1","volume-title":"Accessed","author":"Fox Dominic","year":"2015"},{"key":"e_1_3_2_1_17_1","unstructured":"James Gosling Bill Joy Guy L. Steele Gilad Bracha and Alex Buckley. 2014. The Java Language Specification Java SE 8 Edition (1st ed.). Addison-Wesley Professional.   James Gosling Bill Joy Guy L. Steele Gilad Bracha and Alex Buckley. 2014. The Java Language Specification Java SE 8 Edition (1st ed.). Addison-Wesley Professional."},{"key":"e_1_3_2_1_18_1","volume-title":"Proceedings of the 18th USENIX Security Symposium (SSYM\u2019 09)","author":"Guarnieri Salvatore","year":"2009"},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.5555\/957289.957293"},{"key":"e_1_3_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.629"},{"key":"e_1_3_2_1_21_1","unstructured":"Rich Hickey. {n. d.}. Clojure - Java Interop: Implementing Interfaces and Extending Classes. https:\/\/clojure.org\/reference\/java_interop#_implementing_ interfaces_and_extending_classes Accessed: Jan. 28 2018.  Rich Hickey. {n. d.}. Clojure - Java Interop: Implementing Interfaces and Extending Classes. https:\/\/clojure.org\/reference\/java_interop#_implementing_ interfaces_and_extending_classes Accessed: Jan. 28 2018."},{"key":"e_1_3_2_1_22_1","volume-title":"Special Issue on the 14th International Conference on Generative Programming: Concepts &amp; Experiences (GPCE\u201915)","author":"Inostroza Pablo"},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-37051-9_3"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462191"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065167.1065169"},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2017.53"},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-44202-9_2"},{"key":"e_1_3_2_1_28_1","volume-title":"SAS 2015, Saint-Malo, France, September 9-11, 2015, Proceedings (Lecture Notes in Computer Science), Sandrine Blazy and Thomas Jensen (Eds.)","volume":"9291","author":"Li Yue","year":"2015"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993567"},{"key":"e_1_3_2_1_30_1","unstructured":"Tim Lindholm Frank Yellin Gilad Bracha and Alex Buckley. 2015. The Java Virtual Machine Specification Java SE 8 Edition.   Tim Lindholm Frank Yellin Gilad Bracha and Alex Buckley. 2015. The Java Virtual Machine Specification Java SE 8 Edition."},{"key":"e_1_3_2_1_31_1","unstructured":"Benjamin Livshits. 2006. Improving Software Security with Precise Static and Runtime Analysis. Ph.D. Dissertation. Stanford University.   Benjamin Livshits. 2006. Improving Software Security with Precise Static and Runtime Analysis. Ph.D. Dissertation. Stanford University."},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2644805"},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1007\/11575467_11"},{"key":"e_1_3_2_1_34_1","volume-title":"Hanoi: A Typestate DSL for Java. (April","author":"McGinniss Iain","year":"2011"},{"key":"e_1_3_2_1_35_1","volume-title":"RSA Conference. Accessed","author":"Mu\u00f1oz Alvaro","year":"2016"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1134018"},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39038-8_2"},{"key":"e_1_3_2_1_38_1","unstructured":"Oracle. {n. d.}. Java Naming and Directory Interface (JNDI). http:\/\/www.oracle. com\/technetwork\/java\/jndi\/index.html Accessed: Jan. 28 2018.  Oracle. {n. d.}. Java Naming and Directory Interface (JNDI). http:\/\/www.oracle. com\/technetwork\/java\/jndi\/index.html Accessed: Jan. 28 2018."},{"key":"e_1_3_2_1_39_1","unstructured":"Oracle. 2016. Dynamic Proxy Classes. http:\/\/docs.oracle.com\/javase\/8\/docs\/ technotes\/guides\/reflection\/proxy.html Accessed: Jan. 28 2018.  Oracle. 2016. Dynamic Proxy Classes. http:\/\/docs.oracle.com\/javase\/8\/docs\/ technotes\/guides\/reflection\/proxy.html Accessed: Jan. 28 2018."},{"key":"e_1_3_2_1_40_1","unstructured":"Oracle. 2016. InvocationHandler (Java Platform SE 8 ). https:\/\/docs.oracle.com\/ javase\/8\/docs\/api\/java\/lang\/reflect\/InvocationHandler.html Accessed: Jan. 28 2018.  Oracle. 2016. InvocationHandler (Java Platform SE 8 ). https:\/\/docs.oracle.com\/ javase\/8\/docs\/api\/java\/lang\/reflect\/InvocationHandler.html Accessed: Jan. 28 2018."},{"key":"e_1_3_2_1_41_1","unstructured":"Oracle. 2016. Proxy (Java Platform SE 8). http:\/\/docs.oracle.com\/javase\/8\/docs\/ api\/java\/lang\/reflect\/Proxy.html Accessed: Jan. 28 2018.  Oracle. 2016. Proxy (Java Platform SE 8). http:\/\/docs.oracle.com\/javase\/8\/docs\/ api\/java\/lang\/reflect\/Proxy.html Accessed: Jan. 28 2018."},{"key":"e_1_3_2_1_42_1","volume-title":"Accessed","author":"Networks Palo Alto","year":"2016"},{"key":"e_1_3_2_1_43_1","volume-title":"Ghost: A Uniform and General-Purpose Proxy Implementation. CoRR abs\/1310.7774","author":"Peck Mariano Martinez","year":"2013"},{"key":"e_1_3_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028976.1028994"},{"key":"e_1_3_2_1_45_1","volume-title":"Applications of Logic Databases","author":"Reps Thomas W."},{"key":"e_1_3_2_1_46_1","doi-asserted-by":"crossref","unstructured":"Chris Schaefer Clarence Ho and Rob Harrop. 2014. Introducing Spring AOP. Apress Berkeley CA 161\u2013239.  Chris Schaefer Clarence Ho and Rob Harrop. 2014. Introducing Spring AOP. Apress Berkeley CA 161\u2013239.","DOI":"10.1007\/978-1-4302-6152-0_5"},{"key":"e_1_3_2_1_47_1","unstructured":"Yannis Smaragdakis and George Balatsouras. 2015. Pointer Analysis. Foundations and Trends\u00ae in Programming Languages 2 1 (2015) 1\u201369. 1561\/2500000014 ISSTA\u201918 July 16\u201321 2018 Amsterdam Netherlands George Fourtounis George Kastrinis and Yannis Smaragdakis  Yannis Smaragdakis and George Balatsouras. 2015. Pointer Analysis. Foundations and Trends\u00ae in Programming Languages 2 1 (2015) 1\u201369. 1561\/2500000014 ISSTA\u201918 July 16\u201321 2018 Amsterdam Netherlands George Fourtounis George Kastrinis and Yannis Smaragdakis"},{"key":"e_1_3_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-26529-2_26"},{"key":"e_1_3_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-24206-9_14"},{"key":"e_1_3_2_1_50_1","unstructured":"Square. {n. d.}. OkHttp \u2013 An HTTP &amp; HTTP\/2 client for Android and Java applications. http:\/\/square.github.io\/okhttp\/ Accessed: Jan. 28 2018.  Square. {n. d.}. OkHttp \u2013 An HTTP &amp; HTTP\/2 client for Android and Java applications. http:\/\/square.github.io\/okhttp\/ Accessed: Jan. 28 2018."},{"key":"e_1_3_2_1_51_1","unstructured":"Daniel Stenberg. {n. d.}. TLS in HTTP\/2. https:\/\/daniel.haxx.se\/blog\/2015\/03\/06\/ tls-in-http2 Accessed: Jan. 28 2018.  Daniel Stenberg. {n. d.}. TLS in HTTP\/2. https:\/\/daniel.haxx.se\/blog\/2015\/03\/06\/ tls-in-http2 Accessed: Jan. 28 2018."},{"key":"e_1_3_2_1_52_1","volume-title":"Accessed","author":"Team DroidPlugin","year":"2016"},{"key":"e_1_3_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDCS.2009.39"},{"key":"e_1_3_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.5555\/781995.782008"},{"key":"e_1_3_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.5555\/1898699.1898731"},{"key":"e_1_3_2_1_56_1","volume-title":"Google Guice: Agile Lightweight Dependency Injection Framework","author":"Vanbrabant Robbie","year":"2008"},{"key":"e_1_3_2_1_57_1","unstructured":"John Vlissides. 2001. GoF \u00e0 la Java. Java Report (March 2001).  John Vlissides. 2001. GoF \u00e0 la Java. Java Report (March 2001)."},{"key":"e_1_3_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1007\/11575467_8"}],"event":{"name":"ISSTA '18: International Symposium on Software Testing and Analysis","location":"Amsterdam Netherlands","acronym":"ISSTA '18","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering","SIGPLAN ACM Special Interest Group on Programming Languages"]},"container-title":["Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3213846.3213864","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3213846.3213864","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T22:07:42Z","timestamp":1750198062000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3213846.3213864"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,7,12]]},"references-count":58,"alternative-id":["10.1145\/3213846.3213864","10.1145\/3213846"],"URL":"https:\/\/doi.org\/10.1145\/3213846.3213864","relation":{},"subject":[],"published":{"date-parts":[[2018,7,12]]},"assertion":[{"value":"2018-07-12","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}