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.


Reply via email to