ClassNotFound while testing the xtext generated editor [message #665201] |
Wed, 13 April 2011 15:56 |
Rubén Porras Campo Messages: 67 Registered: July 2009 |
Member |
|
|
Hi,
when I run (right click on the project com.foo.bttg.edit and choose run as "Eclipse Application") the project of the Xtext generated editor I get the following error after clicking on a source of the type .btc (sources with the extension btt and btpt are not registered, also I do not know how to fix this either):
Quote: | !SESSION 2011-04-13 17:40:49.656 -----------------------------------------------
eclipse.buildId=M20100909-0800
java.version=1.6.0_21
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_CH
Framework arguments: -product org.eclipse.sdk.ide
Command-line arguments: -product org.eclipse.sdk.ide -data C:\eclipse_workspaces\helios/../runtime-EclipseApplication -dev file:C:/eclipse_workspaces/helios/.metadata/.plugins/org.ecl ipse.pde.core/Eclipse Application/dev.properties -os win32 -ws win32 -arch x86 -consoleLog
!ENTRY org.eclipse.ui 4 0 2011-04-13 17:40:59.265
!MESSAGE Unable to create editor ID com.foo.dsl.Common: No editor descriptor for id com.foo.dsl.Common
!STACK 1
org.eclipse.ui.PartInitException: No editor descriptor for id com.foo.dsl.Common
at org.eclipse.ui.internal.EditorReference.createPartHelper(Edi torReference.java:601)
at org.eclipse.ui.internal.EditorReference.createPart(EditorRef erence.java:465)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:595)
at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(Ed itorAreaHelper.java:271)
at org.eclipse.ui.internal.EditorManager.setVisibleEditor(Edito rManager.java:1429)
at org.eclipse.ui.internal.EditorManager$5.runWithException(Edi torManager.java:942)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run (StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:803)
at org.eclipse.ui.internal.Workbench$31.runWithException(Workbe nch.java:1567)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run (StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:24 38)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:115)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
!SUBENTRY 1 org.eclipse.ui 4 0 2011-04-13 17:40:59.281
!MESSAGE No editor descriptor for id com.foo.dsl.Common
!ENTRY org.eclipse.ui 2 2 2011-04-13 17:40:59.328
!MESSAGE Ignored attempt to add saveable that was already registered
!STACK 0
org.eclipse.core.runtime.AssertionFailedException: unknown saveable: org.eclipse.ui.internal.DefaultSaveable@1d3694a from part: org.eclipse.ui.internal.ErrorEditorPart@1d3694a
at org.eclipse.ui.internal.SaveablesList.logWarning(SaveablesLi st.java:187)
at org.eclipse.ui.internal.SaveablesList.addModel(SaveablesList .java:117)
at org.eclipse.ui.internal.SaveablesList.addModels(SaveablesLis t.java:289)
at org.eclipse.ui.internal.SaveablesList.postOpen(SaveablesList .java:684)
at org.eclipse.ui.internal.PartList.partOpened(PartList.java:23 4)
at org.eclipse.ui.internal.PartList.access$0(PartList.java:210)
at org.eclipse.ui.internal.PartList$1.propertyChanged(PartList. java:40)
at org.eclipse.ui.internal.WorkbenchPartReference.fireInternalP ropertyChange(WorkbenchPartReference.java:375)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb enchPartReference.java:610)
at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(Ed itorAreaHelper.java:271)
at org.eclipse.ui.internal.EditorManager.setVisibleEditor(Edito rManager.java:1429)
at org.eclipse.ui.internal.EditorManager$5.runWithException(Edi torManager.java:942)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run (StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:803)
at org.eclipse.ui.internal.Workbench$31.runWithException(Workbe nch.java:1567)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run (StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:24 38)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:115)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
!ENTRY org.eclipse.ui 4 4 2011-04-13 17:42:31.793
!MESSAGE Invalid preference page path: Common
|
I do not know why eclipse is searching for com.foo.dsl.Common, since my project is named com.foo.bttg I would expect eclipse to search for com.foo.bttg.Common instead.
I've searched the workspace for the string "com.foo.dsl", but I did not found this string anywhere in the workspace.
In case it helps I append the Workflow that generates the editor and other artifacts:
module com.foo.bttg.BuildAll
import org.eclipse.emf.mwe.utils.*
import org.eclipse.xtext.generator.*
import org.eclipse.xtext.ui.generator.*
var baseDir = "/com/foo/bttg/meta_model"
var projectName = "com.foo.bttg"
var runtimeProject = "../${projectName}"
var basisClasspath = "classpath:${baseDir}"
Workflow {
bean = StandaloneSetup {
platformUri = "${runtimeProject}/.."
}
component = DirectoryCleaner {
directory = "${runtimeProject}/src-gen"
}
component = DirectoryCleaner {
directory = "${runtimeProject}.ui/src-gen"
}
component = Generator {
pathRtProject = runtimeProject
projectNameRt = projectName
language = {
fileExtensions = "mtd"
uri = "${basisClasspath}/mtd/MTD.xtext"
fragment = grammarAccess.GrammarAccessFragment {}
// Generate java classes for Ecore models
fragment = ecore.EcoreGeneratorFragment auto-inject {}
// the serialization component
fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
// a custom ResourceFactory for use with EMF
fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
// The antlr parser generator fragment.
fragment = parser.antlr.XtextAntlrGeneratorFragment {}
// validation API
fragment = validation.CheckFragment {}
}
language = {
fileExtensions = "dsl"
uri = "${basisClasspath}/dsl/DSL.xtext"
fragment = grammarAccess.GrammarAccessFragment {}
// Generate java classes for Ecore models
fragment = ecore.EcoreGeneratorFragment auto-inject {}
// the serialization component
fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
// a custom ResourceFactory for use with EMF
fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
// The antlr parser generator fragment.
fragment = parser.antlr.XtextAntlrGeneratorFragment {
options = auto-inject {
backtrack = true
}
}
// scoping API
fragment = scoping.ImportNamespacesScopingFragment {}
fragment = exporting.QualifiedNamesFragment {}
}
}
component = Generator {
pathRtProject = runtimeProject
pathUiProject = "${runtimeProject}.ui"
projectNameRt = projectName
projectNameUi = "${projectName}.ui"
language = {
fileExtensions = "btc, btpt, btt"
uri = "${basisClasspath}/btc/BTC.xtext"
fragment = grammarAccess.GrammarAccessFragment {}
// Generate java classes for Ecore models
fragment = ecore.EcoreGeneratorFragment auto-inject {
generateEdit = true
}
// the serialization component
fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
// a custom ResourceFactory for use with EMF
fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
// The antlr parser generator fragment.
fragment = parser.antlr.XtextAntlrGeneratorFragment {
options = auto-inject {
backtrack = true
}
}
// validation API
fragment = validation.CheckFragment {}
fragment = validation.JavaValidatorFragment {
composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
}
// scoping API
fragment = scoping.ImportNamespacesScopingFragment {}
fragment = exporting.QualifiedNamesFragment {}
fragment = builder.BuilderIntegrationFragment {}
// formatter API
//fragment = formatting.FormatterFragment {}
// labeling API
fragment = labeling.LabelProviderFragment {}
// outline API
fragment = outline.TransformerFragment {}
fragment = outline.OutlineNodeAdapterFactoryFragment {}
//fragment = outline.QuickOutlineFragment {}
// java-based API for content assistance
fragment = contentAssist.JavaBasedContentAssistFragment {}
//fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
// options = { backtrack = true }
//}
fragment = builder.BuilderIntegrationFragment {}
// quickfix API
//fragment = quickfix.QuickfixProviderFragment {}
}
}
}
Could someone point me in the right direction?
Regards.
|
|
|
Re: ClassNotFound while testing the xtext generated editor [message #665211 is a reply to message #665201] |
Wed, 13 April 2011 17:22 |
Sebastian Zarnekow Messages: 3118 Registered: July 2009 |
Senior Member |
|
|
Hi Ruben,
please make sure that the plugin.xml and the plugin.xml_gen files of the
runtime and ui projects are in sync. They are not automatically merged.
Be careful to not override manual additions in the plugin.xml files.
Regards,
Sebastian
--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com
Am 13.04.11 17:56, schrieb Ruben:
> Hi,
>
> when I run (right click on the project com.foo.bttg.edit and choose run
> as "Eclipse Application") the project of the Xtext generated editor I
> get the following error after clicking on a source of the type .btc
> (sources with the extension btt and btpt are not registered, also I do
> not know how to fix this either):
>
> Quote:
>> !SESSION 2011-04-13 17:40:49.656
>> -----------------------------------------------
>> eclipse.buildId=M20100909-0800
>> java.version=1.6.0_21
>> java.vendor=Sun Microsystems Inc.
>> BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_CH
>> Framework arguments: -product org.eclipse.sdk.ide
>> Command-line arguments: -product org.eclipse.sdk.ide -data
>> C:\eclipse_workspaces\helios/../runtime-EclipseApplication -dev
>> file:C:/eclipse_workspaces/helios/.metadata/.plugins/org.ecl
>> ipse.pde.core/Eclipse Application/dev.properties -os win32 -ws win32
>> -arch x86 -consoleLog
>>
>> !ENTRY org.eclipse.ui 4 0 2011-04-13 17:40:59.265
>> !MESSAGE Unable to create editor ID com.foo.dsl.Common: No editor
>> descriptor for id com.foo.dsl.Common
>> !STACK 1
>> org.eclipse.ui.PartInitException: No editor descriptor for id
>> com.foo.dsl.Common
>> at org.eclipse.ui.internal.EditorReference.createPartHelper(Edi
>> torReference.java:601)
>> at org.eclipse.ui.internal.EditorReference.createPart(EditorRef
>> erence.java:465)
>> at org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb
>> enchPartReference.java:595)
>> at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(Ed
>> itorAreaHelper.java:271)
>> at org.eclipse.ui.internal.EditorManager.setVisibleEditor(Edito
>> rManager.java:1429)
>> at org.eclipse.ui.internal.EditorManager$5.runWithException(Edi
>> torManager.java:942)
>> at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run
>> (StartupThreading.java:31)
>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
>> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr
>> onizer.java:134)
>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
>> at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work
>> benchAdvisor.java:803)
>> at org.eclipse.ui.internal.Workbench$31.runWithException(Workbe
>> nch.java:1567)
>> at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run
>> (StartupThreading.java:31)
>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
>> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr
>> onizer.java:134)
>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548)
>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:24 38)
>> at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
>> at org.eclipse.core.databinding.observable.Realm.runWithDefault
>> (Realm.java:332)
>> at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work
>> bench.java:664)
>> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>> at org.eclipse.ui.internal.ide.application.IDEApplication.start
>> (IDEApplication.java:115)
>> at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips
>> eAppHandle.java:196)
>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
>> .runApplication(EclipseAppLauncher.java:110)
>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
>> .start(EclipseAppLauncher.java:79)
>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
>> tarter.java:369)
>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
>> tarter.java:179)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> at java.lang.reflect.Method.invoke(Unknown Source)
>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
>> at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
>> at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
>> !SUBENTRY 1 org.eclipse.ui 4 0 2011-04-13 17:40:59.281
>> !MESSAGE No editor descriptor for id com.foo.dsl.Common
>>
>> !ENTRY org.eclipse.ui 2 2 2011-04-13 17:40:59.328
>> !MESSAGE Ignored attempt to add saveable that was already registered
>> !STACK 0
>> org.eclipse.core.runtime.AssertionFailedException: unknown saveable:
>> org.eclipse.ui.internal.DefaultSaveable@1d3694a from part:
>> org.eclipse.ui.internal.ErrorEditorPart@1d3694a
>> at org.eclipse.ui.internal.SaveablesList.logWarning(SaveablesLi
>> st.java:187)
>> at org.eclipse.ui.internal.SaveablesList.addModel(SaveablesList
>> .java:117)
>> at org.eclipse.ui.internal.SaveablesList.addModels(SaveablesLis
>> t.java:289)
>> at org.eclipse.ui.internal.SaveablesList.postOpen(SaveablesList
>> .java:684)
>> at org.eclipse.ui.internal.PartList.partOpened(PartList.java:23 4)
>> at org.eclipse.ui.internal.PartList.access$0(PartList.java:210)
>> at org.eclipse.ui.internal.PartList$1.propertyChanged(PartList. java:40)
>> at org.eclipse.ui.internal.WorkbenchPartReference.fireInternalP
>> ropertyChange(WorkbenchPartReference.java:375)
>> at org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb
>> enchPartReference.java:610)
>> at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(Ed
>> itorAreaHelper.java:271)
>> at org.eclipse.ui.internal.EditorManager.setVisibleEditor(Edito
>> rManager.java:1429)
>> at org.eclipse.ui.internal.EditorManager$5.runWithException(Edi
>> torManager.java:942)
>> at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run
>> (StartupThreading.java:31)
>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
>> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr
>> onizer.java:134)
>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
>> at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work
>> benchAdvisor.java:803)
>> at org.eclipse.ui.internal.Workbench$31.runWithException(Workbe
>> nch.java:1567)
>> at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run
>> (StartupThreading.java:31)
>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
>> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr
>> onizer.java:134)
>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548)
>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:24 38)
>> at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
>> at org.eclipse.core.databinding.observable.Realm.runWithDefault
>> (Realm.java:332)
>> at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work
>> bench.java:664)
>> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>> at org.eclipse.ui.internal.ide.application.IDEApplication.start
>> (IDEApplication.java:115)
>> at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips
>> eAppHandle.java:196)
>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
>> .runApplication(EclipseAppLauncher.java:110)
>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
>> .start(EclipseAppLauncher.java:79)
>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
>> tarter.java:369)
>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
>> tarter.java:179)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> at java.lang.reflect.Method.invoke(Unknown Source)
>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
>> at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
>> at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
>>
>> !ENTRY org.eclipse.ui 4 4 2011-04-13 17:42:31.793
>> !MESSAGE Invalid preference page path: Common
>
>
> I do not know why eclipse is searching for com.foo.dsl.Common, since my
> project is named com.foo.bttg I would expect eclipse to search for
> com.foo.bttg.Common instead.
>
> I've searched the workspace for the string "com.foo.dsl", but I did not
> found this string anywhere in the workspace.
>
> In case it helps I append the Workflow that generates the editor and
> other artifacts:
>
> module com.foo.bttg.BuildAll
>
> import org.eclipse.emf.mwe.utils.*
> import org.eclipse.xtext.generator.*
> import org.eclipse.xtext.ui.generator.*
>
> var baseDir = "/com/foo/bttg/meta_model"
> var projectName = "com.foo.bttg"
> var runtimeProject = "../${projectName}"
> var basisClasspath = "classpath:${baseDir}"
>
> Workflow {
> bean = StandaloneSetup {
> platformUri = "${runtimeProject}/.."
> }
>
> component = DirectoryCleaner {
> directory = "${runtimeProject}/src-gen"
> }
>
> component = DirectoryCleaner {
> directory = "${runtimeProject}.ui/src-gen"
> }
>
> component = Generator {
>
> pathRtProject = runtimeProject
> projectNameRt = projectName
> language = {
> fileExtensions = "mtd"
> uri = "${basisClasspath}/mtd/MTD.xtext"
> fragment = grammarAccess.GrammarAccessFragment {}
>
> // Generate java classes for Ecore models
> fragment = ecore.EcoreGeneratorFragment auto-inject {}
>
> // the serialization component
> fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
>
> // a custom ResourceFactory for use with EMF fragment =
> resourceFactory.ResourceFactoryFragment auto-inject {}
>
> // The antlr parser generator fragment.
> fragment = parser.antlr.XtextAntlrGeneratorFragment {}
>
> // validation API fragment = validation.CheckFragment {}
> }
>
> language = {
> fileExtensions = "dsl"
> uri = "${basisClasspath}/dsl/DSL.xtext"
> fragment = grammarAccess.GrammarAccessFragment {}
>
> // Generate java classes for Ecore models
> fragment = ecore.EcoreGeneratorFragment auto-inject {}
>
> // the serialization component
> fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
>
> // a custom ResourceFactory for use with EMF fragment =
> resourceFactory.ResourceFactoryFragment auto-inject {}
>
> // The antlr parser generator fragment.
> fragment = parser.antlr.XtextAntlrGeneratorFragment {
> options = auto-inject {
> backtrack = true
> }
> }
>
> // scoping API
> fragment = scoping.ImportNamespacesScopingFragment {}
> fragment = exporting.QualifiedNamesFragment {}
> }
> }
>
> component = Generator {
> pathRtProject = runtimeProject
> pathUiProject = "${runtimeProject}.ui"
> projectNameRt = projectName
> projectNameUi = "${projectName}.ui"
> language = {
> fileExtensions = "btc, btpt, btt"
> uri = "${basisClasspath}/btc/BTC.xtext"
> fragment = grammarAccess.GrammarAccessFragment {}
>
> // Generate java classes for Ecore models
> fragment = ecore.EcoreGeneratorFragment auto-inject {
> generateEdit = true
> }
>
> // the serialization component
> fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
>
> // a custom ResourceFactory for use with EMF fragment =
> resourceFactory.ResourceFactoryFragment auto-inject {}
>
> // The antlr parser generator fragment.
> fragment = parser.antlr.XtextAntlrGeneratorFragment {
> options = auto-inject {
> backtrack = true
> }
> }
>
> // validation API fragment = validation.CheckFragment {}
>
> fragment = validation.JavaValidatorFragment {
> composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
> composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
> }
>
> // scoping API
> fragment = scoping.ImportNamespacesScopingFragment {}
> fragment = exporting.QualifiedNamesFragment {}
> fragment = builder.BuilderIntegrationFragment {}
>
> // formatter API //fragment = formatting.FormatterFragment {}
>
> // labeling API fragment = labeling.LabelProviderFragment {}
>
> // outline API
> fragment = outline.TransformerFragment {}
> fragment = outline.OutlineNodeAdapterFactoryFragment {}
> //fragment = outline.QuickOutlineFragment {}
>
> // java-based API for content assistance fragment =
> contentAssist.JavaBasedContentAssistFragment {}
> //fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
> // options = { backtrack = true }
> //}
> fragment = builder.BuilderIntegrationFragment {}
>
> // quickfix API //fragment = quickfix.QuickfixProviderFragment {}
> }
> }
>
> }
>
>
> Could someone point me in the right direction?
>
> Regards.
|
|
|
|
Re: ClassNotFound while testing the xtext generated editor [message #665296 is a reply to message #665293] |
Thu, 14 April 2011 08:16 |
Sebastian Zarnekow Messages: 3118 Registered: July 2009 |
Senior Member |
|
|
Hi Ruben,
the exception indicates that one of the plugin.xml files of your
projects is not in sync. Do you have more than one language in your
project? Do you use multiple workflows to generate the files or only one
workflow?
Regards,
Sebastian
--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com
Am 14.04.11 09:57, schrieb Ruben:
> Hi Sebastian,
>
> that solved the problem. I have now a different problem (please let me
> know if you prefer a new post for the new problem). Apparently not all
> extensions were properly registered (.btc works fine, but .btt does not):
>
> Quote:
>> 0 [main] ERROR org.eclipse.xtext.ui.editor.CompoundXtextEditorCallback
>> - different instances of editor were given.
>> java.lang.IllegalStateException: different instances of editor were
>> given.
>> at org.eclipse.xtext.ui.editor.AbstractDirtyStateAwareEditorCal
>> lback.beforeDispose(AbstractDirtyStateAwareEditorCallback.ja va:37)
>> at org.eclipse.xtext.ui.editor.CompoundXtextEditorCallback.befo
>> reDispose(CompoundXtextEditorCallback.java:70)
>> at org.eclipse.xtext.ui.editor.XtextEditor.dispose(XtextEditor. java:382)
>> at org.eclipse.ui.internal.EditorReference.createPartHelper(Edi
>> torReference.java:705)
>> at org.eclipse.ui.internal.EditorReference.createPart(EditorRef
>> erence.java:465)
>> at org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb
>> enchPartReference.java:595)
>> at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(Ed
>> itorAreaHelper.java:271)
>> at org.eclipse.ui.internal.EditorManager.setVisibleEditor(Edito
>> rManager.java:1429)
>> at org.eclipse.ui.internal.EditorManager$5.runWithException(Edi
>> torManager.java:942)
>> at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run
>> (StartupThreading.java:31)
>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
>> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr
>> onizer.java:134)
>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
>> at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work
>> benchAdvisor.java:803)
>> at org.eclipse.ui.internal.Workbench$31.runWithException(Workbe
>> nch.java:1567)
>> at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run
>> (StartupThreading.java:31)
>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
>> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr
>> onizer.java:134)
>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548)
>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:24 38)
>> at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
>> at org.eclipse.core.databinding.observable.Realm.runWithDefault
>> (Realm.java:332)
>> at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work
>> bench.java:664)
>> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>> at org.eclipse.ui.internal.ide.application.IDEApplication.start
>> (IDEApplication.java:115)
>> at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips
>> eAppHandle.java:196)
>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
>> .runApplication(EclipseAppLauncher.java:110)
>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
>> .start(EclipseAppLauncher.java:79)
>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
>> tarter.java:369)
>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
>> tarter.java:179)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> at java.lang.reflect.Method.invoke(Unknown Source)
>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
>> at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
>> at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
>> !SESSION 2011-04-14 09:45:03.337
>> -----------------------------------------------
>> eclipse.buildId=M20100909-0800
>> java.version=1.6.0_21
>> java.vendor=Sun Microsystems Inc.
>> BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_CH
>> Framework arguments: -product org.eclipse.sdk.ide
>> Command-line arguments: -product org.eclipse.sdk.ide -data
>> C:\eclipse_workspaces\helios/../runtime-EclipseApplication -dev
>> file:C:/eclipse_workspaces/helios/.metadata/.plugins/org.ecl
>> ipse.pde.core/Eclipse Application/dev.properties -os win32 -ws win32
>> -arch x86 -consoleLog
>>
>> !ENTRY org.apache.log4j 4 0 2011-04-14 09:45:09.665
>> !MESSAGE org.eclipse.xtext.ui.editor.CompoundXtextEditorCallback -
>> different instances of editor were given.
>>
>>
>> !ENTRY org.eclipse.ui 4 0 2011-04-14 09:45:09.680
>> !MESSAGE Unable to create editor ID com.foo.bttg.meta_model.btc.BTC:
>> Editor could not be initialized.
>> !STACK 0
>> java.lang.IllegalStateException: The resource factory registered for
>> platform:/resource/test/test.btt does not yield an XtextResource. Make
>> sure the file name extension is correct (case matters).
>> at org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFac
>> tory.createResource(ResourceForIEditorInputFactory.java:77)
>> at org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFac
>> tory.createResourceFor(ResourceForIEditorInputFactory.java:6 9)
>> at org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFac
>> tory.createResource(ResourceForIEditorInputFactory.java:61)
>> at org.eclipse.xtext.ui.editor.model.JavaClassPathResourceForIE
>> ditorInputFactory.createResource(JavaClassPathResourceForIEd
>> itorInputFactory.java:37)
>> at org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFac
>> tory.createResource(ResourceForIEditorInputFactory.java:49)
>> at org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.setD
>> ocumentContent(XtextDocumentProvider.java:102)
>> at org.eclipse.ui.editors.text.StorageDocumentProvider.createDo
>> cument(StorageDocumentProvider.java:229)
>> at org.eclipse.ui.editors.text.FileDocumentProvider.createEleme
>> ntInfo(FileDocumentProvider.java:735)
>> at org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.crea
>> teElementInfo(XtextDocumentProvider.java:131)
>> at org.eclipse.ui.texteditor.AbstractDocumentProvider.connect(A
>> bstractDocumentProvider.java:400)
>> at org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(Abst
>> ractTextEditor.java:4056)
>> at org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(Status
>> TextEditor.java:217)
>> at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.doSetI
>> nput(AbstractDecoratedTextEditor.java:1444)
>> at org.eclipse.ui.editors.text.TextEditor.doSetInput(TextEditor
>> .java:169)
>> at org.eclipse.xtext.ui.editor.XtextEditor.doSetInput(XtextEdit
>> or.java:149)
>> at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(Abstract
>> TextEditor.java:3043)
>> at org.eclipse.jface.operation.ModalContext.runInCurrentThread(
>> ModalContext.java:464)
>> at org.eclipse.jface.operation.ModalContext.run(ModalContext.ja va:372)
>> at org.eclipse.jface.window.ApplicationWindow$1.run(Application
>> Window.java:759)
>> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
>> at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWi
>> ndow.java:756)
>> at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.
>> java:2600)
>> at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(Ab
>> stractTextEditor.java:3061)
>> at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTe
>> xtEditor.java:3088)
>> at org.eclipse.xtext.ui.editor.XtextEditor.init(XtextEditor.jav a:169)
>> at org.eclipse.ui.internal.EditorManager.createSite(EditorManag
>> er.java:798)
>> at org.eclipse.ui.internal.EditorReference.createPartHelper(Edi
>> torReference.java:647)
>> at org.eclipse.ui.internal.EditorReference.createPart(EditorRef
>> erence.java:465)
>> at org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb
>> enchPartReference.java:595)
>> at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(Ed
>> itorAreaHelper.java:271)
>> at org.eclipse.ui.internal.EditorManager.setVisibleEditor(Edito
>> rManager.java:1429)
>> at org.eclipse.ui.internal.EditorManager$5.runWithException(Edi
>> torManager.java:942)
>> at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run
>> (StartupThreading.java:31)
>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
>> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr
>> onizer.java:134)
>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
>> at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work
>> benchAdvisor.java:803)
>> at org.eclipse.ui.internal.Workbench$31.runWithException(Workbe
>> nch.java:1567)
>> at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run
>> (StartupThreading.java:31)
>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
>> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr
>> onizer.java:134)
>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548)
>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:24 38)
>> at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
>> at org.eclipse.core.databinding.observable.Realm.runWithDefault
>> (Realm.java:332)
>> at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work
>> bench.java:664)
>> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>> at org.eclipse.ui.internal.ide.application.IDEApplication.start
>> (IDEApplication.java:115)
>> at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips
>> eAppHandle.java:196)
>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
>> .runApplication(EclipseAppLauncher.java:110)
>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
>> .start(EclipseAppLauncher.java:79)
>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
>> tarter.java:369)
>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
>> tarter.java:179)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> at java.lang.reflect.Method.invoke(Unknown Source)
>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
>> at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
>> at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
>>
>> !ENTRY org.eclipse.ui 2 2 2011-04-14 09:45:09.680
>> !MESSAGE Ignored attempt to add saveable that was already registered
>> !STACK 0
>> org.eclipse.core.runtime.AssertionFailedException: unknown saveable:
>> org.eclipse.ui.internal.DefaultSaveable@10608e6 from part:
>> org.eclipse.ui.internal.ErrorEditorPart@10608e6
>> at org.eclipse.ui.internal.SaveablesList.logWarning(SaveablesLi
>> st.java:187)
>> at org.eclipse.ui.internal.SaveablesList.addModel(SaveablesList
>> .java:117)
>> at org.eclipse.ui.internal.SaveablesList.addModels(SaveablesLis
>> t.java:289)
>> at org.eclipse.ui.internal.SaveablesList.postOpen(SaveablesList
>> .java:684)
>> at org.eclipse.ui.internal.PartList.partOpened(PartList.java:23 4)
>> at org.eclipse.ui.internal.PartList.access$0(PartList.java:210)
>> at org.eclipse.ui.internal.PartList$1.propertyChanged(PartList. java:40)
>> at org.eclipse.ui.internal.WorkbenchPartReference.fireInternalP
>> ropertyChange(WorkbenchPartReference.java:375)
>> at org.eclipse.ui.internal.WorkbenchPartReference.getPart(Workb
>> enchPartReference.java:610)
>> at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(Ed
>> itorAreaHelper.java:271)
>> at org.eclipse.ui.internal.EditorManager.setVisibleEditor(Edito
>> rManager.java:1429)
>> at org.eclipse.ui.internal.EditorManager$5.runWithException(Edi
>> torManager.java:942)
>> at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run
>> (StartupThreading.java:31)
>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
>> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr
>> onizer.java:134)
>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
>> at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work
>> benchAdvisor.java:803)
>> at org.eclipse.ui.internal.Workbench$31.runWithException(Workbe
>> nch.java:1567)
>> at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run
>> (StartupThreading.java:31)
>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
>> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr
>> onizer.java:134)
>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2548)
>> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:24 38)
>> at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
>> at org.eclipse.core.databinding.observable.Realm.runWithDefault
>> (Realm.java:332)
>> at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work
>> bench.java:664)
>> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>> at org.eclipse.ui.internal.ide.application.IDEApplication.start
>> (IDEApplication.java:115)
>> at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips
>> eAppHandle.java:196)
>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
>> .runApplication(EclipseAppLauncher.java:110)
>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
>> .start(EclipseAppLauncher.java:79)
>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
>> tarter.java:369)
>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
>> tarter.java:179)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> at java.lang.reflect.Method.invoke(Unknown Source)
>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
>> at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
>> at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
>
>
> I looked in the AbstractBTCRuntimeModule.java of the com.foo.bttg
> module, and the code seems right:
>
>
> public void configureFileExtensions(Binder binder) {
> if (properties == null ||
> properties.getProperty(Constants.FILE_EXTENSIONS) == null)
> binder.bind(String.class).annotatedWith(Names.named(Constant s.FILE_EXTENSIONS)).toInstance( "btc,btpt,btt");
>
> }
>
>
> Any ideas?
|
|
|
|
Powered by
FUDForum. Page generated in 0.02224 seconds