Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 331009

Summary: Texo: Error generating code for abstract entity
Product: [Modeling] EMFT Reporter: kanu <kms>
Component: TexoAssignee: Martin Taal <mtaal>
Status: RESOLVED WONTFIX QA Contact:
Severity: critical    
Priority: P3 CC: kentarou
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Attachments:
Description Flags
model
none
missed part of stack trace none

Description kanu CLA 2010-11-24 08:42:18 EST
What steps will reproduce the problem?
1. Create ecore model
2. Texo -> Generate Model Code

The problem is with Entity Document. It has interface = false, abstract = true.
If I change it to interface = true, abstract = true it works fine/


-- Error Details --
Date: Wed Nov 24 18:37:17 YEKT 2010
Message: Unhandled event loop exception
Severity: Error
Product: SpringSource Tool Suite 2.5.1.201011111000-RELEASE (com.springsource.sts.ide)
Plugin: org.eclipse.ui
Session Data:
eclipse.buildId=2.5.0.201010241000-RELEASE
java.version=1.6.0_20
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=ru_RU
Framework arguments:  -product com.springsource.sts.ide
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product com.springsource.sts.ide


Exception Stack Trace:
java.lang.IllegalStateException: Exception while generating
	at org.eclipse.emf.texo.eclipse.popup.actions.BaseGenerateAction.run(BaseGenerateAction.java:76)
	at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	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(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.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(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	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)
Caused by: java.lang.reflect.InvocationTargetException
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:421)
	at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
	at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275)
	at org.eclipse.ui.internal.progress.ProgressManager$5.run(ProgressManager.java:960)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:995)
	at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:970)
	at org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:1166)
	at org.eclipse.emf.texo.eclipse.popup.actions.BaseGenerateAction.run(BaseGenerateAction.java:74)
	... 29 more
Caused by: org.eclipse.emf.texo.generator.ArtifactGenerationException: Errors found during artifact generations
The following error(s) where encountered:
 org.eclipse.emf.mwe.core: Throwable caught for current source for D:\workspace\ru.satseqsys\ru.satseqsys.model\src\main\java\ru\satseqsys\model\Document.java :package ru.satseqsys.model;

........{trace is too long, moved to file}

	at org.eclipse.emf.texo.generator.WorkFlowStarter.runWorkFlow(WorkFlowStarter.java:134)
	at org.eclipse.emf.texo.generator.WorkFlowStarter.generateModelCode(WorkFlowStarter.java:74)
	at org.eclipse.emf.texo.eclipse.popup.actions.GenerateCode.generateFromUris(GenerateCode.java:54)
	at org.eclipse.emf.texo.eclipse.popup.actions.BaseGenerateAction.generate(BaseGenerateAction.java:117)
	at org.eclipse.emf.texo.eclipse.popup.actions.BaseGenerateAction.generate(BaseGenerateAction.java:97)
	at org.eclipse.emf.texo.eclipse.popup.actions.BaseGenerateAction.access$0(BaseGenerateAction.java:80)
	at org.eclipse.emf.texo.eclipse.popup.actions.BaseGenerateAction$1.execute(BaseGenerateAction.java:70)
	at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Comment 1 kanu CLA 2010-11-24 08:43:01 EST
Created attachment 183748 [details]
model
Comment 2 kanu CLA 2010-11-24 08:43:30 EST
Created attachment 183749 [details]
missed part of stack trace
Comment 3 kanu CLA 2010-11-24 08:52:11 EST
Probably this is because I didn't remove old generated files/
After removing the error disappeared, but I've got something like this

public class CarPassport extends Document implements Document {

	/**
	 * A toString method which prints the values of all EAttributes of this instance.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return "CarPassport ";
	}
}
Comment 4 Martin Taal CLA 2010-12-06 12:04:35 EST
Hi,
I could reproduce it, it is very difficult to solve though as it is part of the merging logic. I added an entry to the troubleshooting page:
http://wiki.eclipse.org/Texo/Troubleshooting#Exception_while_generating.2C_when_changing_a_type_from_interface_to_class_or_back

For your last remark, what is wrong with this code snippet?

gr. Martin
Comment 5 kanu CLA 2010-12-07 01:55:29 EST
The problem is here

extends Document implements Document 

while Document is an abstract class? it can't be implemented? only extended
Comment 6 Martin Taal CLA 2011-04-23 18:16:33 EDT
Hi Kanu,
I can only reproduce the issue which is described in the wiki. Please re-open the issue if you have any new findings, thanks!

gr. Martin