Hi, The cause of your issue is defined by the line "Caused by: javax.jdo.JDOException: Error creating the MetaDataManager for API "JDO""
When you start googling this, you find quite a lot of issues related to JDO implementation itself: maybe you face one of those bugs. JDO in GAE is based on Datanucleus open source package: further dev of this package is currently under scrutiny by Google. See http://groups.google.com/group/google-appengine-java/browse_thread/thread/defc6d14445318b8/75a1e7b5bcbc1bb3#75a1e7b5bcbc1bb3 (especially messages by Ikai Lan from Google) So, maybe it is good time for you to see what 3rd party packages like Objectify and others you can use to replace JDO. regards didier On Jan 1, 8:13 pm, "Tadas ?ubonis" <tadas.subo...@gmail.com> wrote: > I am getting this error (stacktrace). getMessage() returns null from > exception... How should I identify where problem lies? > I am getting this error when trying to save object with "makePersistent". > Googled a lot and still no clues... :/ > > 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.tools.development.agent.runtime.Runtime. > invoke(Runtime.java:100) > at com.dblog.server.core.FrontController._handle(FrontController. > java:73) > at com.dblog.server.core.FrontController.doPost(FrontController.java > :33) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java > :511) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter( > ServletHandler.java:1166) > at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter( > ServeBlobFilter.java:58) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter( > ServletHandler.java:1157) > at com.google.apphosting.utils.servlet.TransactionCleanupFilter. > doFilter(TransactionCleanupFilter.java: > 43) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter( > ServletHandler.java:1157) > at com.google.appengine.tools.development.StaticFileFilter.doFilter( > StaticFileFilter.java:122) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter( > ServletHandler.java:1157) > at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler. > java:388) > 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.handler.HandlerWrapper.handle(HandlerWrapper. > java:152) > at com.google.appengine.tools.development. > JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:349) > at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper. > java:152) > at org.mortbay.jetty.Server.handle(Server.java:326) > at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection. > java:542) > at org.mortbay.jetty.HttpConnection$RequestHandler.content( > HttpConnection.java:938) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > at org.mortbay.io.nio.SelectChannelEndPoint.run( > SelectChannelEndPoint.java:409) > at org.mortbay.thread.QueuedThreadPool$PoolThread.run( > QueuedThreadPool.java:582) > Caused by: javax.jdo.JDOException: Error creating the MetaDataManager for > API "JDO" : > NestedThrowables: > java.lang.reflect.InvocationTargetException > at org.datanucleus.jdo.NucleusJDOHelper. > getJDOExceptionForNucleusException(NucleusJDOHelper.java:419) > at org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent( > JDOPersistenceManager.java:674) > at org.datanucleus.jdo.JDOPersistenceManager.makePersistent( > JDOPersistenceManager.java:694) > at com.dblog.server.blog.Controller.newAction(Controller.java:75) > ... 34 more > Caused by: java.lang.reflect.InvocationTargetException > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at sun.reflect.NativeConstructorAccessorImpl.newInstance( > NativeConstructorAccessorImpl.java:39) > at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( > DelegatingConstructorAccessorImpl.java:27) > > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at com.google.appengine.tools.development.agent.runtime.Runtime. > newInstance_(Runtime.java:112) > at com.google.appengine.tools.development.agent.runtime.Runtime. > newInstance(Runtime.java:120) > at org.datanucleus.plugin.NonManagedPluginRegistry. > createExecutableExtension(NonManagedPluginRegistry.j > ava:572) > at org.datanucleus.store.appengine.DatastorePluginRegistry. > createExecutableExtension(DatastorePluginReg > istry.java:124) > at org.datanucleus.plugin.PluginManager.createExecutableExtension( > PluginManager.java:324) > at org.datanucleus.OMFContext.getMetaDataManager(OMFContext.java:469 > ) > at org.datanucleus.ObjectManagerImpl.getMetaDataManager( > ObjectManagerImpl.java:407) > at org.datanucleus.ObjectManagerImpl. > hasPersistenceInformationForClass(ObjectManagerImpl.java:3974) > at org.datanucleus.ObjectManagerImpl.assertClassPersistable( > ObjectManagerImpl.java:3892) > at org.datanucleus.ObjectManagerImpl.persistObjectInternal( > ObjectManagerImpl.java:1240) > at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl > .java:1175) > at org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent( > JDOPersistenceManager.java:669) > ... 36 more > Caused by: java.lang.NullPointerException > at org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager. > shouldBeInDefaultFetchGroup(Datastor > eJDOMetaDataManager.java:167) > at org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager. > shouldBeInDefaultFetchGroup(Datastor > eJDOMetaDataManager.java:167) > at org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager. > populateAbstractClassMetaData(Datast > oreJDOMetaDataManager.java:153) > at org.datanucleus.metadata.MetaDataManager.populateFileMetaData( > MetaDataManager.java:2148) > at org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass( > MetaDataManager.java:2289) > at org.datanucleus.jdo.metadata.JDOMetaDataManager. > getMetaDataForClassInternal(JDOMetaDataManager.java: > 369) > at org.datanucleus.jdo.metadata. > JDOMetaDataManager$MetaDataRegisterClassListener.registerClass( > JDOMetaDataManager.java:184) > at javax.jdo.spi.JDOImplHelper.addRegisterClassListener( > JDOImplHelper.java:462) > at org.datanucleus.jdo.metadata.JDOMetaDataManager.<init>( > JDOMetaDataManager.java:171) > at org.datanucleus.store.appengine.jdo.DatastoreJDOMetaDataManager.< > init>(DatastoreJDOMetaDataManager.java:136) > ... 52 more -- 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-j...@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.