Re: [appengine-java] NullPointerException at Transaction.commit()
Can you please post your model object definitions for Employee and Department? Thanks, Max On Mon, Feb 15, 2010 at 11:53 PM, sushama wrote: > import java.util.List; > > import javax.jdo.JDOHelper; > import javax.jdo.PersistenceManager; > import javax.jdo.PersistenceManagerFactory; > import javax.jdo.Transaction; > import javax.persistence.EntityManager; > import javax.persistence.EntityManagerFactory; > import javax.persistence.EntityTransaction; > import javax.persistence.Persistence; > import javax.persistence.Query; > > import com.google.gwt.user.client.Window; > import com.google.gwt.user.server.rpc.RemoteServiceServlet; > import com.wissen.enterprisebysush.client.GreetingService; > import com.wissen.enterprisebysush.server.domainobject.Department; > import com.wissen.enterprisebysush.server.domainobject.Employee; > > /** > * The server side implementation of the RPC service. > */ > @SuppressWarnings("serial") > public class GreetingServiceImpl extends RemoteServiceServlet > implements GreetingService { > >EntityManagerFactory emf = > Persistence.createEntityManagerFactory("transactions-optional"); > >public String greetServer(String input) { >String serverInfo = getServletContext().getServerInfo(); >String userAgent = getThreadLocalRequest().getHeader("User- > Agent"); >return "Hello, " + input + "!I am running " + > serverInfo + ".It looks like you are using:" + userAgent; >} > >@SuppressWarnings("unchecked") >public void addDept(String dept_name, String dept_head) { > >EntityManager em = null; > >try { >em = emf.createEntityManager(); >em.getTransaction().begin(); >Department d = new Department(); >d.setDept_name(dept_name); >d.setHead(dept_head); > >Query q = em.createQuery("select from > com.wissen.enterprisebysush.server.domainobject.Department d"); >List deptList = q.getResultList(); > >for (Department dept : deptList) { >System.out.println("Department name: " + > dept.getDept_name()); >} > >em.persist(d); > >} finally { >em.getTransaction().commit(); >em.close(); > >} > >} > >public void addEmp(String emp_name, String emp_sal, String did) { >EntityManager em = emf.createEntityManager(); >try { > > >String s = did; > >EntityTransaction transaction = em.getTransaction(); >transaction.begin(); >System.out.println("value of Department_name is::" + s); >System.out.println("Transaction is active and > is::"+transaction); > >//Query q = em.createQuery("select dept_id > from com.wissen.enterprisebysush.server.domainobject.Department d > where d.dept_name = ?1"); >//q.setParameter(1, s); >//System.out.println("Name of Department is::" > + s); >//Department dept = (Department) > q.getSingleResult(); > >Query q = em.createQuery("select from > com.wissen.enterprisebysush.server.domainobject.Department d"); >Department dept = (Department) q.getResultList().get(0); >System.out.println("Name of Department is::" + > dept.getDept_name()); > >//System.out.println("Query executed > Successfully!!" + q.getSingleResult()); >Employee e = new Employee(); >e.setEmp_name("Abdch"); >e.setEmp_sal("5000"); >e.setDepartment(dept); >em.persist(e); > >System.out.println("Transaction: " + transaction); > >transaction.commit(); >em.close(); > >} catch (NullPointerException e) { >e.printStackTrace(); >System.out.println("Exception::" + e.getCause()); >} finally { > >} >} > > } > > output:: > > > value of Department_name is::Production > Transaction is active and > is::org.datanucleus.jpa.entitytransactioni...@1a21c7d > Name of Department is::Accounts > Transaction: org.datanucleus.jpa.entitytransactioni...@1a21c7d > java.lang.NullPointerException > Exception::null at > com.google.appengine.api.datastore.KeyFactory.stringToKey(KeyFactory.java: > 181) >at > > org.datanucleus.store.appengine.DatastoreElementContainerStoreSpecialization.extractElementKey(DatastoreElementContainerStoreSpecialization.java: > 170) >at > > org.datanucleus.store.appengine.DatastoreAbstractCollectionStoreSpecialization.contains(DatastoreAbstractCollectionStoreSpecialization.java: > 57) >at > > org.datanucleus.store.mapped.scostore.AbstractCollectionStore.contains(AbstractCollectionStore.java: > 116) >at org.datanucleus.sco.backed.List.contains(List.java:455) >at > > org.datanucleus.state.RelationshipManager.processManyToOneBidirectionalRelation(RelationshipManager.java: > 690) >at > org.da
[appengine-java] NullPointerException at Transaction.commit()
import java.util.List; import javax.jdo.JDOHelper; import javax.jdo.PersistenceManager; import javax.jdo.PersistenceManagerFactory; import javax.jdo.Transaction; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import javax.persistence.Query; import com.google.gwt.user.client.Window; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import com.wissen.enterprisebysush.client.GreetingService; import com.wissen.enterprisebysush.server.domainobject.Department; import com.wissen.enterprisebysush.server.domainobject.Employee; /** * The server side implementation of the RPC service. */ @SuppressWarnings("serial") public class GreetingServiceImpl extends RemoteServiceServlet implements GreetingService { EntityManagerFactory emf = Persistence.createEntityManagerFactory("transactions-optional"); public String greetServer(String input) { String serverInfo = getServletContext().getServerInfo(); String userAgent = getThreadLocalRequest().getHeader("User- Agent"); return "Hello, " + input + "!I am running " + serverInfo + ".It looks like you are using:" + userAgent; } @SuppressWarnings("unchecked") public void addDept(String dept_name, String dept_head) { EntityManager em = null; try { em = emf.createEntityManager(); em.getTransaction().begin(); Department d = new Department(); d.setDept_name(dept_name); d.setHead(dept_head); Query q = em.createQuery("select from com.wissen.enterprisebysush.server.domainobject.Department d"); List deptList = q.getResultList(); for (Department dept : deptList) { System.out.println("Department name: " + dept.getDept_name()); } em.persist(d); } finally { em.getTransaction().commit(); em.close(); } } public void addEmp(String emp_name, String emp_sal, String did) { EntityManager em = emf.createEntityManager(); try { String s = did; EntityTransaction transaction = em.getTransaction(); transaction.begin(); System.out.println("value of Department_name is::" + s); System.out.println("Transaction is active and is::"+transaction); //Query q = em.createQuery("select dept_id from com.wissen.enterprisebysush.server.domainobject.Department d where d.dept_name = ?1"); //q.setParameter(1, s); //System.out.println("Name of Department is::" + s); //Department dept = (Department) q.getSingleResult(); Query q = em.createQuery("select from com.wissen.enterprisebysush.server.domainobject.Department d"); Department dept = (Department) q.getResultList().get(0); System.out.println("Name of Department is::" + dept.getDept_name()); //System.out.println("Query executed Successfully!!" + q.getSingleResult()); Employee e = new Employee(); e.setEmp_name("Abdch"); e.setEmp_sal("5000"); e.setDepartment(dept); em.persist(e); System.out.println("Transaction: " + transaction); transaction.commit(); em.close(); } catch (NullPointerException e) { e.printStackTrace(); System.out.println("Exception::" + e.getCause()); } finally { } } } output:: value of Department_name is::Production Transaction is active and is::org.datanucleus.jpa.entitytransactioni...@1a21c7d Name of Department is::Accounts Transaction: org.datanucleus.jpa.entitytransactioni...@1a21c7d java.lang.NullPointerException Exception::null at com.google.appengine.api.datastore.KeyFactory.stringToKey(KeyFactory.java: 181) at org.datanucleus.store.appengine.DatastoreElementContainerStoreSpecialization.extractElementKey(DatastoreElementContainerStoreSpecialization.java: 170) at org.datanucleus.store.appengine.DatastoreAbstractCollectionStoreSpecialization.contains(DatastoreAbstractCollectionStoreSpecialization.java: 57) at org.datanucleus.store.mapped.scostore.AbstractCollectionStore.contains(AbstractCollectionStore.java: 116) at org.datanucleus.sco.backed.List.contains(List.java:455) at org.datanucleus.state.RelationshipManager.processManyToOneBidirectionalRelation(RelationshipManager.java: 690) at org.datanucleus.state.RelationshipManager.process(RelationshipManager.java: 294) at org.datanucleus.state.JDOStateManagerImpl.processManagedRelations(JDOStateManagerImpl.java: 2377) at org.datanucleus.ObjectManagerImpl.performManagedRelationships(ObjectManagerImpl.java: 2706) at org.datanucleus.ObjectManagerImpl.flush(ObjectManager