Author: scabanovich
Date: 2011-09-09 17:38:43 -0400 (Fri, 09 Sep 2011)
New Revision: 34619
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/XModelMetaData.java
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/impl/XModelMetaDataImpl.java
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/impl/XModelImpl.java
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/loaders/impl/ModelEntityRecognizer.java
Log:
JBIDE-9111
https://issues.jboss.org/browse/JBIDE-9111
Fix for deadlock at stacktrace.txt
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/XModelMetaData.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/XModelMetaData.java 2011-09-09
21:13:37 UTC (rev 34618)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/XModelMetaData.java 2011-09-09
21:38:43 UTC (rev 34619)
@@ -12,6 +12,7 @@
import org.jboss.tools.common.meta.action.XActionList;
import org.jboss.tools.common.model.icons.XIconList;
+import org.jboss.tools.common.model.loaders.EntityRecognizer;
public interface XModelMetaData {
public String[] entities();
@@ -20,5 +21,6 @@
public XMapping getMapping(String name);
public XIconList getIconList();
public XParents getParentInfo();
+ public EntityRecognizer getEntityRecognizer();
}
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/impl/XModelMetaDataImpl.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/impl/XModelMetaDataImpl.java 2011-09-09
21:13:37 UTC (rev 34618)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/meta/impl/XModelMetaDataImpl.java 2011-09-09
21:38:43 UTC (rev 34619)
@@ -22,6 +22,8 @@
import org.jboss.tools.common.meta.constraint.XAttributeConstraint;
import org.jboss.tools.common.meta.constraint.impl.XAttributeConstraintAList;
import org.jboss.tools.common.model.icons.impl.*;
+import org.jboss.tools.common.model.loaders.EntityRecognizer;
+import org.jboss.tools.common.model.loaders.impl.ModelEntityRecognizer;
public class XModelMetaDataImpl implements XModelMetaData, XMetaDataConstants {
private static XModelMetaDataImpl instance = null;
@@ -34,7 +36,9 @@
private XActionListImpl actions = new XActionListImpl();
private XExtensions extensions = new XExtensions();
private XParentsImpl parents = new XParentsImpl();
-
+
+ private ModelEntityRecognizer recognizer;
+
static Object lock = new Object();
public static XModelMetaData getInstance() {
@@ -67,8 +71,13 @@
long dt = - t + (t = System.currentTimeMillis());
ModelPlugin.getPluginLog().logInfo("Meta model loaded in " + dt + "
ms"); //$NON-NLS-1$ //$NON-NLS-2$
}
+ recognizer = new ModelEntityRecognizer(this);
}
+ public EntityRecognizer getEntityRecognizer() {
+ return recognizer;
+ }
+
private void makeStatistics(XModelEntity[] es) {
Set<String> attNames = new HashSet<String>();
Set<String> listValues = new HashSet<String>();
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/impl/XModelImpl.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/impl/XModelImpl.java 2011-09-09
21:13:37 UTC (rev 34618)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/impl/XModelImpl.java 2011-09-09
21:38:43 UTC (rev 34619)
@@ -68,7 +68,6 @@
private XUndoManager undoer = new XUndoManager();
private static ServiceDialog service = null;
private static XModelBufferImpl buffer = new XModelBufferImpl();
- private static ModelEntityRecognizer recognizer = new ModelEntityRecognizer();
private XModelChangeManager changemanager = new XModelChangeManager();
private FileSystemPeer fileregistry = new FileSystemPeer();
private PrintWriter out = new PrintWriter(System.out, true);
@@ -78,7 +77,6 @@
public XModelImpl(Properties properties, XModelMetaData metadata) {
this.metadata = metadata;
this.properties = properties;
- recognizer.setMetaData(metadata);
if(properties.getProperty(XModelObjectConstants.PROP_ROOT_ENTITY) != null) {
rootEntity = properties.getProperty(XModelObjectConstants.PROP_ROOT_ENTITY);
}
@@ -122,7 +120,7 @@
}
public EntityRecognizer getEntityRecognizer() {
- return recognizer;
+ return metadata.getEntityRecognizer();
}
public XModelChangeManager getChangeManager() {
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/loaders/impl/ModelEntityRecognizer.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/loaders/impl/ModelEntityRecognizer.java 2011-09-09
21:13:37 UTC (rev 34618)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/loaders/impl/ModelEntityRecognizer.java 2011-09-09
21:38:43 UTC (rev 34619)
@@ -17,20 +17,13 @@
import org.jboss.tools.common.model.util.ModelFeatureFactory;
public class ModelEntityRecognizer implements EntityRecognizer {
- private XModelMetaData meta = null;
private HashMap<String,EntityRecognizer[]> recognizers = new
HashMap<String,EntityRecognizer[]>();
private Set<String> umbiguousExtensions = new HashSet<String>();
- public ModelEntityRecognizer() {}
-
- boolean loaded = false;
-
- public void setMetaData(XModelMetaData meta) {
- if(this.meta != null) return;
- this.meta = meta;
- load();
+ public ModelEntityRecognizer(XModelMetaData meta) {
+ load(meta);
}
-
+
public String getEntityName(EntityRecognizerContext context) {
String ext = context.getExtension();
if(ext != null) ext = ext.toLowerCase();
@@ -48,7 +41,7 @@
|| (context.getExtension() != null &&
umbiguousExtensions.contains(context.getExtension()));
}
- private void load() {
+ private void load(XModelMetaData meta) {
XMapping m = meta.getMapping("Recognizers"); //$NON-NLS-1$
if(m == null) return;
HashMap<String,RL> ext_list = new HashMap<String,RL>();