From 4f74fbfd061cf36cbd862727c8d3156302ecb80e Mon Sep 17 00:00:00 2001 From: Peter Donald Date: Thu, 7 Feb 2002 12:43:26 +0000 Subject: [PATCH] Avoided aliasing problem when creating child deployers by creating a new HashMap and adding all parents entrys rather than just referring to parents copy (which could lead to you altering the parents copy accidently) git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271208 13f79535-47bb-0310-9956-ffa450edef68 --- .../myrmidon/components/deployer/DefaultDeployer.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultDeployer.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultDeployer.java index dff37b045..c3aff190e 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultDeployer.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultDeployer.java @@ -48,13 +48,13 @@ public class DefaultDeployer private PackageManager m_packageManager; /** Map from ClassLoader to the deployer for that class loader. */ - private Map m_classLoaderDeployers = new HashMap(); + private final Map m_classLoaderDeployers = new HashMap(); /** * Map from File to the ClassLoader for that library. This map is shared * by all descendents of the root deployer. */ - private Map m_fileDeployers; + private final Map m_fileDeployers; /** * Creates a root deployer. @@ -67,7 +67,8 @@ public class DefaultDeployer private DefaultDeployer( final DefaultDeployer parent ) { m_parent = parent; - m_fileDeployers = parent.m_fileDeployers; + m_fileDeployers = new HashMap(); + m_fileDeployers.putAll( parent.m_fileDeployers ); } /** @@ -140,7 +141,7 @@ public class DefaultDeployer private URLClassLoader getClassLoaderForFile( final File file ) throws Exception { - File canonFile = file.getCanonicalFile(); + final File canonFile = file.getCanonicalFile(); // Locate cached classloader, creating it if necessary URLClassLoader classLoader = (URLClassLoader)m_fileDeployers.get( canonFile );