I have a Dao class that extract some records filtered by userId field.

the code is:

Query query=pm.newQuery("select from "+ Customer.class.getName()+" where 
userId == userIdParam parameters String userIdParam");

List<Customer> customers=(List<Customer>) query.execute(userId);

but when i use the list customers in jsp page it throws an exception:

Object Manager has been closed

org.datanucleus.exceptions.NucleusUserException: Object Manager has been 
closed

at 
org.datanucleus.ObjectManagerImpl.assertIsOpen(ObjectManagerImpl.java:3876)

at 
org.datanucleus.ObjectManagerImpl.getFetchPlan(ObjectManagerImpl.java:376)

at org.datanucleus.store.query.Query.getFetchPlan(Query.java:497)

at 
org.datanucleus.store.appengine.query.DatastoreQuery$6.apply(DatastoreQuery.java:631)

at 
org.datanucleus.store.appengine.query.DatastoreQuery$6.apply(DatastoreQuery.java:630)

at 
org.datanucleus.store.appengine.query.LazyResult.resolveNext(LazyResult.java:94)

at 
org.datanucleus.store.appengine.query.LazyResult.resolveAll(LazyResult.java:116)

at 
org.datanucleus.store.appengine.query.LazyResult.size(LazyResult.java:110)

at 
org.datanucleus.store.appengine.query.StreamingQueryResult.size(StreamingQueryResult.java:124)

at org.apache.jsp.videos_jsp._jspService(customers_jsp.java:88)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)

at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

at 
com.google.appengine.tools.development.PrivilegedJspServlet.access$101(PrivilegedJspServlet.java:23)

at 
com.google.appengine.tools.development.PrivilegedJspServlet$2.run(PrivilegedJspServlet.java:59)

at java.security.AccessController.doPrivileged(Native Method)

at 
com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:57)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)

at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)

at 
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)

at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327)

at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)

Although the records to be extracted exist in the database (with the userId 
specified as parameter of query), the list customer (before that i put it in 
HttpSession) is empty (its size is -1 or 0).
>From the logs, it seems that the error is in jsp.
The code that i use in jsp is:

<div id="content-body">

<%@ page import="model.Customer,java.util.*" %>

<% List<YouTubeVideo> customers=(List<Customer>) 
session.getAttribute("customers");

if (customers.size()>0 || customers != null ){

out.print(customers.size());

for (Customer customer: customers){%>

<div><%=customer.getName() %></div>

<% }

}%>

</div>

Why this strangeness?
Is the query wrong?
 
 

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to