About me

My name is Mattias Jiderhamn – I was born in the ’70s and started developing in the ’80s, with Java as my primary language since the ’90s.

In 2016 I was elected JavaOne Rock Star speaker for my talk on ClassLoader leaks.

According to Martin Fowler, architecture is stuff that’s hard to change later, and there should be as little of that stuff as possible. Given that, I’d have to admit to being guilty of most of the architecture in the projects I have been working on, and you might therefore want to call me an architect (but I won’t necessarily see it as a compliment…). What I do take pride in is taking on the technical lead in evaluating, deciding (or at least influencing decisions) and educating on anything from platforms, frameworks, APIs, continuous integration and release pipelines to methodology including TDD and code review. I generally prefer “getting my hands dirty” over drawing stuff on a whiteboard (even though that has its uses too).

  • Sorcerer

    Hi, I am setting up an open source project. It recommend to use Java8. This project has interface to another open source project. That project uses JAI. The latest version of JAI was released in 2006 (V1.1.3) & SUN stopped supporting it. Oracle abandoned it. Most open source imaging projects use JAI.
    I googled the compatibility of JAI and Java 8. But I found JAI is compatible with Java 7 from Geoserver.org site.
    I came across your article on memory leaks wrt JAI (http://java.jiderhamn.se/category/classloader-leaks/).
    Since my other open source project and Tomcat server requires Java 8 (and I have to set the environment variable in windows to indicate where Java 8 is located).
    Can you tell me is JAI compatible with Java 8?
    Thanks in advance.

    • I’ve personally not seen any issues with JAI + Java 8, but admittedly I’ve not tried the native (JNI) install, only JAI core + codec JARs

      • Sorcerer

        OK. I will give it a go. Thanks for super fast response. Much appreciated.

      • Sorcerer

        Hello Mattias,
        One more question. Tomcat I use is 64bit. I set the environment JAVA_HOME variable to point to 64bit jdk folder. JAI is 32-bit. The app that uses JAI is a 32-bit. Can I host a 32-bit WAR of that app in a 64bit Tomcat or I have to install a 32bit Tomcat in order to host the 32bit WAR file? I am worry about the environmental setting mentioned above.
        Thanks in advance.

        • Will you be using JNI? Otherwise the question is irrelevant. Except for the JNI case, there is no such thing as 32 vs 64-bit app/WAR/Tomcat – it’s all byte code. The difference is in which JVM it is running on (and possibly Tomcats service wrapper on Windows).

          If you are talking about JNI, I don’t know, but you may get trouble doing 32-bit JNI calls on a 64-bit JVM.

  • Hello

    I am having trouble in tomcat because of this threadlocal leak in aspectj weaver library. This is an old bug but it is still present in the latest version. Don’t know if they are willing to fix it, but there are many projects using this library (ORMs such as EclipseLink use it)…


    Would it be possible to include cleanup in a new module ?