Oleg is a Java developer and Evangelist at ZeroTurnaround, with a focus on Continuous Delivery and Devops. He also enjoys spending time using clojure, github and google docs. He is currently studying for a PhD on dynamic system updates and process migration and is a part-time teacher at the University of Tartu. As a technical writer for RebelLabs, Oleg regularly provides content for blogs and popular reports. In his free time he plays chess at a grandmaster level, loves puzzles and solving problems. He is a geek but loves to hang out with people.
1h - Slides+Speech
The Java language is a small part of a greater ecosystem which includes a JVM, Java SE specs, Java EE specs with differing implementations of each. Surprisingly, most of the time these all work together smoothly! However, edge cases will always exist when using multiple components of any large ecosystem which often results in weird and unexpected outcomes.
In this session, we will look at a series of examples that exposes these incompatibilities to show us that everything is not as perfect as we’d like to think, in the land of Java. For instance, what would happen if you used a fork-join pool in a Java EE environment? How does classloading influence your internationalisation settings? Should you trust autoboxing, serialization and your understanding of what’s happening in your code?
We’ll review several issues that arise when specifications collide and advise how you can debug and avoid those cases. From this session, you will learn about some of weirder aspects of the Java ecosystem and you will be better equipped to face these real-world problems in your day to day java development.