Today I started having deployment problems because the temporary files had a lot of '+' characters in them which got taken out by felix. I discovered that felix runs URLDecoder.decode(location) on the supplied location of a bundle. To counteract this we have to run URLEncoder.encode(location, "UTF-8") before handing it to felix.
I suggested on the felix dev list that URLDecoder.decode(location, "UTF-8") would be more appropriate per javadoc, but I wonder why something intended for encoding form data in a url is being used for file names. Doesn't URL.encode or File.toURI().toURL() work?
Leaving open in case anyone has an idea.