I am having trouble saving an object on google app engine. Here is my
POJO class:

package subasta.domain.users;

import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.PrimaryKey;
import javax.jdo.annotations.Persistent;

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class User {
    @PrimaryKey
    @Persistent
    private String nombre;

    public User(String nombre){
        this.nombre = nombre;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
}

Here is my JDO Code.:

package subasta.repository.users;

import java.util.Set;
import java.util.logging.Logger;

import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManagerFactory;
import javax.jdo.PersistenceManager;

import subasta.domain.users.User;

public class JDOUserDAO implements UserDAO{
    /** Logger for this class and subclasses */
    private static final Logger log = Logger.getLogger(UserDAO.class
            .getName());

    private static final PersistenceManagerFactory pmf =
        JDOHelper.getPersistenceManagerFactory("transactions-
optional");

    //PersistenceManagerFactory pmf;

    //public void setPmf(PersistenceManagerFactory pmf) {
        //this.pmf = pmf;
    //}

    public void saveUser(User user){
        PersistenceManager pm = pmf.getPersistenceManager();
        try{
            pm.makePersistent(user);
        }finally {
            pm.close();
        }
    }

    @SuppressWarnings("unchecked")
    public Set<User> getUsers(){
        PersistenceManager pm = pmf.getPersistenceManager();
        Set<User> users = (Set<User>)pm.getManagedObjects
(User.class);
        pm.close();
        return users;
    }
}

Things go wrong when making the call to makePersistent. The exception
is:

08-sep-2009 16:51:35
com.google.appengine.repackaged.com.google.common.base.FinalizableReferenceQueue
<init>
INFO: Failed to start reference finalizer thread. Reference cleanup
will only occur when new references are created.
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at
com.google.appengine.repackaged.com.google.common.base.FinalizableReferenceQueue.<init>
(FinalizableReferenceQueue.java:124)
    at
com.google.appengine.repackaged.com.google.common.labs.misc.InterningPools
$WeakInterningPool.<clinit>(InterningPools.java:104)
    at
com.google.appengine.repackaged.com.google.common.labs.misc.InterningPools.newWeakInterningPool
(InterningPools.java:48)
    at
com.google.appengine.repackaged.com.google.io.protocol.ProtocolSupport.<clinit>
(ProtocolSupport.java:55)
    at com.google.apphosting.api.DatastorePb$PutRequest.freeze
(DatastorePb.java:8452)
    at com.google.apphosting.api.DatastorePb$PutRequest$1.<init>
(DatastorePb.java:8367)
    at com.google.apphosting.api.DatastorePb$PutRequest.<clinit>
(DatastorePb.java:8364)
    at com.google.appengine.api.datastore.DatastoreServiceImpl.put
(DatastoreServiceImpl.java:152)
    at com.google.appengine.api.datastore.DatastoreServiceImpl.put
(DatastoreServiceImpl.java:138)
    at com.google.appengine.api.datastore.DatastoreServiceImpl.put
(DatastoreServiceImpl.java:130)
    at
org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.put
(RuntimeExceptionWrappingDatastoreService.java:93)
    at org.datanucleus.store.appengine.DatastorePersistenceHandler.put
(DatastorePersistenceHandler.java:165)
    at org.datanucleus.store.appengine.DatastorePersistenceHandler.put
(DatastorePersistenceHandler.java:112)
    at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects
(DatastorePersistenceHandler.java:239)
    at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObject
(DatastorePersistenceHandler.java:225)
    at org.datanucleus.state.JDOStateManagerImpl.internalMakePersistent
(JDOStateManagerImpl.java:3185)
    at org.datanucleus.state.JDOStateManagerImpl.makePersistent
(JDOStateManagerImpl.java:3161)
    at org.datanucleus.ObjectManagerImpl.persistObjectInternal
(ObjectManagerImpl.java:1298)
    at org.datanucleus.ObjectManagerImpl.persistObject
(ObjectManagerImpl.java:1175)
    at org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent
(JDOPersistenceManager.java:669)
    at org.datanucleus.jdo.JDOPersistenceManager.makePersistent
(JDOPersistenceManager.java:694)
    at subasta.repository.users.JDOUserDAO.saveUser(JDOUserDAO.java:
29)
    at subasta.web.users.RegisterController.onSubmit
(RegisterController.java:38)
    at
org.springframework.web.servlet.mvc.SimpleFormController.onSubmit
(SimpleFormController.java:409)
    at
org.springframework.web.servlet.mvc.SimpleFormController.onSubmit
(SimpleFormController.java:381)
    at
org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission
(SimpleFormController.java:267)
    at
org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal
(AbstractFormController.java:265)
    at
org.springframework.web.servlet.mvc.AbstractController.handleRequest
(AbstractController.java:153)
    at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle
(SimpleControllerHandlerAdapter.java:48)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch
(DispatcherServlet.java:875)
    at org.springframework.web.servlet.DispatcherServlet.doService
(DispatcherServlet.java:807)
    at org.springframework.web.servlet.FrameworkServlet.processRequest
(FrameworkServlet.java:571)
    at org.springframework.web.servlet.FrameworkServlet.doPost
(FrameworkServlet.java:511)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
    at org.mortbay.jetty.servlet.ServletHolder.handle
(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1093)
    at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
    at com.google.appengine.tools.development.StaticFileFilter.doFilter
(StaticFileFilter.java:121)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
    at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:360)
    at org.mortbay.jetty.security.SecurityHandler.handle
(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle
(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle
(ContextHandler.java:712)
    at org.mortbay.jetty.webapp.WebAppContext.handle
(WebAppContext.java:405)
    at
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle
(DevAppEngineWebAppContext.java:54)
    at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
    at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:313)
    at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
    at org.mortbay.jetty.Server.handle(Server.java:313)
    at org.mortbay.jetty.HttpConnection.handleRequest
(HttpConnection.java:506)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content
(HttpConnection.java:844)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:
205)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:
381)
    at org.mortbay.io.nio.SelectChannelEndPoint.run
(SelectChannelEndPoint.java:396)
    at org.mortbay.thread.BoundedThreadPool$PoolThread.run
(BoundedThreadPool.java:442)
Caused by: java.security.AccessControlException: access denied
(java.lang.RuntimePermission modifyThreadGroup)
    at java.security.AccessControlContext.checkPermission
(AccessControlContext.java:323)
    at java.security.AccessController.checkPermission
(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:
532)
    at com.google.appengine.tools.development.DevAppServerFactory
$CustomSecurityManager.checkPermission(DevAppServerFactory.java:139)
    at com.google.appengine.tools.development.DevAppServerFactory
$CustomSecurityManager.checkAccess(DevAppServerFactory.java:166)
    at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:288)
    at java.lang.Thread.init(Thread.java:332)
    at java.lang.Thread.<init>(Thread.java:419)
    at
com.google.appengine.repackaged.com.google.common.base.internal.Finalizer.<init>
(Finalizer.java:96)
    at
com.google.appengine.repackaged.com.google.common.base.internal.Finalizer.startFinalizer
(Finalizer.java:82)
    ... 62 more


I have tried google and nothing. Does anybody know what Im doing
wrong? Thanks.




--~--~---------~--~----~------------~-------~--~----~
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 google-appengine-java@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to