Link to home
Start Free TrialLog in
Avatar of maheshvrk3
maheshvrk3Flag for India

asked on

Exception in thread "main" java.lang.NullPointerException at dao.EmployeeDao.main(EmployeeDao.java:42)

Hi,
            I am new to Hibernate3.0 as well this forum.. I am happy to be member this forum...

Right now i am learning Hibernate ..herewith i have simple written simple application
for storing the data into DB using hibernate.. while running the application i ama getting  above error..  see the code below.
1) This is My bean class
 
package Bean;
 
public class EmployeeBean 
{
	private String firstName;
	private String lastName;
	private String id;
	
	public String getFirstName()
	{
		return firstName;
	}
	
	public void setFirstName(String firstName)
	{
		this.firstName = firstName;
	}
	
	public String getLastName()
	{
		return lastName;
	}
	
	public void setLastName(String lastName)
	{
		this.lastName = lastName;
	}
	
	public String getId()
	{
		return id;
	}
	
	public void setId(String id)
	{
		this.id = id;
	}
 
}
 
 
2) I have created Table called Employee  using oracle with filed names Id,FirstName, LastName
 
 
3) this is mY DAo class for storing the inot database
 
 
package dao;
 
 
import org.hibernate.SessionFactory;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import Bean.EmployeeBean;
 
 
public class EmployeeDao 
{
	public static void main(String[] args)
	{
		Session sesssion = null;
		
		try
		  {
			 
			// Configuration configuration = new  Configuration();
			
			 SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
		
			 sesssion = sessionFactory.openSession();
			
			 System.out.println("Inserting   Record ");
			 EmployeeBean employeeBean = new  EmployeeBean();
			 employeeBean.setId("350");
			 employeeBean.setFirstName("Mahesh");
			 employeeBean.setLastName("Kuppusamy");
			 sesssion.save(employeeBean);
		  }
		
		catch (Exception e) 
		 {
			    
				System.out.println(e.getMessage());
		 }
		finally
		{
		  // Actual insert will happen here
			
			sesssion.flush();
			sesssion.close(); 
		}
		
		
	}
 
}
 
 
4) see the EmployeeAdd.hbm.xml here
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Jun 4, 2008 2:00:58 AM by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping default-lazy="false">
    <class name="Bean.EmployeeBean" table="Employee"  select-before-update="true">
    
        <id name="id" type="string">
            <column name="Id" length="3" />
            <generator class="assigned" />
        </id>
        
        <property name="firstName" type="string">
            <column name="FirstName" length="5" not-null="true"/>
  		</property>                 
  		
        <property name="lastName" type="string">
        	<column name="LastName" length="5" not-null="true" />
        </property>
               
        </class>
</hibernate-mapping>
 
 
5) see the hibernate.cfg.xml
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
		"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<!-- =============================================================== -->
		<!--                        SQL SERVER DIALECT                       -->
		<!-- =============================================================== -->
	
		<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
		<property name="hibernate.connection.username">system</property>
        <property name="hibernate.connection.password">tspl</property>
        <property name="hibernate.connection.pool_size">10</property>
        <property name="show_sql">true</property>
		<property name="dialect">org.hibernate.dialect.OracleDialect</property>
		<property name="hibernate.hbm2ddl.auto">update</property>
 
 
		<!-- =============================================================== -->
		<!--                      HIBERNATE MAPPINGS                         -->
		<!-- =============================================================== -->
		
		<mapping resource="xbm/EmployeeAdd.hbm.xml"/>
		
	 	</session-factory>
</hibernate-configuration>

Open in new window

Avatar of Bart Cremers
Bart Cremers
Flag of Belgium image

If I'm counting lines correctly, it's the "sesssion.flush()" which throws the NullPointer. This means your session did not get initialized. I think there's another exception thrown before.

Change the catch to:

}
catch (Exception e) {
    e.printStackTrace();
}
Avatar of a_b
a_b

Can you post the full stack trace?
Avatar of maheshvrk3

ASKER

I  have changed the catch statement to

catch (Exception e)
{
 e.printStackTrace();

 }

 Still i am getting the same Error

Exception in thread "main" java.lang.NullPointerException
      at dao.EmployeeDao.main(EmployeeDao.java:43)
Herewith i ahve attached the sanpshot
Cannot see the snapshot.
Herewith i ahve attached the sanpshot


stackTrace.doc
Please share the solution with us.
ASKER CERTIFIED SOLUTION
Avatar of maheshvrk3
maheshvrk3
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Solution to this issues is

add the following  conditon in the finally

finally(
                         {
          if(session==null)
              sesssion.flush();
         sesssion.close();
}
      }

           
As i  have added the solution for this issue.. proceedong to close the question...