Saliya's Blogs

Mostly technical stuff with some interesting moments of life

Java Strings: literal.equals(param) OR param.equals(literal)

7 comments
Comparing strings is bit tricky :) Say for an example you want to test a String reference against the literal "hello". In simple terms you have a String (say helloStr) and you want to see if the content of that is equals to "hello". You have two choices here,

1. helloStr.equals("hello")

2. "hello".equals(helloStr)

Both will do fine, but which is the better one? I've been using the second form but never thought of the difference (hmm, that's bad ;) anyway people do remember certain things bit later). In one of the code reviews at WSO2 it was revealed. The first form can lead to a Null pointer exception in the case when the helloStr is null. The second option will save you from this since the literal "hello" is not null always and you are invoking a method of a not null object. In this case even if the helloStr is actually null it doesn't matter because it'll only cause the program to check "hello" against null which results false.

If you are checking two String references then you have no option, but always try to invoke the equals() from the most probably not null reference.

Little things do matter :)

7 comments :

Post a Comment

Setup Browser in Pidgin

4 comments
After installing FF2 because I was fed up with FF3 I had to setup the default browser in Thunderbird (see my previous post). I was happy after that but today I found that I cannot open any links from Pidgin messenger as well. Argh! I was unhappy again :-/

Fixing this issue, however, was pretty much easy ;) Open Pidgin, go to Tools --> Preferences --> Network. Then you can find a button saying Configure Browser. You'll get a tool window where you can set the command you want to execute in order to open up the browser. In my case FF2 can be started by issuing firefox-2 %s

Just that. It works fine :)

4 comments :

Post a Comment

Apache TCP Monitor - How To?

4 comments
If you are searching for a tool to monitor messages that are exchanged between a client and a server, then Apache TCPMon is one of the best easy-to-use utilities available at zero cost. You can download three different flavors of this utility, i.e. standalone, IntelliJIDEA plug-in, and Eclipse plug-in. To get an in depth knowledge on how to use this nice tool see my blog post at wso2.org.

The following blog posts too give an insight into this tool.

http://charithaka.blogspot.com/2008/08/how-to-use-tcpmon-inside-eclipse.html
http://www.keith-chapman.org/2008/07/using-tcp-monitor-to-debug-web-service.html

4 comments :

Post a Comment

Internet in Two Machines

1 comment
I wanted to get the Internet connection to my notebook. The Internet facility is given by a CDMA service. So it's one machine only thing. That's bad because I need it to be given to two machines. Luckily I found this nice way of doing it from Dr. Sanjiva's blog. I'll try to find a pocket router similar to the one he has used and give it a go soon.

Anyway if you want to know about how to setup IP forwarding see the following links.

http://www.ducea.com/2006/08/01/how-to-enable-ip-forwarding-in-linux/
http://www.linuxforums.org/forum/linux-networking/64083-simple-ip-forwarding.html

1 comment :

Post a Comment

Default Browser Settings in Thunderbird

No comments
I wanted to remove FF3 (Firefox 3) and install FF2 in Ubuntu because some of the web applications didn't work well in FF3. After doing a apt-get remove for FF3 and an apt-get install for FF2 I noticed that in Thunderbird when clicked on a link in a mail, will not open up a browser tab. So the hunt began :)

The solution was to tell Thunderbird the path of the browser to open. You need to create user.js file inside your ~/.mozilla-thunderbird/xxx.default/ (the xxx means any weird set of letters and numbers, e.g. 20art4c7). Type (or edit the path as to suit your browser) the following lines into that file and save it.

user_pref("network.protocol-handler.app.ftp","/usr/bin/firefox-2");
user_pref("network.protocol-handler.app.http","/usr/bin/firefox-2");
user_pref("network.protocol-handler.app.https","/usr/bin/firefox-2");

That's it :)

No comments :

Post a Comment