Index: src/java/org/apache/jetspeed/modules/actions/portlets/PsmlManagerAction.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/PsmlManagerAction.java,v retrieving revision 1.7 diff -u -r1.7 PsmlManagerAction.java --- src/java/org/apache/jetspeed/modules/actions/portlets/PsmlManagerAction.java 23 Feb 2004 02:56:58 -0000 1.7 +++ src/java/org/apache/jetspeed/modules/actions/portlets/PsmlManagerAction.java 30 Nov 2004 13:40:46 -0000 @@ -26,6 +26,7 @@ import org.apache.jetspeed.util.PortletConfigState; import org.apache.jetspeed.util.PortletUtils; import org.apache.jetspeed.util.PortletSessionState; +import org.apache.jetspeed.util.SynchronizedMapping; import org.apache.jetspeed.services.security.PortalResource; import org.apache.jetspeed.om.security.JetspeedUser; import org.apache.jetspeed.services.JetspeedSecurity; @@ -1275,7 +1276,7 @@ { try { - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource( new FileReader(map) ); is.setSystemId( mapFile ); mapping.loadMapping( is ); Index: src/java/org/apache/jetspeed/modules/actions/portlets/PsmlUpdateAction.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/PsmlUpdateAction.java,v retrieving revision 1.18 diff -u -r1.18 PsmlUpdateAction.java --- src/java/org/apache/jetspeed/modules/actions/portlets/PsmlUpdateAction.java 31 Mar 2004 04:49:10 -0000 1.18 +++ src/java/org/apache/jetspeed/modules/actions/portlets/PsmlUpdateAction.java 30 Nov 2004 13:40:47 -0000 @@ -52,6 +52,7 @@ import org.apache.jetspeed.services.PsmlManager; import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; import org.apache.jetspeed.services.logging.JetspeedLogger; +import org.apache.jetspeed.util.SynchronizedMapping; import org.apache.jetspeed.util.template.JetspeedLink; import org.apache.jetspeed.util.template.JetspeedLinkFactory; import org.apache.jetspeed.services.resources.JetspeedResources; @@ -859,7 +860,7 @@ { try { - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource( new FileReader(map) ); is.setSystemId( mapFile ); mapping.loadMapping( is ); Index: src/java/org/apache/jetspeed/services/forward/JetspeedForwardService.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/services/forward/JetspeedForwardService.java,v retrieving revision 1.7 diff -u -r1.7 JetspeedForwardService.java --- src/java/org/apache/jetspeed/services/forward/JetspeedForwardService.java 23 Feb 2004 03:51:09 -0000 1.7 +++ src/java/org/apache/jetspeed/services/forward/JetspeedForwardService.java 30 Nov 2004 13:40:49 -0000 @@ -50,6 +50,7 @@ // jetspeed import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; import org.apache.jetspeed.services.logging.JetspeedLogger; +import org.apache.jetspeed.util.SynchronizedMapping; import org.apache.jetspeed.util.template.JetspeedLink; import org.apache.jetspeed.util.template.JetspeedLinkFactory; @@ -527,7 +528,7 @@ { try { - this.mapper = new Mapping(); + this.mapper = new SynchronizedMapping(); InputSource is = new InputSource(new FileReader(map)); is.setSystemId(this.mapping); this.mapper.loadMapping(is); Index: src/java/org/apache/jetspeed/services/psmlmanager/CastorPsmlManagerService.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/services/psmlmanager/CastorPsmlManagerService.java,v retrieving revision 1.46 diff -u -r1.46 CastorPsmlManagerService.java --- src/java/org/apache/jetspeed/services/psmlmanager/CastorPsmlManagerService.java 28 Aug 2004 19:07:00 -0000 1.46 +++ src/java/org/apache/jetspeed/services/psmlmanager/CastorPsmlManagerService.java 30 Nov 2004 13:40:51 -0000 @@ -21,6 +21,7 @@ import org.apache.jetspeed.om.profile.QueryLocator; import org.apache.jetspeed.util.FileCopy; import org.apache.jetspeed.util.DirectoryUtils; +import org.apache.jetspeed.util.SynchronizedMapping; import org.apache.jetspeed.services.Messenger; import org.apache.jetspeed.services.Profiler; import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; @@ -653,7 +654,7 @@ { try { - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource( new FileReader(map) ); is.setSystemId( mapFile ); mapping.loadMapping( is ); Index: src/java/org/apache/jetspeed/services/psmlmanager/db/DatabasePsmlManagerService.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/services/psmlmanager/db/DatabasePsmlManagerService.java,v retrieving revision 1.36 diff -u -r1.36 DatabasePsmlManagerService.java --- src/java/org/apache/jetspeed/services/psmlmanager/db/DatabasePsmlManagerService.java 28 Aug 2004 19:05:36 -0000 1.36 +++ src/java/org/apache/jetspeed/services/psmlmanager/db/DatabasePsmlManagerService.java 30 Nov 2004 13:40:52 -0000 @@ -60,6 +60,7 @@ import org.apache.jetspeed.om.security.Group; import org.apache.jetspeed.om.security.JetspeedGroupFactory; import org.apache.jetspeed.services.security.JetspeedSecurityException; +import org.apache.jetspeed.util.SynchronizedMapping; //Servlet API import javax.jms.JMSException; @@ -274,7 +275,7 @@ { try { - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource( new FileReader(map) ); is.setSystemId( mapFile ); mapping.loadMapping( is ); Index: src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java,v retrieving revision 1.44 diff -u -r1.44 CastorRegistryService.java --- src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java 5 Aug 2004 04:27:03 -0000 1.44 +++ src/java/org/apache/jetspeed/services/registry/CastorRegistryService.java 30 Nov 2004 13:40:53 -0000 @@ -21,6 +21,7 @@ import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; import org.apache.jetspeed.services.logging.JetspeedLogger; import org.apache.jetspeed.services.messaging.MessagingService; +import org.apache.jetspeed.util.SynchronizedMapping; import org.apache.jetspeed.om.registry.Registry; import org.apache.jetspeed.om.registry.RegistryEntry; import org.apache.jetspeed.om.registry.RegistryException; @@ -416,7 +417,7 @@ { try { - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource(new FileReader(map)); is.setSystemId(mapFile); mapping.loadMapping(is); Index: src/java/org/apache/jetspeed/services/registry/LateInitCastorRegistryService.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/LateInitCastorRegistryService.java,v retrieving revision 1.3 diff -u -r1.3 LateInitCastorRegistryService.java --- src/java/org/apache/jetspeed/services/registry/LateInitCastorRegistryService.java 17 Aug 2004 04:54:49 -0000 1.3 +++ src/java/org/apache/jetspeed/services/registry/LateInitCastorRegistryService.java 30 Nov 2004 13:40:54 -0000 @@ -21,6 +21,7 @@ import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; import org.apache.jetspeed.services.logging.JetspeedLogger; import org.apache.jetspeed.services.messaging.MessagingService; +import org.apache.jetspeed.util.SynchronizedMapping; import org.apache.jetspeed.om.registry.Registry; import org.apache.jetspeed.om.registry.RegistryEntry; import org.apache.jetspeed.om.registry.RegistryException; @@ -407,7 +408,7 @@ { try { - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource(new FileReader(map)); is.setSystemId(mapFile); mapping.loadMapping(is); Index: src/test/org/apache/jetspeed/services/psmlmanager/TestMarshalPsml.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/test/org/apache/jetspeed/services/psmlmanager/TestMarshalPsml.java,v retrieving revision 1.2 diff -u -r1.2 TestMarshalPsml.java --- src/test/org/apache/jetspeed/services/psmlmanager/TestMarshalPsml.java 31 Aug 2004 19:00:07 -0000 1.2 +++ src/test/org/apache/jetspeed/services/psmlmanager/TestMarshalPsml.java 30 Nov 2004 13:40:55 -0000 @@ -51,6 +51,7 @@ import org.apache.jetspeed.om.profile.Skin; import org.apache.jetspeed.om.profile.Security; import org.apache.jetspeed.test.JetspeedTestCase; +import org.apache.jetspeed.util.SynchronizedMapping; // Turbine imports import org.apache.turbine.util.TurbineConfig; @@ -121,7 +122,7 @@ try { FileReader reader = new FileReader(psmlFile); - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource( new FileReader(map) ); is.setSystemId( mapFile ); mapping.loadMapping( is ); @@ -179,7 +180,7 @@ try { FileReader reader = new FileReader(psmlFile); - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource( new FileReader(map) ); is.setSystemId( mapFile ); mapping.loadMapping( is ); @@ -381,7 +382,7 @@ try { FileReader reader = new FileReader(psmlFile); - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource( new FileReader(map) ); is.setSystemId( mapFile ); mapping.loadMapping( is ); @@ -423,7 +424,7 @@ if (map.exists() && map.isFile() && map.canRead()) { FileReader reader = new FileReader(psmlFile); - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource( new FileReader(map) ); is.setSystemId( mapFile ); mapping.loadMapping( is ); @@ -486,7 +487,7 @@ try { FileReader reader = new FileReader(psmlFile); - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource( new FileReader(map) ); is.setSystemId( mapFile ); mapping.loadMapping( is ); @@ -567,7 +568,7 @@ try { FileReader reader = new FileReader(psmlFile); - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource( new FileReader(map) ); is.setSystemId( mapFile ); mapping.loadMapping( is ); Index: src/test/org/apache/jetspeed/services/registry/TestCastor.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/test/org/apache/jetspeed/services/registry/TestCastor.java,v retrieving revision 1.1 diff -u -r1.1 TestCastor.java --- src/test/org/apache/jetspeed/services/registry/TestCastor.java 7 Apr 2004 22:02:42 -0000 1.1 +++ src/test/org/apache/jetspeed/services/registry/TestCastor.java 30 Nov 2004 13:40:55 -0000 @@ -22,6 +22,7 @@ import javax.xml.parsers.DocumentBuilderFactory; import org.apache.jetspeed.test.JetspeedTestCase; +import org.apache.jetspeed.util.SynchronizedMapping; import org.exolab.castor.mapping.Mapping; import org.exolab.castor.xml.Unmarshaller; import org.w3c.dom.Document; @@ -60,7 +61,7 @@ File map = new File(mapFile); try { - Mapping mapping = new Mapping(); + Mapping mapping = new SynchronizedMapping(); InputSource is = new InputSource(new FileReader(map)); is.setSystemId(mapFile); mapping.loadMapping(is); Index: src/test/org/apache/jetspeed/services/registry/TestMarshallRegistry.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/test/org/apache/jetspeed/services/registry/TestMarshallRegistry.java,v retrieving revision 1.2 diff -u -r1.2 TestMarshallRegistry.java --- src/test/org/apache/jetspeed/services/registry/TestMarshallRegistry.java 31 Aug 2004 19:00:07 -0000 1.2 +++ src/test/org/apache/jetspeed/services/registry/TestMarshallRegistry.java 30 Nov 2004 13:40:56 -0000 @@ -35,6 +35,7 @@ // Jetspeed imports import org.apache.jetspeed.test.JetspeedTestCase; +import org.apache.jetspeed.util.SynchronizedMapping; import org.apache.jetspeed.om.registry.CachedParameter; import org.apache.jetspeed.om.registry.Category; import org.apache.jetspeed.om.registry.ContentURL; @@ -119,7 +120,7 @@ try { FileReader reader = new FileReader(xregFile); - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource(new FileReader(map)); is.setSystemId(mapFile); mapping.loadMapping(is); @@ -323,7 +324,7 @@ if (map.exists() && map.isFile() && map.canRead()) { FileReader reader = new FileReader(xregFile); - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource(new FileReader(map)); is.setSystemId(mapFile); mapping.loadMapping(is); @@ -429,7 +430,7 @@ if (map.exists() && map.isFile() && map.canRead()) { FileReader reader = new FileReader(xregFile); - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource(new FileReader(map)); is.setSystemId(mapFile); mapping.loadMapping(is); @@ -515,7 +516,7 @@ try { FileReader reader = new FileReader(xregFile); - mapping = new Mapping(); + mapping = new SynchronizedMapping(); InputSource is = new InputSource(new FileReader(map)); is.setSystemId(mapFile); mapping.loadMapping(is); Index: src/java/org/apache/jetspeed/util/SynchronizedMapping.java =================================================================== RCS file: src/java/org/apache/jetspeed/util/SynchronizedMapping.java diff -N src/java/org/apache/jetspeed/util/SynchronizedMapping.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/java/org/apache/jetspeed/util/SynchronizedMapping.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,77 @@ +/* + * Copyright 2000-2001,2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.jetspeed.util; + +import java.io.IOException; +import java.net.URL; + +import org.exolab.castor.mapping.Mapping; +import org.exolab.castor.mapping.MappingException; +import org.xml.sax.InputSource; + +/** + * Thread safe wrapper for the castor Mapping class.
+ * This wrapper serializes all thread access to the loadMapping() methods. + * + */ + public class SynchronizedMapping extends Mapping { + + private static final Object global_synch = new Object(); + + + /** + * + */ + public SynchronizedMapping() + { + super(); + } + + /** + * @param arg0 + */ + public SynchronizedMapping(ClassLoader arg0) + { + super(arg0); + } + + + public void loadMapping(InputSource input) throws MappingException, IOException + { + synchronized (global_synch) + { + super.loadMapping(input); + } + } + + public void loadMapping(String input) throws MappingException, IOException + { + synchronized (global_synch) + { + super.loadMapping(input); + } + } + + public void loadMapping(URL input) throws MappingException, IOException + { + synchronized (global_synch) + { + super.loadMapping(input); + } + } + + +}