fetchData is very useful. At the moment its implementation seems to suffer from an off-by-one bug. For instance, fetchData(key, 0, 1024) returns an array of length 1025 and blobstoreService.fetchData(blobKey, 0, BlobstoreService.MAX_BLOB_FETCH_SIZE) will, I guess, attempt to read one byte too many and it fails with
com.google.appengine.api.blobstore.BlobstoreFailureException: An unexpected error occurred. On Mar 25, 8:48 pm, "Ikai L (Google)" <ika...@google.com> wrote: > Check it out! > > http://googleappengine.blogspot.com/2010/03/app-engine-sdk-132-releas... > > Blog post: > > App Engine SDK 1.3.2 > Released<http://googleappengine.blogspot.com/2010/03/app-engine-sdk-132-releas...> > > Today we are excited to announce the release of version 1.3.2 of the App > Engine SDK for both the Java and Python runtimes. 1.3.2 includes a number of > changes and bug fixes. > > For this release, we have concentrated on removing a number of limitations > that have been affecting developers: > > - Blobstore API - A new method > (fetch_data<http://code.google.com/appengine/docs/python/blobstore/functions.html> > for > Python, > fetchData<http://code.google.com/appengine/docs/java/javadoc/com/google/appengi...> > for > Java) allows your application to request the contents of a Blob from within > your application’s code. > - URLFetch API - We’ve expanded the number of ports you can access with > the URLFetch API. You can now access ports 80-90, 440-450, and 1024-65535. > - Mail API - We’ve expanded the allowed mail attachments to include > common document extensions including .doc, .ppt, and .xls. > - Task Queue API - We’ve increased the maximum total Task Queue refill > rate to 50 per second. > > We’re also happy to announce, based on your feedback, a new Denial of > Service (DoS) blocking system in App Engine. This system allows you to > blacklist specific IP addresses from accessing your application, and to > prevent them from costing your application money or eating up your quota. > You can also view the top IPs that have accessed your application in the > Admin Console, to help you figure out what IPs you may want to block. More > information on this feature is available for > Python<http://code.google.com/appengine/docs/python/config/dos.html> > and Java <http://code.google.com/appengine/docs/java/config/dos.html>. > > There’s a lot of other changes and fixes in this release, including a new > Java version of the Appstats profiling tool, so read the release notes ( > Python <http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes>, > Java<http://code.google.com/p/googleappengine/wiki/SdkForJavaReleaseNotes>) > for a complete list of changes and download the new versions of the > SDK<http://code.google.com/appengine/downloads.html> > . > > Release Notes: > > Version 1.3.2 - March 25, 2010 > > - New API to read the contents of uploaded Blobs (fetch_data) > -http://code.google.com/p/googleappengine/issues/detail?id=2536 > > - URLFetch now supports accessing ports 80-90, 440-450, and 1024-65535 > - Mail API now allows common document formats as attachments > -http://code.google.com/p/googleappengine/issues/detail?id=494 > - The Task Queue API now supports adding multiple tasks in a single call > to Queue.add() > - Fixed charset handling for inbound emails > -http://code.google.com/p/googleappengine/issues/detail?id=2326 > - Fixed issue with compositing background colors in dev_appserver > - New feature in the datastore to specify whether to use strong or > eventually consistent reads (the default is strong) > - New datastore feature allows setting deadlines for operations > - Increased the maximum Task Queue refill rate from 20/s to 50/s > - Support for IP blacklisting to prevent denial of service (DoS) attacks > - Fix an issue with Mac Launcher in Mac OSX 10.5.5 > -http://code.google.com/p/googleappengine/issues/detail?id=778 > - Fix issue with slow updates when there are many skipped files > -http://code.google.com/p/googleappengine/issues/detail?id=2492 > - Fix issue with cursor not updating when using a > GqlQuery?<http://code.google.com/p/googleappengine/w/edit/GqlQuery> > -http://code.google.com/p/googleappengine/issues/detail?id=2757 > > You might also want to note that we've updated the public roadmap: > > http://code.google.com/appengine/docs/roadmap.html > > Features on Deck > > - SSL for third-party domains > - Background servers capable of running for longer than 30s > - Ability to reserve instances to reduce application loading overhead > - Ability to select different availability vs. latency options for > Datastore > - Support for mapping operations across datasets > - Datastore dump and restore facility > - Raise request/response size limits for some APIs > - Improved monitoring and alerting of application serving > - Support for Browser Push (Comet) communication > - Built-in support for OAuth & OpenID > > -- > Ikai Lan > Developer Programs Engineer, Google App > Enginehttp://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.