donaldp 2002/10/01 00:50:56 Modified: src/java/org/apache/avalon/phoenix/components/application BlockResourceProvider.java src/test/org/apache/avalon/phoenix/test/data Component4.java Log: Make sure serviceMap returned is unmodifiable. Add a unit test to verify this. Revision Changes Path 1.9 +5 -2 jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/application/BlockResourceProvider.java Index: BlockResourceProvider.java =================================================================== RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/application/BlockResourceProvider.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- BlockResourceProvider.java 1 Oct 2002 07:29:27 -0000 1.8 +++ BlockResourceProvider.java 1 Oct 2002 07:50:56 -0000 1.9 @@ -32,6 +32,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Collections; import java.lang.reflect.Array; /** @@ -257,7 +258,9 @@ } else { - map.put( key, value ); + final Map smap = + Collections.unmodifiableMap( (Map)value); + map.put( key, smap ); } } 1.2 +22 -2 jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/test/data/Component4.java Index: Component4.java =================================================================== RCS file: /home/cvs/jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/test/data/Component4.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Component4.java 1 Oct 2002 07:30:25 -0000 1.1 +++ Component4.java 1 Oct 2002 07:50:56 -0000 1.2 @@ -41,9 +41,29 @@ checkService( "c2a", services ); checkService( "c2b", services ); checkService( "fred", services ); + + checkReadOnly( services ); + } + + private void checkReadOnly( final Map services ) + throws ServiceException + { + try + { + services.put( "s", services.get( "fred" ) ); + } + catch( Exception e ) + { + return; + } + + throw new ServiceException( "Was able to modify map " + + "retrieved from ServiceManager" ); } - private void checkService( final String name, final Map services ) throws ServiceException + private void checkService( final String name, + final Map services ) + throws ServiceException { final Object service1 = services.get( name ); if( null == service1 )
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>