0

Rational SoftwareArchitect8.0に問題があります。モデルにいくつかの追加機能を提供するプラグインを開発しています。プラグインが期待どおりに動作することを確認するために、単体テストを作成しようとしています。

これらのテストの一部として、UMLモデル(emx形式)を開き、いくつかの操作を行う必要があります。私はcom.ibm.xtools.modeler.ui.UMLModeler.openModelResource(..)そのために使用しますが、奇妙な例外をスローします。コードスニペットは次のとおりです。

Element root = null;
try {
    root = UMLModeler.openModelResource(fileName);
} catch (IOException e) {
    System.out.println("Error while opening model " + fileName + ": " + e.getMessage());
}
return root;

そして、ここにスローされる例外があります:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:222)
    at org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain$MSLResourceSet.addURIHandlers(MSLEditingDomain.java:2282)
    at org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain$MSLResourceSet.<init>(MSLEditingDomain.java:2315)
    at org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain.<init>(MSLEditingDomain.java:255)
    at org.eclipse.gmf.runtime.emf.core.internal.domain.MSLEditingDomain.<init>(MSLEditingDomain.java:234)
    at org.eclipse.gmf.runtime.emf.core.edit.MEditingDomain.createDefaultEditingDomain(MEditingDomain.java:112)
    at org.eclipse.gmf.runtime.emf.core.edit.MEditingDomain.<clinit>(MEditingDomain.java:70)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
    at org.eclipse.gmf.runtime.emf.core.util.ResourceUtil.findResource(ResourceUtil.java:163)
    at com.ibm.xtools.modeler.ui.UMLModeler.openUMLResource(UMLModeler.java:1144)
    at com.ibm.xtools.modeler.ui.UMLModeler.openModelResource(UMLModeler.java:451)
    at uk.ac.open.rbacuml.dsml.plugin.research.fixing.SSoDConstraintFixingTest.loadModel(SSoDConstraintFixingTest.java:23)
    at uk.ac.open.rbacuml.dsml.plugin.research.fixing.SSoDConstraintFixingTest.testSSoDConstraintFixing(SSoDConstraintFixingTest.java:32)
    at uk.ac.open.rbacuml.dsml.plugin.research.fixing.SSoDConstraintFixingTest.main(SSoDConstraintFixingTest.java:17)
Caused by: java.lang.NullPointerException
    at org.eclipse.gmf.runtime.common.core.util.Log.<clinit>(Log.java:42)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
    ... 14 more

私は明らかに何か間違ったことをしているのですが、何が起こっているのかわかりません。助言がありますか?

4

1 に答える 1

0

ModelResourcesは、UMLModelerのEditingDomain内から開く必要があります。

UMLModeler.getEditingDomain().runExclusive(new Runnable() {
    public void run() {
        Element root = null;
        try {
            root = UMLModeler.openModelResource(fileName);
        } catch (IOException e) {
            System.out.println("Error while opening model " + fileName + ": " + e.getMessage());
        }
    }
});
于 2013-10-09T14:10:20.143 に答える