svn commit: r571280 - /lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/publication/ResourceWrapper.java

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: rfrovarp
Date: Thu Aug 30 12:35:18 2007
New Revision: 571280

URL: http://svn.apache.org/viewvc?rev=571280&view=rev
Log:
Translate image/pjpeg to image/jpeg for purposes of reading image dimensions. Fixes bug 43245.

Modified:
    lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/publication/ResourceWrapper.java

Modified: lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/publication/ResourceWrapper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/publication/ResourceWrapper.java?rev=571280&r1=571279&r2=571280&view=diff
==============================================================================
--- lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/publication/ResourceWrapper.java (original)
+++ lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/publication/ResourceWrapper.java Thu Aug 30 12:35:18 2007
@@ -48,6 +48,9 @@
     private ServiceManager manager;
     private Document document;
 
+    private static final String MIME_IMAGE_PJPEG = "image/pjpeg";
+    private static final String MIME_IMAGE_JPEG = "image/jpeg";
+
     /**
      * @param document The document to wrap.
      * @param manager The service manager.
@@ -177,8 +180,22 @@
      * @return A boolean value.
      */
     public static boolean canReadMimeType(String mimeType) {
-        Iterator iter = ImageIO.getImageReadersByMIMEType(mimeType);
+        Iterator iter = ImageIO.getImageReadersByMIMEType(translateMimeType(mimeType));
         return iter.hasNext();
     }
 
+    /**
+     * Translates the mime type if it can be read, but the tools don't think so.
+     * For example, all jpegs from IE are marked as image/pjpeg, which ImageIO
+     * doesn't return a ImageReader for, even though the one for image/jpeg 
+     * works just fine, even for a real image/pjpeg.
+     * @param mimeType The mime type.
+     * @return The translated or original mime type if no translation was applied
+     */
+    private static String translateMimeType(String mimeType) {
+        if(mimeType.equals(MIME_IMAGE_PJPEG)) {
+            return MIME_IMAGE_JPEG;
+        }
+        return mimeType;
+    }
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.