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.