Home » Modeling » MoDisco » Issues with Modicso 0.9
Issues with Modicso 0.9 [message #685977] |
Tue, 21 June 2011 04:33  |
Eclipse User |
|
|
|
Hi,
I'm trying to create a model from the existing Java code and I see 2 issues:
1. If I try to discover a Java model from Java project, the model is created but I was unable to save it. Option serialize is true, there is a file in filesystem, but its length is 0. And if model is opened in editor, I cannot save it (there is no such an option).
BTW, is there is a way to convert Java model to UML?
2. If I try to discover a KDM code model from the same Java project, I see the following exception: An invalid XML character (Unicode: 0x2) was found in the element content:"" (see stack below)
Is this a known problem? Is there any remedy?
java.lang.RuntimeException: An invalid XML character (Unicode: 0x2) was found in the element content:""
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl$Escape.convert(XMLSaveImpl.java:3325)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.getDatatypeValue(XMLSaveImpl.java:3109)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveDataTypeSingle(XMLSaveImpl.java:1694)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1276)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedSingle(XMLSaveImpl.java:2399)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1543)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedSingle(XMLSaveImpl.java:2399)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1543)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedSingle(XMLSaveImpl.java:2399)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1543)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.writeTopObject(XMLSaveImpl.java:683)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:591)
at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:257)
at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:333)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1423)
at org.eclipse.modisco.util.atl.core.internal.AtlLaunchHelper.initModels(AtlLaunchHelper.java:146)
at org.eclipse.modisco.util.atl.core.internal.AtlLaunchHelper.runTransformation(AtlLaunchHelper.java:187)
at org.eclipse.modisco.util.atl.core.internal.AtlLaunchHelper.runTransformation(AtlLaunchHelper.java:173)
at org.eclipse.modisco.util.atl.core.internal.AtlLaunchHelper.runTransformation(AtlLaunchHelper.java:220)
at org.eclipse.modisco.java.discoverer.internal.TranslateJavaModelToKdm.getKDMModelFromJavaModelWithCustomTransformation(TranslateJavaModelToKdm.java:87)
at org.eclipse.modisco.java.discoverer.internal.TranslateJavaModelToKdm.getKDMModelFromJavaModelWithCustomTransformation(TranslateJavaModelToKdm.java:65)
at org.eclipse.modisco.java.discoverer.DiscoverKDMModelFromJavaProject.discoverKDM(DiscoverKDMModelFromJavaProject.java:62)
at org.eclipse.modisco.java.discoverer.DiscoverKDMModelFromProject.basicDiscoverElement(DiscoverKDMModelFromProject.java:55)
at org.eclipse.modisco.java.discoverer.DiscoverKDMModelFromProject.basicDiscoverElement(DiscoverKDMModelFromProject.java:1)
at org.eclipse.modisco.infra.discovery.core.AbstractDiscoverer.discoverElement(AbstractDiscoverer.java:93)
at org.eclipse.modisco.infra.discovery.core.AbstractModelDiscoverer.discoverElement(AbstractModelDiscoverer.java:183)
at org.eclipse.modisco.infra.discovery.ui.internal.actions.MoDiscoMenuSelectionListener.discovererElement(MoDiscoMenuSelectionListener.java:352)
at org.eclipse.modisco.infra.discovery.ui.internal.actions.MoDiscoMenuSelectionListener$1.run(MoDiscoMenuSelectionListener.java:115)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
|
|
| | | | |
Re: Issues with Modicso 0.9 [message #690797 is a reply to message #690235] |
Thu, 30 June 2011 04:45   |
Eclipse User |
|
|
|
I had already created https://bugs.eclipse.org/bugs/show_bug.cgi?id=350529
As for the Out-of-memory, I had tried to analyse the problem with the MAT.
According to this analysis, the biggest objects are:
Label | Number Of Objects | Used Heap Size | Retained Heap Size | Retained Heap, %
org.eclipse.core.internal.jobs.Worker | 6 | 720 | 271 119 624 | 73,94%
org.eclipse.core.internal.dtree.DeltaDataTree | 3 | 72 | 51 946 896 | 14,17%
org.eclipse.jdt.internal.core.JavaModelManager | 1 | 192 | 10 601 768 | 2,89%
the most consuming objects of Worker are
Class Name | Shallow Heap | Retained Heap | Percentage
org.eclipse.emf.ecore.xmi.impl.StringSegment$Element[9316] @ 0x1bf3f588 | 37 280 | 148 581 576 | 40,52%
byte[75898880] @ 0x1dd832f0 <?xml version="1.0"... | 75 898 896 | 75 898 896 | 20,70%
org.eclipse.gmt.modisco.java.emf.impl.ModelImpl @ 0x12364670 | 48 | 25 044 176 | 6,83%
It looks like 'byte' contains the whole xmi file which is being written by MoDisco. Is it a good behaviour? In my project I just added one package to build path and did not include all the packages that are referenced by this one. I'm wondering what amount of heap I should provide to Java to discover whole Android project (BTW, the same test with Android Gingerbread Telephony Framework behaves differently: Modisco seems enters some endless loop.)
Dmitry
|
|
| | |
Re: Issues with Modicso 0.9 [message #693328 is a reply to message #685977] |
Wed, 06 July 2011 05:20   |
Eclipse User |
|
|
|
I had increased the pool. This had allowed me to pass this out-of-memory, but still have an issue: the process of discovery seems to be entering endless loop.
I had tried to debug the discovery and it does not seems to hung up: the stack (see below) of the process is varying: I can go up by stack to some level (like ASMOperation.realExec(ASMStackFrame) line: 251). then it goes down again with different parameters (I do not have sources of ATL, so cannot debug it fully).
But discovering is not ending. I was waiting for few hours. While it is running, machine is very irresponsive - CPU is occupied by eclipse.
Unfortunately, I do not know how to discover what is the progress (i.e. how many items are converted, how much are remaining). Is it possible that discovering is enetered some endless loop?
Thread [Worker-11] (Suspended)
Class<T>.isPrimitive() line: not available [native method]
EClassImpl(EClassifierImpl).isInstance(Object) line: 182
ASMEMFModel.addElementsOfType(Set, EClassifier, Resource) line: 267
ASMEMFModel.getElementsByType(ASMModelElement) line: 217
ASMEMFModelElement.allInstancesFrom(StackFrame, ASMEMFModelElement, ASMString) line: 764
ASMEMFModelElement.allInstances(StackFrame, ASMEMFModelElement) line: 706
GeneratedMethodAccessor38.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available
Method.invoke(Object, Object...) line: not available
ClassNativeOperation.exec(StackFrame) line: 69
ASMEMFModelElement(ASMOclAny).invoke(StackFrame, Operation, List) line: 130
ASMEMFModelElement.invoke(StackFrame, String, List) line: 926
ASMOperation.realExec(ASMStackFrame) line: 251
ASMOperation.exec(StackFrame) line: 173
ASMModule(ASMOclAny).invoke(StackFrame, Operation, List) line: 130
ASMModule(ASMOclAny).invoke(StackFrame, String, List) line: 78
ASMOperation.realExec(ASMStackFrame) line: 251
ASMOperation.realExec(ASMStackFrame) line: 357
ASMOperation.exec(StackFrame) line: 173
ASMModule(ASMOclAny).invoke(StackFrame, Operation, List) line: 130
ASMModule(ASMOclAny).invoke(StackFrame, String, List) line: 78
ASMOperation.realExec(ASMStackFrame) line: 251
ASMOperation.exec(StackFrame) line: 173
ASMInterpreter.<init>(ASM, ASMModule, ASMExecEnv, Map) line: 346
AtlLauncher.launch(ASM, Map, Map, Map, List, Map, Debugger) line: 216
AtlLauncher.launch(URL, Map, Map, Map, List, Map, Debugger) line: 127
AtlLauncher.launch(URL, Map, Map, Map, List, Map) line: 92
AtlLaunchHelper.runTransformation(URL, List<ModelInfo>, List<ModelInfo>, List<URL>) line: 194
AtlLaunchHelper.runTransformation(URL, List<ModelInfo>, List<ModelInfo>) line: 173
AtlLaunchHelper.runTransformation(URL, AtlLaunchHelper$ModelInfo, AtlLaunchHelper$ModelInfo) line: 220
TranslateJavaModelToKdm.getKDMModelFromJavaModelWithCustomTransformation(URI, Resource, URL, URI) line: 87
TranslateJavaModelToKdm.getKDMModelFromJavaModelWithCustomTransformation(URI, Resource, URI) line: 65
DiscoverKDMModelFromJavaProject.discoverKDM(IJavaProject, URI, IProgressMonitor) line: 62
DiscoverKDMModelFromJavaProject.basicDiscoverElement(IJavaProject, IProgressMonitor) line: 46
DiscoverKDMModelFromJavaProject.basicDiscoverElement(Object, IProgressMonitor) line: 1
DiscoverKDMModelFromJavaProject(AbstractDiscoverer<T>).discoverElement(T, IProgressMonitor) line: 93
DiscoverKDMModelFromJavaProject(AbstractModelDiscoverer<T>).discoverElement(T, IProgressMonitor) line: 183
MoDiscoMenuSelectionListener.discovererElement(Object, Map<DiscovererParameter,Object>, IDiscoverer<?>, IProgressMonitor) line: 352
MoDiscoMenuSelectionListener$1.run(IProgressMonitor) line: 115
Worker.run() line: 54
|
|
| | |
Goto Forum:
Current Time: Tue May 20 03:20:35 EDT 2025
Powered by FUDForum. Page generated in 0.06412 seconds
|