This is an automated email from the ASF dual-hosted git repository.

dkulp pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 8eab54c2a285ac91b0a04b8cd7e899d45f15b73a
Author: Daniel Kulp <dk...@apache.org>
AuthorDate: Fri Jun 8 15:20:41 2018 -0400

    [CXF-7754] Fix WrappedAttachments.toArray
---
 .../org/apache/cxf/jaxws/context/WrappedAttachments.java     |  2 +-
 .../org/apache/cxf/jaxws/context/WrappedAttachmentsTest.java | 12 +++++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git 
a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/context/WrappedAttachments.java
 
b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/context/WrappedAttachments.java
index 920d22a..f3fa3ce 100644
--- 
a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/context/WrappedAttachments.java
+++ 
b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/context/WrappedAttachments.java
@@ -71,7 +71,7 @@ class WrappedAttachments implements Set<Attachment> {
     @SuppressWarnings("unchecked")
     public <T> T[] toArray(T[] a) {
         T[] copy = a.length == attachments.size()
-            ? a : (T[])Array.newInstance(a.getClass(), attachments.size());
+            ? a : (T[])Array.newInstance(a.getClass().getComponentType(), 
attachments.size());
         int i = 0;
         for (Map.Entry<String, DataHandler> entry : attachments.entrySet()) {
             Attachment o = cache.get(entry.getKey());
diff --git 
a/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/context/WrappedAttachmentsTest.java
 
b/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/context/WrappedAttachmentsTest.java
index c705d6e..d6b6db8 100644
--- 
a/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/context/WrappedAttachmentsTest.java
+++ 
b/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/context/WrappedAttachmentsTest.java
@@ -63,10 +63,20 @@ public class WrappedAttachmentsTest extends Assert {
 
         assertEquals(1, attachments.size());
 
-        Attachment[] atts = attachments.toArray(new Attachment[0]);
+        Attachment[] atts = attachments.toArray(new Attachment[0]); //NOPMD - 
explicitly test this
         assertEquals(1, atts.length);
         assertEquals("att-1".equals(attx.getId()) ? "att-2" : "att-1", 
atts[0].getId());
 
+        atts = attachments.toArray(new Attachment[attachments.size()]); 
//NOPMD - explicitly test this
+        assertEquals(1, atts.length);
+        assertEquals("att-1".equals(attx.getId()) ? "att-2" : "att-1", 
atts[0].getId());
+        
+        Object o[] = attachments.toArray(); //NOPMD - explicitly test this
+        assertEquals(1, o.length);
+        Attachment a = (Attachment)o[0];
+        assertEquals("att-1".equals(attx.getId()) ? "att-2" : "att-1", 
a.getId());
+
+        
         attachments.clear();
         assertTrue(attachments.isEmpty());
         assertTrue(content.isEmpty());

-- 
To stop receiving notification emails like this one, please contact
dk...@apache.org.

Reply via email to