I'm using the ODATA extension to interact with my ODATA web service, and I ran into an issue when trying to delete entities with an Int64 Id. When I pass my entity to Service.deleteEntity(), it eventually calls down into TypeUtils.toEdmKey(), which calls TypeUtils.toEdmInt64(), which calls Long.toString(). Nothing along the way appends a 'L' to the string, which it seems like is required per the ODATA spec (see http://www.odata.org/developers/protocols/overview#AbstractTypeSystem).
I believe this is a bug. I poked around a bit looking at the code, and it looks like the toEdmKey() function is only used from Metadata, and is intended entirely for getting the key to use in the URI (there's a separate toEdm() method that's used from Service for getting a string to use for the value in the data). Both toEdmKey() and toEdm() use toEdmInt64(), so it seems like toEdmKey() should be explicitly appending a 'L' to result in the Int64 case (and toEdm()/toEdmInt64() should remain unaffected). Thanks! ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2879373

