diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/emfstore/EclipseWorkspaceLocationProviderBase.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/emfstore/EclipseWorkspaceLocationProviderBase.java index 08bb4cf0c2d6005647df719ab54e9cb504a3d345..d8addc971669c89f07cbf9888921fc68d71ab8df 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/emfstore/EclipseWorkspaceLocationProviderBase.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/emfstore/EclipseWorkspaceLocationProviderBase.java @@ -36,13 +36,16 @@ public abstract class EclipseWorkspaceLocationProviderBase implements LocationProvider { /** Store the workspace location. */ - private final IProject workspaceProject; + private IProject workspaceProject; /** Stores the backup location. */ - private final IProject backupProject; + private IProject backupProject; - /** Constructor. */ - public EclipseWorkspaceLocationProviderBase() { + /** Stores initilization flag. */ + private boolean initialized = false; + + /** Initialize the locations. */ + private void initialize() { IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); this.workspaceProject = workspaceRoot .getProject(getWorkspaceProjectName()); @@ -61,6 +64,7 @@ public abstract class EclipseWorkspaceLocationProviderBase implements printCreationError(getBackupProjectName(), e); } } + initialized = true; } /** Prints error message to standard error. */ @@ -78,12 +82,18 @@ public abstract class EclipseWorkspaceLocationProviderBase implements /** {@inheritDoc} */ @Override public final String getWorkspaceDirectory() { - return workspaceProject.getFullPath().toString(); + if (!initialized) { + initialize(); + } + return workspaceProject.getLocation().toString(); } /** {@inheritDoc} */ @Override public final String getBackupDirectory() { - return backupProject.getFullPath().toString(); + if (!initialized) { + initialize(); + } + return backupProject.getLocation().toString(); } }