Archive for the ‘Java’ Category

Equals confusion in Java

Wednesday, December 23rd, 2015

My article about pretty basic, but important concept in Java: do-s and don’t-s when implementing the equals() method on objects

Definitely a thing every good developer must know :)

Java – print stack trace to a String

Thursday, February 25th, 2010

Simple and quick one today – what if we need to print stack trace into a String?

[java]

catch (Exception e) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
pw.flush();

String stackTraceString = sw.toString();
//use the stackTraceString as you need…
}

[/java]

Instantiating Beehive JdbcControl manually

Thursday, February 18th, 2010

Common usage pattern for Beehive Jdbc control is:

  • Create DB control class by extending JdbcControl
  • Declare DB control variable in page controller and use @Control annotation to have it automatically instantiated and injected
  • Use the DB control

The above works fine. But what happens if we would like to use our DB control class from within JSP page which is not part of our Beehive application and has no access to our controller?

The following text presents one possible approach.

(more…)

Quick ‘n’ dirty – manipulate GIF in Java

Tuesday, March 11th, 2008

I needed to directly modify pixel values of several images in a special way. First, I looked into Gimp’s Script-Fu functionality, but this seemed too complicated for what I needed so I decided to write such one-off utility in Java.

It simply reads all GIF images in specified directory, does some custom transformation of pixels, and then writes images back onto disk. It is really quick’n’dirty so be warned :-)

Source code: ImageManipulation.java

Oracle CLOB / BLOB & Spring

Sunday, February 24th, 2008

Reading and writing CLOBs and BLOBs from/to Oracle database via Spring’s JdbcTemplate might be a little bit confusing as it significantly differs from dealing with other types. Interested? Read on… :-)

(more…)

OC4J, Spring and messaging

Wednesday, February 6th, 2008

I ran into several issues during the development of an application which is to be run in OC4J 10.1.3.1 and needs to use SOAP web services and Oracle AQ (Advanced Queueing) messaging:

  • Classpath hell debugging
  • Oracle XML parser crashes on SOAP response
  • Using custom AQ message payload (Oracle ADT message)

If anyone encountered such problems, read the rest of the article for tips and solutions.

(more…)

Tips on developing Eclipse plugins – VII.

Monday, February 4th, 2008

Have you ever wondered how to:

  • Run some code on plugin startup?
  • Set text file encoding?

If the answer to any of these questions is yes, be sure to read on!

(more…)

Tips on developing Eclipse plugins – VI. – Automatic exception reporting to Bugzilla

Wednesday, January 23rd, 2008

Bugzilla is well known bug tracking software. I would like to show simple solution on how to implement automatic submitting of uncaught exceptions (caused or somehow connected with our code) to company Bugzilla system.

(more…)

Tweaking XOM parser – element position support

Tuesday, January 22nd, 2008

XOM parser is a great piece of code. I was missing just one feature – to be able to get position of element in source file (line and column). So I did a quick and dirty hack resulting in two new nu.xom.Element methods: getLineNumber() and getColumnNumber().

(more…)

Tips on developing Eclipse plugins – V.

Monday, January 21st, 2008

Complex systems usually need some kind of asynchronous messaging and caching for better performance. And yes, that’s pretty much what this article is about. Let’s dive into the following issues:

  • Custom event listeners
  • Soft reference cache
  • Preventing memory leaks when using cached objects & listeners

(more…)