cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dk...@apache.org
Subject svn commit: r629997 - /incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/attachment/JAXBAttachmentMarshaller.java
Date Thu, 21 Feb 2008 21:13:58 GMT
Author: dkulp
Date: Thu Feb 21 13:13:57 2008
New Revision: 629997

URL: http://svn.apache.org/viewvc?rev=629997&view=rev
Log:
[CXF-1269] If file DataContent, get the size directly

Modified:
    incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/attachment/JAXBAttachmentMarshaller.java

Modified: incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/attachment/JAXBAttachmentMarshaller.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/attachment/JAXBAttachmentMarshaller.java?rev=629997&r1=629996&r2=629997&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/attachment/JAXBAttachmentMarshaller.java
(original)
+++ incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/attachment/JAXBAttachmentMarshaller.java
Thu Feb 21 13:13:57 2008
@@ -19,12 +19,15 @@
 
 package org.apache.cxf.jaxb.attachment;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.Collection;
 import java.util.UUID;
 
 import javax.activation.DataHandler;
+import javax.activation.DataSource;
+import javax.activation.FileDataSource;
 import javax.xml.bind.attachment.AttachmentMarshaller;
 
 import org.apache.cxf.attachment.AttachmentImpl;
@@ -86,12 +89,21 @@
         // The following is just wrong. Even if the DataHandler has a stream, we should still
         // apply the threshold.
         try {
-            Object o = handler.getContent();
-            if (o instanceof String 
-                && ((String)o).length() < threshold) {
-                return null;
-            } else if (o instanceof byte[] && ((byte[])o).length < threshold)
{
-                return null;
+            DataSource ds = handler.getDataSource();
+            if (ds instanceof FileDataSource) {
+                FileDataSource fds = (FileDataSource)ds;
+                File file = fds.getFile();
+                if (file.length() < threshold) {
+                    return null;
+                }
+            } else if (ds.getClass().getName().endsWith("ObjectDataSource")) {
+                Object o = handler.getContent();
+                if (o instanceof String 
+                    && ((String)o).length() < threshold) {
+                    return null;
+                } else if (o instanceof byte[] && ((byte[])o).length < threshold)
{
+                    return null;
+                }
             }
         } catch (IOException e1) {
         //      ignore, just do the normal attachment thing



Mime
View raw message