[jboss-svn-commits] JBL Code SVN: r33896 - in labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework: plugin and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 15 05:01:02 EDT 2010


Author: mmusgrov
Date: 2010-07-15 05:01:02 -0400 (Thu, 15 Jul 2010)
New Revision: 33896

Modified:
   labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/ToolsClassLoader.java
   labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/plugin/ToolPluginInformation.java
Log:
[JBTM-730] Unpack sars correctly (didn't handle the case where the contained files were not in hierarchical order)

Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/ToolsClassLoader.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/ToolsClassLoader.java	2010-07-15 09:00:22 UTC (rev 33895)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/ToolsClassLoader.java	2010-07-15 09:01:02 UTC (rev 33896)
@@ -110,28 +110,16 @@
             while (entries.hasMoreElements())
             {
                 ZipEntry ze = entries.nextElement();
-                String fname = tmpDir + '/' + ze.getName();
+                File f = ToolPluginInformation.externalizeFile(tmpDir, zf.getInputStream(ze), ze);
 
-                if (ze.isDirectory())
-                {
-                    new File(fname).mkdirs();
+                if (accept(ze.getName())) {
+                    addURL(ToolPluginInformation.getToolPluginInformation(_toolJars, f));
                 }
-                else
-                {
-                    File f = ToolPluginInformation.externalizeFile(fname, zf.getInputStream(ze));
-
-                    if (accept(ze.getName()))
-                        addURL(ToolPluginInformation.getToolPluginInformation(_toolJars, f));
-//                        urls.add(ToolPluginInformation.getToolPluginInformation(_toolJars, f));
-                }
             }
 
             addURL(new File(getTmpDir()).toURL());
-//            urls.add(new File(getTmpDir()).toURL());
             toolsDir = new File(getTmpDir() + DEFAULT_LIB_DIRECTORY).toURL();
 
-//            setClassLoader(urls, getTmpDir() + DEFAULT_LIB_DIRECTORY);
-
             zf.close();
         }
         catch (IOException e)

Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/plugin/ToolPluginInformation.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/plugin/ToolPluginInformation.java	2010-07-15 09:00:22 UTC (rev 33895)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/toolsframework/plugin/ToolPluginInformation.java	2010-07-15 09:01:02 UTC (rev 33896)
@@ -183,14 +183,18 @@
 
     public static File externalizeFile(String tmpDir, InputStream is, ZipEntry ze) throws IOException
     {
-        File f = new File(tmpDir + ze.getName());
+        File f = new File(tmpDir + File.separatorChar + ze.getName());
         
-        if (f.isFile())
+        if (!ze.isDirectory())
         {
-            File d = f.getParentFile();
+            int i = ze.getName().lastIndexOf(File.separatorChar);
 
-            if (d != null)
-                f.mkdirs();
+            if (i != -1) {
+				// this file name is part of a directory path - create the parent directories
+                String path = f.getPath();
+				String sp = path.substring(0, path.lastIndexOf(File.separatorChar));
+				new File(sp).mkdirs();
+			}
 
             OutputStream out = new FileOutputStream(f);
             byte[] buf = new byte[1024];



More information about the jboss-svn-commits mailing list