svn commit: r18327 - trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: tfmorris
Date: 2010-04-22 13:34:14-0700
New Revision: 18327
Modified:
trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java
Log:
Protect profile loading with mutex so it's thread safe
Modified: trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java?view=diff&pathrev=18327&r1=18326&r2=18327
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java (original)
+++ trunk/src/argouml-app/src/org/argouml/profile/UserDefinedProfile.java 2010-04-22 13:34:14-0700
@@ -87,6 +87,7 @@
private File modelFile;
private Collection profilePackages = null;
+ private Object packageLock = new Object();
private UserDefinedFigNodeStrategy figNodeStrategy
= new UserDefinedFigNodeStrategy();
@@ -310,17 +311,22 @@
* dependencies
*/
private void loadModel() {
- if (profilePackages == null) {
- try {
- if (modelFile != null) {
- profilePackages = new FileModelLoader().loadModel(reference);
- } else {
- profilePackages = new URLModelLoader().loadModel(reference);
+ synchronized (packageLock) {
+ if (profilePackages == null) {
+ try {
+ if (modelFile != null) {
+ profilePackages = new FileModelLoader()
+ .loadModel(reference);
+ } else {
+ profilePackages = new URLModelLoader()
+ .loadModel(reference);
+ }
+ } catch (ProfileException e1) {
+ LOG.error("Exception loading profile "
+ + reference.getPath(), e1);
+ profilePackages = Collections.emptySet();
+ return;
}
- } catch (ProfileException e1) {
- LOG.error("Exception loading profile " + reference.getPath(),
- e1);
- return;
}
Collection packagesInProfile = filterPackages(profilePackages);
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2592906
To unsubscribe from this discussion, e-mail: [[email protected]].