i got a problem when i use sdk1.3.1 with compass2.3.0: Nested in org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compass' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: java.lang.IllegalArgumentException at com.google.appengine.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:74) at com.google.appengine.api.datastore.dev.LocalDatastoreService.getOrCreateProfile(LocalDatastoreService.java:1088) at com.google.appengine.api.datastore.dev.LocalDatastoreService.beginTransaction(LocalDatastoreService.java:883) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.appengine.tools.development.ApiProxyLocalImpl.makeSyncCall(ApiProxyLocalImpl.java:124) at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:98) at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:48) at com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall(DatastoreApiHelper.java:52) at com.google.appengine.api.datastore.DatastoreServiceImpl.beginTransaction(DatastoreServiceImpl.java:516) at org.compass.needle.gae.GoogleAppEngineDirectory.doInTransaction(GoogleAppEngineDirectory.java:434) at org.compass.needle.gae.GoogleAppEngineLockFactory$GoogleAppEngineLock.doRelease(GoogleAppEngineLockFactory.java:132) at org.compass.needle.gae.GoogleAppEngineLockFactory$GoogleAppEngineLock.access$000(GoogleAppEngineLockFactory.java:53) at org.compass.needle.gae.GoogleAppEngineLockFactory.clearLock(GoogleAppEngineLockFactory.java:50) at org.apache.lucene.store.Directory.clearLock(Directory.java:122) at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1066) at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:686) at org.compass.core.lucene.engine.store.DefaultLuceneSearchEngineStore.createIndex(DefaultLuceneSearchEngineStore.java:507) at org.compass.core.lucene.engine.store.DefaultLuceneSearchEngineStore.verifyIndex(DefaultLuceneSearchEngineStore.java:546) at org.compass.core.lucene.engine.store.DefaultLuceneSearchEngineStore.verifyIndex(DefaultLuceneSearchEngineStore.java:541) at org.compass.core.lucene.engine.store.DefaultLuceneSearchEngineStore.verifyIndex(DefaultLuceneSearchEngineStore.java:533) at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager$4.doInTransaction(DefaultLuceneSearchEngineIndexManager.java:169) at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager$4.doInTransaction(DefaultLuceneSearchEngineIndexManager.java:167) at org.compass.core.impl.DefaultCompass$CompassTransactionContext.execute(DefaultCompass.java:428) at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.verifyIndex(DefaultLuceneSearchEngineIndexManager.java:166) at org.compass.core.impl.DefaultCompass.<init>(DefaultCompass.java:164) at org.compass.core.impl.DefaultCompass.<init>(DefaultCompass.java:123) at org.compass.core.impl.DefaultCompass.<init>(DefaultCompass.java:116) at org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:288) at org.compass.spring.LocalCompassBean.newCompass(LocalCompassBean.java:414) at org.compass.spring.LocalCompassBean.afterPropertiesSet(LocalCompassBean.java:404) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1288) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1257) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:438) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:383) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:353) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:394) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:530) at org.mortbay.jetty.servlet.Context.startContext(Context.java:135) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117) at org.mortbay.jetty.Server.doStart(Server.java:217) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188) at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:147) at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:219) at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:162) at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48) at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113) at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
On Thu, Feb 11, 2010 at 10:29 AM, John Patterson <jdpatter...@gmail.com>wrote: > Very cool! Can't wait to replace my paging code with Cursors > > Was Async Url Fetch for Java included in this release? > > On 11 Feb 2010, at 06:15, Ikai L (Google) wrote: > > Check it out! > > > http://googleappengine.blogspot.com/2010/02/app-engine-sdk-131-including-major.html > > > <http://googleappengine.blogspot.com/2010/02/app-engine-sdk-131-including-major.html>Here's > the post: > > App Engine SDK 1.3.1, Including Major Improvements to > Datastore!<http://googleappengine.blogspot.com/2010/02/app-engine-sdk-131-including-major.html> > We are excited to announce the release of version 1.3.1 of the App Engine > SDK for both Python and Java. While this release contains plenty of new > features and fixes, we've concentrated on using our very first SDK release > of 2010 to improve the heart of many App Engine applications: the Datastore. > > Here are the three major improvements that 1.3.1 has in store for datastore > users: > > - *Datastore Query Cursors* - Cursors allow applications to save and > 'bookmark' their progress through a query, so that it can be resumed later. > This works great in combination with paging URLs, as well as processing in > the Task Queue API, but there are many other uses. Watch for an upcoming > blog post that explores Cursors in the near future. They're also really > handy in the context of the next change... > - *No more 1000 result limit* - That's right: with addition of Cursors > and the culmination of many smaller Datastore stability and performance > improvements over the last few months, we're now confident enough to remove > the maximum result limit altogether. Whether you're doing a fetch, > iterating, or using a Cursor, there's no limits on the number of results. > - *Reduced error rate with Automatic Datastore Retries* - We've heard a > lot of feedback that you don't want to deal with the Datastore's sporadic > errors. In response, App Engine now automatically retries all datastore > calls (with the exception of transaction commits) when your applications > encounters a datastore error caused by being unable to reach Bigtable. > Datastore retries automatically builds in what many of you have been doing > in your code already, and our tests have shown it drastically reduces the > number of errors your application experiences (by up to *3-4x error > reduction for puts, 10-30x for gets*). > > But even with our focus on the Datastore, we were able to sneak in a quite > a number of other new goodies into 1.3.1 as well: > > For Python, we've included the *AppStats* RPC instrumentation library. > AppStats lets users easily profile the performance of calls from their app > to the App Engine backend services to identify and isolate issues such as > ineffective caching, bottlenecks, and redundant RPC calls in their app. (A > Java version is in beta testing now.) > > And for Java, we've included a comprehensive new *unit-testing framework* for > your App Engine apps. The unit-testing framework enables you to test your > application code in a natural, fully supported manner, and also allows you > to integrate your App Engine apps into other existing testing and automation > frameworks. > > The list of changes in 1.3.1 goes on and on (Custom Admin Console pages! > Support for wildcard domain mappings! Java precompilation on by default for > all applications!), so make sure to > download<http://code.google.com/appengine/downloads.html> the > new version and read our release notes for the complete list > (Python<http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes> > , Java<http://code.google.com/p/googleappengine/wiki/SdkForJavaReleaseNotes> > ). > > Posted by the App Engine Team > > > -- > Ikai Lan > Developer Programs Engineer, Google App Engine > http://googleappengine.blogspot.com | http://twitter.com/app_engine > > -- > 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. > > > -- > 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<google-appengine-java%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > -- dream or truth -- 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.