You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2011/06/07 17:56:56 UTC

svn commit: r1133057 - in /cxf/branches/2.3.x-fixes: ./ rt/core/src/main/java/org/apache/cxf/attachment/LazyDataSource.java

Author: dkulp
Date: Tue Jun  7 15:56:55 2011
New Revision: 1133057

URL: http://svn.apache.org/viewvc?rev=1133057&view=rev
Log:
Merged revisions 1129987 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1129987 | dkulp | 2011-05-31 23:06:39 -0400 (Tue, 31 May 2011) | 2 lines
  
  [CXF-3477] Stick a better error message in (rather than an NPE) if an
  attachment couldn't be found.
........

Modified:
    cxf/branches/2.3.x-fixes/   (props changed)
    cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/LazyDataSource.java

Propchange: cxf/branches/2.3.x-fixes/
            ('svn:mergeinfo' removed)

Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/LazyDataSource.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/LazyDataSource.java?rev=1133057&r1=1133056&r2=1133057&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/LazyDataSource.java (original)
+++ cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/LazyDataSource.java Tue Jun  7 15:56:55 2011
@@ -22,7 +22,9 @@ package org.apache.cxf.attachment;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import javax.activation.DataSource;
 
@@ -53,6 +55,27 @@ public class LazyDataSource implements D
                 }
             }
         }
+        if (dataSource == null) {
+            //couldn't find it, build up error message
+            List<String> ids = new ArrayList<String>(10);
+            for (Attachment a : attachments) {
+                ids.add(a.getId());
+                if (a.getId().equals(id)) {
+                    this.dataSource = a.getDataHandler().getDataSource();
+                    if (dataSource != null) {
+                        ids = null;
+                        break;
+                    } else {
+                        throw new IllegalStateException("Could not get DataSource for "
+                                                        + "attachment of id " + id);
+                    }
+                }
+            }
+            if (ids != null) {
+                throw new IllegalStateException("No attachment for "
+                                                + " id " + id + " found in " + ids);
+            }
+        }
     }
     
     public String getContentType() {