Yep, it's the Java docs that say "exclusive". This could just be a documentation error. We're sorting it out.
On Wed, Mar 31, 2010 at 5:18 AM, jacek.ambroziak <[email protected]>wrote: > And in the Java documentation the last index argument is EXCLUSIVE > as is standard in Java (so that end - start = length)(and so that the > previous end can > become start in a loop) > > On Mar 31, 12:34 am, Robin B <[email protected]> wrote: > > The docs do mention the index values are inclusive: > > > > http://code.google.com/appengine/docs/python/blobstore/functions.html > > > > "Byte indexes are inclusive, with the first byte having an index of 0. > > For example, a start_index of 9 and an end_index of 19 will return up > > to 11 bytes, starting from the 10th byte (index 9) in the value." > > > > Robin > > > > On Mar 30, 5:21 pm, Ikai Lan <[email protected]> wrote: > > > > > > > > > I've reproduced the off-by-one error. Thanks for bringing this up. > > > > > On Mar 27, 8:32 am, "jacek.ambroziak" <[email protected]> > > > wrote: > > > > > > 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)" <[email protected]> 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 > [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. > > -- 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 [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.
