Before you ask, I don’t think anything’s wrong with object-oriented programming. But recently I’ve attended an interesting talk at the JAX conference. By the look of it, the speaker, Manuel Mauky, wasn’t happy with object-oriented programming. Instead, he propagated functional programming and Redux. While I don’t agree with him, I considered his reasoning compelling. I’ll […]
There are all these wonderful tools for profiling Java programs. JVisualVM, JProfiler, Mission Control and the Flight recorder, jhat, just to name a few. Yet every once in a while, you can’t use any of them, for one reason or another. Where do we go from here? How come there’s no profiler? The situation is […]
Everybody believes I’m diligent but I’m not. I just know how to make Eclipse do my work. It’s got so many little helpers built-in, it almost feels like an additional team member. Read on to catch some tricks you might not know yet.
Java developers must be patient. To an incredible extent. Mind you, back in the mid-90s IBM invented Hot Code Replacement to distract from how slow their WebSphere Application Server was at the time. It took several minutes to start the application server and to deploy an application. This resulted in very slow turn-around cycles. In […]
JEE servers tend to create quite a few threads. Sometimes you are looking for a very slow algorithm, maybe even an infinite loop. You don’t know where to find it beforehand, so chances are you didn’t set a breakpoint. At other times the situation is even worse: the infinite loop occurred in a production environment, […]
Have a look at the code snippet without looking at the code. Today it’s not the code I’m interested in. Just look at the left margin. How many symbols do you recognize?
Did you ever look where a stack trace really comes from? You might say it is created where an error occurs. Or you might say the stack trace printout shows the precise line where the exception is thrown. Surprisingly, this is not the case.
A particularly nice feature of the Java language is Introspection. Chances are you are familiar with reflection, being the most popular API that allows a program to analyze itself. But Java doesn’t stop there. This article shows you how easy it is to find out where you are – or rather, where your JVM’s program […]
Today I’ve been debugging a method that uses an aspect woven around it. AspectJ confused me a lot: it made me believe the aspect wasn’t woven around the method at all. But it was woven indeed, as I realized a couple of hours later. Let’s look at the caveat, and why it exists.
Imagine a web server that runs out of memory. Even without running an application. Sounds absurd? Well, that’s exactly what my team and I observe since a couple of weeks.