Thursday, July 26, 2012

Recuva - Undelete, Unerase, File and Disk Recovery

Recuva screenshot

There is an excellent freeware tool for recovering lost data called Recuva.
With this tool, you can recover accidentally deleted files, from your Windows computer for FREE!

It's simple and easy to use.

Wednesday, July 25, 2012

mvnrepository.com

Are you looking for a Maven Repository? You've found it here!


A good Maven Repository, where artifacts can be searched, is http://mvnrepository.com/.
This site also shows the dependencies and the search also supports searching by description or group.

Thursday, June 7, 2012

Sonar or FindBugs Critical issue: Performance - Method concatenates strings using + in a loop

This issue arises when there is a String being built in a concatenation loop.
For each iteration, the String is converted to a StringBuffer/StringBuilder, appended to, and converted back to a String. This can lead to a cost quadratic in the number of iterations, as the growing string is recopied in each iteration.

Better performance can be obtained by using a StringBuffer (or StringBuilder in Java 1.5) explicitly.

For example:


// This is bad
String s = "";
for (int i = 0; i < field.length; ++i) {
   s = s + field[i];
}


// This is better - StringBuffer is synchronized
StringBuffer buf = new StringBuffer();
for (int i = 0; i < field.length; ++i) {
   buf.append(field[i]);
}
String s = buf.toString();



//Even better - better performance if synchronization is not an issue
StringBuilder builder = new StringBuilder();

for (int i = 0; i < field.length; ++i) {
   builder.append(field[i]);
}
String s = builder.toString(); 

Eclipse - Failed to load the JNI shared library

Eclipse started to fail during the opening of it, showing a pop-up window saying "Failed to load the JNI shared library". I did not know what was this and started to look on the web.

Eclipse failed to load the JNI shared library
Eclipse "Failed to Load the JNI shared library"

I've found out that this was a compatibility issue with jre/jdk 32 bit on a 64 bit machine.
I was running Eclipse 64 bit, with Windows 7 64 bit...
I remembered that I had installed a new software recently... and that installation added a jre 32 bit in the begining of my path. Due to this, Eclipse 64bit was being launched with a 32bit jre, causing that pop-up to appear.
Removed the jre 32 bit from the path, and then I was able to launch Eclipse again, like before!

Problem solved.

Wednesday, May 23, 2012

Sonar: Security - Array is stored directly

When we get this Sonar critical violation "Security - Array is stored directly", means that an array is being stored directly, e.g:

public void setInventoryClassId(String[] inventoryClassId) {
  this.inventoryClassId = inventoryClassId;
}

In order to solve this issue, we must do the following:


public void setInventoryClassId(String[] newInventoryClassId) {
  if(newInventoryClassId == null) {
    this.inventoryClassId = new String[0];
  } else {
   this.inventoryClassId = Arrays.copyOf(newInventoryClassId, newInventoryClassId.length);
  }
}

Tuesday, May 22, 2012

Convert String to int

What is the best way to convert the String Object that represents a int value to the primitive type int? Just follow this suggestion, that takes advantage of the parseInt method of the Integer object:

String strValue = "1";
int intValue = Integer.parseInt(strValue);

Convert int to String

What is the best way to convert the primitive type int to a String object?

int intValue = 1;
String stringValue = Integer.toString(intValue);