From 5e403e636e5ddea669f12019555f8392157e67c1 Mon Sep 17 00:00:00 2001
From: Omair Majid <omajid@redhat.com>
Date: Fri, 30 Aug 2013 10:56:59 -0400
Subject: PR1058: XFileOpenService openMultiFileDialog ClassCastException

Instead of trying to create a privileged proxy for the FileContents[]
array, simply create a privileged proxy for each FileContents instance
and return an array of them.

2013-08-29  Omair Majid  <omajid@redhat.com>

        PR1058
        * netx/net/sourceforge/jnlp/services/XFileOpenService.java
        (openMultiFileDialog): Create a privileged proxy for each FileContents
        instance and return an array of them.
---
 netx/net/sourceforge/jnlp/services/XFileOpenService.java | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

(limited to 'netx/net/sourceforge/jnlp')

diff --git a/netx/net/sourceforge/jnlp/services/XFileOpenService.java b/netx/net/sourceforge/jnlp/services/XFileOpenService.java
index 7e004e3..ac5c162 100644
--- a/netx/net/sourceforge/jnlp/services/XFileOpenService.java
+++ b/netx/net/sourceforge/jnlp/services/XFileOpenService.java
@@ -91,11 +91,12 @@ class XFileOpenService implements FileOpenService {
             if (chosen == JFileChooser.APPROVE_OPTION) {
                 File[] files = chooser.getSelectedFiles();
                 int length = files.length;
-                XFileContents[] xfiles = new XFileContents[length];
-                for (int i = 0; i < length; i++)
-                    xfiles[i] = new XFileContents(files[i]);
-                return (FileContents[]) ServiceUtil.createPrivilegedProxy(
-                           FileContents.class, xfiles);
+                FileContents[] result = new FileContents[length];
+                for (int i = 0; i < length; i++) {
+                    XFileContents xfile = new XFileContents(files[i]);
+                    result[i] = (FileContents) ServiceUtil.createPrivilegedProxy(FileContents.class, xfile);
+                }
+                return result;
             } else {
                 return null;
             }
-- 
cgit v1.2.3