Tillmann Seidel
How to finally delete documents in CouchDB
Image via CC from Sh4rp\_i Documents in Apache CouchDB are usually not really deleted but rather marked as such. In use cases with many document insertions and deletions, this considerably affects …
Parsing JSON responses with JMeter
Image via CC from Hades2k JSON is becoming more and more important as a data exchange format, especially in Ajax web frameworks and RESTful web services. Apache JMeter, which is a very popular tool …
Get rid of your StringUtils!
Image via CC from [Alexei Kuznetsov](https://www.flickr.com/photos/eofstr/5480421664) Probably every Java developer has developed at least one String utility class in his life. Need a proof? Feed …
Mutable variable capture in anonymous Java classes
The Java compiler requires local variables of enclosing contexts referenced in anonymous classes (so-called captured variables) to be final. What if the anonymous class wants to alter the value of the …
Invisible chaos - mastering white spaces in Eclipse
By Pöllö (Own work) [CC-BY-3.0], via Wikimedia Commons Did you ever look at a colleague’s Java source code file which contained mixed spaces and tabs for indentation, making the code completely …
UTF-8 RAP I18N
I always wanted to write a blog post with a title consisting of just acronyms and numeronyms - here it is! Obviously, this post is about internationalizing web applications based on the Eclipse Remote …
Using EasyMock class extensions in Eclipse PDE tests
EasyMock is a powerful framework to create mock objects to use in Java JUnit tests. When used in an OSGi environment (e.g. to write Eclipse PDE tests), the creation of class extensions can cause …
When an exception gets lost
Image via CC from Paul Gorbould Recently I fell into the lost exception pitfall - when an exception thrown in a try block gets lost because another exception is thrown in the finally block. It wasn’t …
Running Eclipse applications on Windows 8
Reading the title, you might ask why this could be a problem. Good news: in most cases it isn’t. However it can be problem if you use native code in your Eclipse plug-in and run on an older version of …
Use your HEAD - checking CouchDB document existence
One common task when working with CouchDB is to find out whether a document with a given ID exists. A simple solution is to send an HTTP GET request with the ID to CouchDB and check the response’s …
Creating Tomcat heap dumps on Windows
One option for detecting memory leaks in Java is the analysis of heap dumps. The first step is to create an HPROF heap dump from the running Java application, the second is the analysis of the dump …
Finding the right OSGi services using the objectclass property
Recently I wanted to use the good old ServiceTracker to get access to OSGi services registered under a specific interface and matching a given filter. I was surprised to discover that there is no …
Filtering tables in SWT/JFace
Working with tables or trees with more than a handful of rows, you quickly find that you need a way to filter or search for content, otherwise they become unusable. The Eclipse workbench offers an …
Sorting out listener implementations in Java
Recently I scanned the source code of our current Eclipse RCP/RAP project for occurrences of the Listener (or Observer) pattern. I found no less than 6 (!) different implementations and decided to …
Improving reuse of JFace Data Binding validators
JFace Data Binding allows you to attach only one validator to a binding. Putting all constraints into one validator is essentially bad design and compromises reusability. Here’s a trick for dealing …
Reducing CouchDB disk space consumption
Apache CouchDB offers high availability, excellent throughput and scalability. These goals were achieved using immutable data structures - but they have a price: disk space. CouchDB was designed under …
Using the Whiteboard Pattern with RAP
When adopting the Whiteboard Pattern for one of our Eclipse RAP based web applications, we stumbled upon a problem concerning the session scope of events. Here’s how we solved it. The Whiteboard …