Hi Max, Yes, it works. Thanks very much.
Vince P.S. While step-debugging a task, I noticed that they seem to time-out very quickly--within about 5 seconds. Is this intentional? Here's a partial stacktrace: Dec 4, 2009 3:03:58 PM com.google.appengine.api.labs.taskqueue.dev.DevQueue runTask SEVERE: Exception executing task 24b5a6e4-c327-4bc6-bc4f-51f838f3d1a5 on queue write-behind-task com.google.apphosting.api.ApiProxy$ApplicationException: ApplicationError: 5: http method GET against URL http://127.0.0.1:8080/_ah/queue/write-behind-task?watchdog=839445f1-2c77-4c2c-bf32-81b88d5e092etimed out. at com.google.appengine.api.urlfetch.dev.LocalURLFetchService.fetch(LocalURLFetchService.java:214) at com.google.appengine.api.labs.taskqueue.dev.UrlFetchJob.execute(UrlFetchJob.java:53) at com.google.appengine.api.labs.taskqueue.dev.UrlFetchJob.execute(UrlFetchJob.java:46) at com.google.appengine.api.labs.taskqueue.dev.DevQueue.runTask(DevQueue.java:221) at com.google.appengine.api.labs.taskqueue.dev.LocalTaskQueue.runTask(LocalTaskQueue.java:313) On Thu, Dec 3, 2009 at 7:01 PM, Max Ross (Google) <[email protected]<maxr%[email protected]> > wrote: > Vince, > > We added a last minute fix for this in the SDK that just went out. Could > you please try your code with the official SDK download? > > Thanks, > Max > > > On Thu, Dec 3, 2009 at 12:15 PM, Max Ross (Google) < > [email protected] <maxr%[email protected]>> wrote: > >> Sure, sorry for the trouble, and thanks for trying out the prerelease! >> >> Max >> >> >> On Thu, Dec 3, 2009 at 12:12 PM, Vince Bonfanti <[email protected]>wrote: >> >>> That fixed it. Thanks. >>> >>> Vince >>> >>> >>> On Thu, Dec 3, 2009 at 2:24 PM, Max Ross (Google) < >>> [email protected] <maxr%[email protected]>> wrote: >>> >>>> Vince, >>>> >>>> As a workaround, try setting the missing environment attribute >>>> explicitly before you add the task to the queue: >>>> >>>> ApiProxy.getCurrentEnvironment().getAttributes().put("com.google.appengine.server_url_key", >>>> "http://localhost:8080"); >>>> >>>> This should only be necessary for tasks that are added when there is no >>>> "live" request and it should have no impact in prod. >>>> >>>> Sorry for the trouble, >>>> Max >>>> >>>> >>>> On Thu, Dec 3, 2009 at 10:20 AM, Max Ross (Google) < >>>> [email protected] <maxr%[email protected]>> wrote: >>>> >>>>> Hi Vince, >>>>> >>>>> That sounds like a bug in our code that was a side effect of the >>>>> automatic task execution that now happens in the dev environment. Let me >>>>> see if I can come up with a workaround for you. >>>>> >>>>> Max >>>>> >>>>> On Thu, Dec 3, 2009 at 10:06 AM, Vince Bonfanti >>>>> <[email protected]>wrote: >>>>> >>>>>> I just started testing with the 1.2.8 prerelease, and I'm getting the >>>>>> following exception from Queue.add() in code that works in 1.2.6: >>>>>> >>>>>> java.lang.IllegalStateException: Current enviornment must have the >>>>>> server url available via the com.google.appengine.server_url_key >>>>>> attribute. >>>>>> >>>>>> This only happens when Queue.add() is invoked from the servlet init() >>>>>> method or from a static initializer; if Queue.add() is invoked from a >>>>>> "regular" request thread, then it works properly. >>>>>> >>>>>> Vince >>>>>> >>>>>> >>>>>> On Tue, Nov 24, 2009 at 9:00 PM, Ikai L (Google) >>>>>> <[email protected]>wrote: >>>>>> >>>>>>> Hello App Engine Developers, >>>>>>> >>>>>>> As part of our ongoing efforts to improve release quality and >>>>>>> transparency, we will start prereleasing SDKs for early testing. We >>>>>>> hope this gives developers a chance to participate in our release >>>>>>> process by trying out new changes and sending feedback. As of this >>>>>>> morning, the prerelease SDK for our next release, 1.2.8, is available >>>>>>> in the familiar download location (note that the filename ends in >>>>>>> 'prerelease.zip'): >>>>>>> >>>>>>> http://code.google.com/p/googleappengine/downloads/list >>>>>>> >>>>>>> If you're interested, please download and give it a try locally with >>>>>>> your favorite App Engine code. Please note that, as a prerelease, >>>>>>> this >>>>>>> SDK is not yet supported and still subject to change. Thus, please >>>>>>> don't take critical dependencies or make substantial changes to >>>>>>> production apps based on this SDK. >>>>>>> >>>>>>> Importantly, this prerelease is purely for the SDK and is intended >>>>>>> for >>>>>>> local testing and development in dev_appserver. The server-side of >>>>>>> App >>>>>>> Engine (our production environment) is not at 1.2.8, so deploying >>>>>>> with >>>>>>> this SDK is not yet supported. In the future, we might enable a >>>>>>> complete SDK and server test environment for prereleases. >>>>>>> >>>>>>> A few notes on 1.2.8 in particular - this release is primarily for >>>>>>> servicing and updates in preparation for some exciting feature >>>>>>> launches we have in the pipeline. The current release notes (still >>>>>>> subject to change) are included below; these release notes do include >>>>>>> changes which will only be available on the server side Admin Console >>>>>>> (non-local) once 1.2.8 is formally released. >>>>>>> >>>>>>> Please try 1.2.8 for local development and send us your feedback! >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> App Engine Team >>>>>>> >>>>>>> Version 1.2.8 >>>>>>> ============= >>>>>>> - Support for JAXB. JAXB is included in JDK 1.6 (and App Engine's >>>>>>> production >>>>>>> servers). If you're using JDK 1.5 with your local dev_appserver, >>>>>>> you will >>>>>>> need to include the JAXB libraries with your application to use >>>>>>> it. >>>>>>> http://code.google.com/p/googleappengine/issues/detail?id=1267 >>>>>>> - Added Quota API (com.google.appengine.api.quota) to match Python >>>>>>> API. >>>>>>> - Low-level Memcache API now supports grabTail() and batchIncrement >>>>>>> (). >>>>>>> - HTTPResponse object now has getFinalUrl() method for 302 >>>>>>> redirects. >>>>>>> http://code.google.com/p/googleappengine/issues/detail?id=1464 >>>>>>> - Java Dev Appserver now automatically executes tasks. If you >>>>>>> prefer the old >>>>>>> behavior where tasks do not automatically execute you can use the >>>>>>> -Dtask_queue.disable_auto_task_execution flag when starting the >>>>>>> server. >>>>>>> - Additional file extensions permitted when sending mail. >>>>>>> http://code.google.com/p/googleappengine/issues/detail?id=494 >>>>>>> - Fixed issue with Java mail handler not processing multipart >>>>>>> messages >>>>>>> correctly. >>>>>>> - Fixed agent code included in appengine-local-runtime.jar results >>>>>>> in >>>>>>> RuntimeException. >>>>>>> http://code.google.com/p/googleappengine/issues/detail?id=2280 >>>>>>> - Fixed issue with sort orders defined on properties that allow >>>>>>> multiple >>>>>>> values. >>>>>>> http://code.google.com/p/googleappengine/issues/detail?id=2349 >>>>>>> - Fixed problem with dropped query strings after requiring log-in. >>>>>>> http://code.google.com/p/googleappengine/issues/detail?id=2225 >>>>>>> - Removed limitation preventing multiple parameters with the same >>>>>>> name. >>>>>>> http://code.google.com/p/googleappengine/issues/detail?id=2090 >>>>>>> - Fixed issue with local datastore incorrectly sorting results of >>>>>>> ancestor queries. >>>>>>> http://code.google.com/p/googleappengine/issues/detail?id=2177 >>>>>>> - New Index building status page in the Admin Console >>>>>>> - Task Queue now supports purging queues, and deleting tasks and >>>>>>> queues via >>>>>>> the Admin Console. >>>>>>> http://code.google.com/p/googleappengine/issues/detail?id=2159 >>>>>>> http://code.google.com/p/googleappengine/issues/detail?id=1740 >>>>>>> - Over Quota HTTP status code changed from 403 to 503, other to 500. >>>>>>> - Task Queue now considers all HTTP 2xx status codes to represent >>>>>>> success. >>>>>>> >>>>>>> ORM Changes >>>>>>> >>>>>>> - Explicitly disallow multiple relationships of the same type >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=154 >>>>>>> - Occasional ArrayOutOfBoundsIndexException >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=156 >>>>>>> - Support inheritance >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=25 >>>>>>> - Support != queries >>>>>>> - Support IN queries >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=39 >>>>>>> - Inheritance is working for simple fields and embedded fields. >>>>>>> Relationships >>>>>>> in base classes are completely untested and probably do not work. >>>>>>> - Cannot add child to existing one-to-many if parent has Long or >>>>>>> unencoded String pk >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=28 >>>>>>> - Can't query by embedded fields at depth > 1 >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=120 >>>>>>> - Positional parameters don't work (JPQL) >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=128 >>>>>>> - Throw JDOCanRetryException when ConcurrentMod hit during txn >>>>>>> commit >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=134 >>>>>>> - Respect JDOQL/JPQL case sensitivity for keywords, in particular >>>>>>> "count" >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=139 >>>>>>> - Put all native datastore types in the default fetch group >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=143 >>>>>>> - Empty Set gets loaded from datastore as null >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=145 >>>>>>> - Cannot remove element of one to many when parent has pk of type >>>>>>> Long or unencoded String >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=126 >>>>>>> - Severe problem when deleting a child object from an owned >>>>>>> relationship (JDO) >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=135 >>>>>>> - NPE resulting from corrupt JDOQL query >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=136 >>>>>>> - Embedded, multi-value fields don't work >>>>>>> >>>>>>> http://code.google.com/p/datanucleus-appengine/issues/detail?id=146 >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> 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]<google-appengine-java%[email protected]> >>>>>>> . >>>>>>> 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 >>>>>> [email protected]. >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected]<google-appengine-java%[email protected]> >>>>>> . >>>>>> 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 >>>> [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<google-appengine-java%[email protected]> >>>> . >>>> 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 >>> [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<google-appengine-java%[email protected]> >>> . >>> 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 > [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%[email protected]> > . > 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 [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.
