Featured Post

The great debacle of healthcare.gov

This is the first time in history when the president of the United States of America, or probably for any head of state around the world,...

Friday, March 21, 2008

Software Configuration Management (SCM) evalutation

I've used three different SCM or versions systems so far and those are Visual Source Safe (VSS, Microsoft has now changed the name), Concurrent Versions System (CVS) and Rational Clear Case. In the current project We're using Clear Case in our current project. It is to mention that I primarily am a user of these tools rather administration.

Clear Case

  1. Rebasing development stream with integration stream is a cool feature. I can revert the rebase back to my original stream if I don't feel happy after testing it. This is unlike CVS Update. Yes, the condition is applied: test it before hitting confirm button.
  2. Dynamic view gives me the chance to get the code without copying in my local disk though it is bit slow.
  3. In CC UCM, the changed classes are associated with the defect fix. But this process is really slow. In CVS and Bugzilla, we used to enter the name of fixed classes inside the fix note and that was hard to trace and manage.
  4. CC has a long learning curve. I had spent couple weeks to understand the concept of it when used for the first time.Publish Post
  5. Recommending a baseline is an idea that I liked in CC.
  6. Though the use of multi site has limitations, because of the way it's been designed, but it is helpful in projects which follow onshore - offshore development model.
  7. If your deliver operation follows by an unsuccessful rebase operation, not necessarily the rebase could fail only because of your action but sometime it could happen without giving you any clue of the reason, then the delivery and rebase forms a deadlock. The only solution is to remove the files versions of the last rebase, either using command line or clear case explorer, to continue to deliver from the development stream to integration stream
Resources

http://clearcase.weintraubworld.net/ - I liked the logo of the site especially
http://ask.slashdot.org/article.pl?sid=01/01/03/0319217&tid=128&tid=4 - It has a real stories of real life users
http://www.cg-soft.com/faq/clearcase.html#1.2.12

Thursday, March 20, 2008

Weird exceptions

Weird 1.
While integrating Spring with Struts, I had done a mistake in entering property name in the plug-in tag. Instead of property="contextConfigLocation" I typed "contextConfigurationLocation" and that caused me the below exception while starting the server:

Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/action-servlet.xml]

Weird 2.
I had to fix my code after I faced below exceptions on Jan 28, 2008 because I had forgot to enter closing double quote while enclosing the include directive file name.

javax.servlet.ServletException: /WEB-INF/jsp/edit.jsp(2,25) Attribute has no value
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:416
)

Wednesday, March 5, 2008

Oracle JDBC driver 9.2.0.1 bug

The following exception throws while batch updating using Hibernate 3.x with JDBC driver 9.2.0.1:

java.lang.NullPointerException
at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:431)
at oracle.jdbc.dbaccess.DBDataSetImpl.clearItem(DBDataSetImpl.java:3528)
at oracle.jdbc.driver.OraclePreparedStatement.clearParameters(OraclePreparedStatement.java:3401)

I found the solution from a posting in Oracle forum (http://forums.oracle.com/forums/thread.jspa?threadID=190963) and that says:

Oracle seems to have corrected one line in in
oracle.jdbc.dbaccess.DBData, method void clearItem(int i)

version 9.2.0.1:
if(m_items == null && i >= m_items.length) {

version 9.2.0.3:
if(m_items == null || i >= m_items.length) {

----
Another way to avoid this NPE is to avoid using the JDBC2 batch update feature.
For our (hibernate) implementation this corresponds to setting the property 'jdbc.batch_size' to zero.