Co-founder of Plumbr, the memory leak detection product, where he now contributes as core developer. Besides his daily technical tasks he is an active blogger, JavaOne RockStar and frequent conference speaker (Devoxx, JavaOne Russia, 33rd Degree, TopConf, JavaDay, GeekOut, Joker, Jazoon etc).
Prior to founding Plumbr, Nikita was a Java EE developer and performance consultant in the Baltics, and has worked with tens of different Java EE applications over the years. In the last four years he specialized in troubleshooting and performance optimization.
1h - live coding
I will present a fairly simple web application, written using standard Java frameworks and libraries. What makes this application special is that it contains 8 different Permanent Generation memory leaks. They all are pretty standard, nothing obscure or weird. Each of them has a high chance to exist in your application as well. In fact the chances are so high I can bet a beer on the outcome.
I will describe each of these leaks explaining why this particular code leaks class loaders. I will also reason, if this was a deliberate technical decision and/or the implementation was just sloppy. I will also show how to fix it.