modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java | 17 +++++++++- modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java | 17 ++++------ modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java | 17 +++++++++- modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java | 9 ++--- modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java | 17 +++++++++- modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java | 8 ++-- 6 files changed, 64 insertions(+), 21 deletions(-)
New commits: commit 74baba517d2755b524e112df9fafd5b7d7ac2ddd Author: Stefan Negrea snegrea@redhat.com Date: Tue Feb 7 15:51:51 2012 -0600
[BZ 767393] SHA256 computation is now identical irrespective of default operating system implementation for list files & sorting.
diff --git a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java index 915374a..46c6522 100644 --- a/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java +++ b/modules/plugins/jboss-as-5/src/main/java/org/rhq/plugins/jbossas5/util/FileContentDelegate.java @@ -29,6 +29,8 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.util.Arrays; +import java.util.Comparator; import java.util.Set; import java.util.Stack; import java.util.jar.Attributes; @@ -264,7 +266,20 @@ public class FileContentDelegate { Stack<File> unvisitedFolders = new Stack<File>(); unvisitedFolders.add(deploymentDirectory); while (!unvisitedFolders.empty()) { - for (File file : unvisitedFolders.pop().listFiles()) { + File[] files = unvisitedFolders.pop().listFiles(); + Arrays.sort(files, new Comparator<File>() { + public int compare(File f1, File f2) { + try { + return f1.getCanonicalPath().compareTo(f2.getCanonicalPath()); + } catch (IOException e) { + //do nothing if the sort fails at this point + } + + return 0; + } + }); + + for (File file : files) { if (file.isDirectory()) { unvisitedFolders.add(file); } else { diff --git a/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java index 0434ec0..69d5760 100644 --- a/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java +++ b/modules/plugins/jboss-as-5/src/test/java/org/rhq/plugins/jbossas5/test/FileContentDelegateTest.java @@ -69,8 +69,8 @@ public class FileContentDelegateTest { String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256"); manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d"); - Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d"); + Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f"); + Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
//cleanup resources created for this test deleteRecursive(deploymentDirectory); @@ -104,8 +104,8 @@ public class FileContentDelegateTest { String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256"); manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d"); - Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d"); + Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f"); + Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
deleteRecursive(deploymentDirectory); } @@ -142,8 +142,8 @@ public class FileContentDelegateTest { String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256"); manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20"); - Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20"); + Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b"); + Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
deleteRecursive(deploymentDirectory); } @@ -175,8 +175,8 @@ public class FileContentDelegateTest { String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256"); manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20"); - Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20"); + Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b"); + Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
//cleanup resources created for this test deleteRecursive(deploymentDirectory); @@ -212,7 +212,6 @@ public class FileContentDelegateTest { Assert.assertTrue(deploymentDirectory.isDirectory(), "Deployment directory is no longer a directory!!"); Assert.assertFalse(deploymentFile.isDirectory(), "Deployment was exploded when it should not have been.");
- MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256); String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar); String actualSHA256OfDeployment = digest.calcDigestString(deploymentFile);
commit 33fa19623d9129416051cbb3be6857e290572f9c Author: Stefan Negrea snegrea@redhat.com Date: Tue Feb 7 15:51:22 2012 -0600
[BZ 767247] SHA256 computation is now identical irrespective of default operating system implementation for list files & sorting.
diff --git a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java index 499d5a5..f82b5ec 100644 --- a/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java +++ b/modules/plugins/jboss-as/src/main/java/org/rhq/plugins/jbossas/util/FileContentDelegate.java @@ -29,6 +29,8 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.util.Arrays; +import java.util.Comparator; import java.util.Set; import java.util.Stack; import java.util.jar.Attributes; @@ -249,7 +251,20 @@ public class FileContentDelegate { Stack<File> unvisitedFolders = new Stack<File>(); unvisitedFolders.add(deploymentDirectory); while (!unvisitedFolders.empty()) { - for (File file : unvisitedFolders.pop().listFiles()) { + File[] files = unvisitedFolders.pop().listFiles(); + Arrays.sort(files, new Comparator<File>() { + public int compare(File f1, File f2) { + try { + return f1.getCanonicalPath().compareTo(f2.getCanonicalPath()); + } catch (IOException e) { + //do nothing if the sort fails at this point + } + + return 0; + } + }); + + for (File file : files) { if (file.isDirectory()) { unvisitedFolders.add(file); } else { diff --git a/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java index b3e7b93..6e9e355 100644 --- a/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java +++ b/modules/plugins/jboss-as/src/test/java/org/rhq/plugins/jbossas/test/FileContentDelegateTest.java @@ -107,8 +107,8 @@ public class FileContentDelegateTest { String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256"); manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d"); - Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d"); + Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f"); + Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
deleteRecursive(deploymentDirectory); } @@ -181,8 +181,8 @@ public class FileContentDelegateTest { String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256"); manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20"); - Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20"); + Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b"); + Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
//cleanup resources created for this test deleteRecursive(deploymentDirectory); @@ -218,7 +218,6 @@ public class FileContentDelegateTest { Assert.assertTrue(deploymentDirectory.isDirectory(), "Deployment directory is no longer a directory!!"); Assert.assertFalse(deploymentFile.isDirectory(), "Deployment was exploded when it should not have been.");
- MessageDigestGenerator digest = new MessageDigestGenerator(MessageDigestGenerator.SHA_256); String expectedSHA256 = digest.calcDigestString(sampleWithoutManifestWar); String actualSHA256OfDeployment = digest.calcDigestString(deploymentFile);
commit 9c318d42bbc4f80305afb1fa0e351b38bdbd80ba Author: Stefan Negrea snegrea@redhat.com Date: Tue Feb 7 15:49:12 2012 -0600
[BZ 761593] SHA256 computation is now identical irrespective of default operating system implementation for list files & sorting.
diff --git a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java index 6f914db..a4a5560 100644 --- a/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java +++ b/modules/plugins/tomcat/src/main/java/org/jboss/on/plugins/tomcat/helper/FileContentDelegate.java @@ -29,6 +29,8 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.util.Arrays; +import java.util.Comparator; import java.util.Set; import java.util.Stack; import java.util.jar.Attributes; @@ -213,7 +215,20 @@ public class FileContentDelegate { Stack<File> unvisitedFolders = new Stack<File>(); unvisitedFolders.add(deploymentDirectory); while (!unvisitedFolders.empty()) { - for (File file : unvisitedFolders.pop().listFiles()) { + File[] files = unvisitedFolders.pop().listFiles(); + Arrays.sort(files, new Comparator<File>() { + public int compare(File f1, File f2) { + try { + return f1.getCanonicalPath().compareTo(f2.getCanonicalPath()); + } catch (IOException e) { + //do nothing if the sort fails at this point + } + + return 0; + } + }); + + for (File file : files) { if (file.isDirectory()) { unvisitedFolders.add(file); } else { diff --git a/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java index 9a2dc49..0536c35 100644 --- a/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java +++ b/modules/plugins/tomcat/src/test/java/org/jboss/on/plugins/tomcat/test/FileContentDelegateTest.java @@ -98,8 +98,8 @@ public class FileContentDelegateTest { String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256"); manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d"); - Assert.assertEquals(actualShaReturned, "342b0c96b83cc1b36184cb7e67a7df986ef305a5891041ea1c36afd9c04afd4d"); + Assert.assertEquals(actualSha256Attribute, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f"); + Assert.assertEquals(actualShaReturned, "a30a576b5ee15c709469517e9f529989f9ae85bddde131c014a799ca9d7c1c0f");
deleteRecursive(deploymentDirectory); } @@ -167,8 +167,8 @@ public class FileContentDelegateTest { String actualSha256Attribute = manifest.getMainAttributes().getValue("RHQ-Sha256"); manifestStream.close();
- Assert.assertEquals(actualSha256Attribute, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20"); - Assert.assertEquals(actualShaReturned, "f2fa6712d19d25b47639f2ad7bd9dd1cb5af8d5551120f9f4a775edee7c5bb20"); + Assert.assertEquals(actualSha256Attribute, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b"); + Assert.assertEquals(actualShaReturned, "bff7f7d63ae8e4f1efebb54fa727effe1b1a8246492ad9c36779d79a9771fb2b");
//cleanup resources created for this test deleteRecursive(deploymentDirectory);
rhq-commits@lists.fedorahosted.org