You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2010/06/05 19:26:42 UTC
svn commit: r951745 - in /cayenne/main/trunk/framework:
cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/Entity.java
cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
Author: aadamchik
Date: Sat Jun 5 17:26:41 2010
New Revision: 951745
URL: http://svn.apache.org/viewvc?rev=951745&view=rev
Log:
CAY-1327 Migrate HSQLDB modeler preferences to Java preferences API
* fixing EntityResolver state switching to prevent broken namespaces for projects when projects
are opened multiple times
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/Entity.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/Entity.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/Entity.java?rev=951745&r1=951744&r2=951745&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/Entity.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/Entity.java Sat Jun 5 17:26:41 2010
@@ -405,12 +405,14 @@ public abstract class Entity implements
return rel;
}
}
+
+ String entityName = (currentEnt != null) ? currentEnt.getName() : "(?)";
// build error message
StringBuilder buf = new StringBuilder();
buf
.append("Can't resolve path component: [")
- .append(currentEnt.getName())
+ .append(entityName)
.append('.')
.append(pathComp)
.append("].");
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java?rev=951745&r1=951744&r2=951745&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java Sat Jun 5 17:26:41 2010
@@ -290,16 +290,14 @@ public class ProjectController extends C
}
public void setProject(Project currentProject) {
- if (this.project != currentProject) // strange enough, this method is called twice
- // during project opening. Not to disturb
- // watchdog extra time, adding this check
- {
+ if (this.project != currentProject) {
this.project = currentProject;
this.projectControllerPreferences = null;
- if (project == null) // null project -> no files to watch
- {
+ if (project == null) {
+ this.entityResolver = null;
+
if (watchdog != null) {
watchdog.interrupt();
watchdog = null;
@@ -313,17 +311,11 @@ public class ProjectController extends C
watchdog.reconfigure();
- if (entityResolver == null) {
- entityResolver = new EntityResolver(
- ((DataChannelDescriptor) currentProject.getRootNode())
- .getDataMaps());
- }
+ entityResolver = new EntityResolver(
+ ((DataChannelDescriptor) currentProject.getRootNode())
+ .getDataMaps());
- Iterator<DataMap> it = entityResolver.getDataMaps().iterator();
- while (it.hasNext()) {
- DataMap map = it.next();
- map.setNamespace(entityResolver);
- }
+ updateEntityResolver();
// addDomainListener(((ModelerProjectConfiguration) project
// .getConfiguration()).getGraphRegistry());
@@ -333,14 +325,13 @@ public class ProjectController extends C
public void updateEntityResolver() {
- entityResolver.clearCache();
- entityResolver.setDataMaps(((DataChannelDescriptor) project.getRootNode())
- .getDataMaps());
+ Collection<DataMap> dataMaps = ((DataChannelDescriptor) project.getRootNode())
+ .getDataMaps();
- Iterator<DataMap> it = entityResolver.getDataMaps().iterator();
- while (it.hasNext()) {
- DataMap map = it.next();
- map.setNamespace(entityResolver);
+ entityResolver.setDataMaps(dataMaps);
+
+ for (DataMap dataMap : dataMaps) {
+ dataMap.setNamespace(entityResolver);
}
}