OBR cannot install JARs which have been encoded for transfer
------------------------------------------------------------

                 Key: FELIX-3191
                 URL: https://issues.apache.org/jira/browse/FELIX-3191
             Project: Felix
          Issue Type: Bug
          Components: Bundle Repository (OBR)
         Environment: Debian Testing, 64-bit
            Reporter: Lionel Debroux


I recently had trouble installing bundles through the OBR: the JAR handling 
code would spit errors about not being able to open the ZIP file.
With Wireshark, I tracked the problem down to the JAR file having been gzipped, 
but not having been uncompressed on the computer side.

Even if they're not explicitly asked for it (which is the case when downloading 
a bundle through the OBR), servers are allowed by the HTTP/1.1 spec to return 
encoded content:
"If no Accept-Encoding field is present in a request, the server MAY assume 
that the client will accept any content coding."
( http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3 )

I worked around the problem the following way:

Index: 
bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/FileUtil.java
===================================================================
--- 
bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/FileUtil.java
    (revision 1189686)
+++ 
bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/FileUtil.java
    (working copy)
@@ -204,6 +204,14 @@
         // Do it the manual way to have a chance to
         // set request properties as proxy auth (EW).
         setProxyAuth(conn);
+
+        // Force identity encoding
+        if ("http".equals(conn.getURL().getProtocol())
+            || "https".equals(conn.getURL().getProtocol()))
+        {
+            conn.setRequestProperty("Accept-Encoding", "");
+        }
+
         try
         {
             return conn.getInputStream();

But I'm not sure whether that this is a proper fix, which is why I had posted 
it to felix-users :)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to