I’ve been hosting this server on an EC2 instance since New Year. Over the long weekend I decided to upgrade it to Ubuntu 10.04. When all the upgrade is done and the instance is restarted, I find myself locked out of the server – can’t ssh, can’t even ping. The instance actually fails to boot up (I found out about that by attaching the root volume to another instance and examining the logs). So it’s clearly a mismatching kernel issue – the instance still boots with the 9.10 stock kernel, which wouldn’t work when the rest of the system has been upgraded to 10.04.

When publishing a module, Ivy:deliver (and in turn, publish) has the ability to replace dynamic dependency revisions (e.g. ranges like “2.5+”) with the specific revisions resolved. One thing that is not very obvious is that, since the task relies on the latest resolve results to figure out what exactly those dynamic revisions are resolved to, if the latest resolve is a partial one – meaning only some of the confs are resolved, ivy:deliver may not be able to see all the resolved revisions.

I discovered this when I changed my build script to only resolve ‘master’ before publishing a snapshot to a local repo, because I wanted local publishes to be extremely fast. I guess it’s ok for local snapshots to carry dynamic revisions, but it’s probably a good idea to always do a full resolve before publishing a release.

I put together an Ant task(download) that can use the result of the ivy:resolve task to maintain Eclipse’s .classpath file. If your ivy:resolve also generates references to the source jars, this task will also attach them to the corresponding classpath entries in the .classpath file. more…

Question: how do you not want to start an unseasonably cold Northern Virginia winter morning?
Answer: have some chill down the spine when you fire up Eclipse on your Mac Book Pro Toy(tm), only to get hit by this mysterious error message:

As the initial “oh crap now we don’t have Bush to blame it on” panic settles in, you realize since the last time Eclipse ran fine, you did go in there and tinkered with that “CurrentJDK” stuff, so that JDK 1.6 instead of 1.5 would be the default.

So you start googling frantically and find, through the first link returned, this neat solution by rkischuk. The only difference is that the file you have to edit is located at:
${ECLIPSE_HOME}/Eclipse.app/Contents/Info.plist

Fortunately I have a Nexus repository as the aggregator/proxy to all the external repositories. Brian from the Nexus IRC room pointed me to this solution/workaround: add the fixed maven-metadata.xml to a repo hosted by Nexus – e.g., the “3rd Party” repo coming out of box in Nexus. Then create a group to aggregate the 3rd Party and the public Ibiblio repos. The “virtual” group repo will automatically create a merged maven-metadata.xml on the fly whenever it is requested.

On a project I’m working on, I’ve got one abstract base class and two subclasses, which are mapped to one same table, with a single character column as the discriminator. I got this error when Hibernate initializes:

Turns out if the discriminator type is “character”, the base class must have a discriminator-value attribute declared, even though obviously due to the abstractness there will never be any row carrying that discriminator value. And apparently for “string” type discriminators, there isn’t such a limitation.

This has happened to me for a while every time after I build and install the latest git, but I didn’t really get to the bottom of it until just now. My tinfoil hat umask setting, 0027, finally came around and bit me! more…

I was planning on giving it a week before upgrading my desktop to the new Ubuntu 8.10 Intrepid Ibex, but couldn’t find better things to do on the mild sunny classic Virginian Saturday afternoon than hunching over a computer in the darkest corner of a basement… more…

I tried Eclim some time last year. I thought the idea of tackling the eclipse/vim-integration situation from a completely different angle was very clever, but the implementation wasn’t quite there. I couldn’t even get through the installation. more…