[BZPCM-358] Usage of BoolPMF leads to invalid diagram Created: 30/Sep/09 Updated: 16/Jan/12 Resolved: 09/Nov/10 Status: Project: Component/s: Affects Version/s: Fix Version/s: Resolved Bugzilla Palladio Component Model Random Variable Definition Language unspecified Type: Reporter: Resolution: Labels: Remaining Estimate: Time Spent: Original Estimate: Environment: Bug rathfeld Fixed None Not Specified External issue URL: Severity: Priority: External issue ID: http://sdqweb.ipd.kit.edu/bugzilla/show_bug.cgi?id=500 None Assignee: Votes: brosch 0 Not Specified Not Specified Operating System: Windows XP Platform: PC major P5 500 Description If a BoolPMF is used in the VariableCharacterization, the grafical Editor freezes and afterwards can not be open Following Error is shown: java.lang.UnsupportedOperationException: Unknown PMF found! at de.uka.ipd.sdq.probfunction.print.ProbFunctionPrettyPrint.detectType(ProbFunctionPrettyPrint.java:76) at de.uka.ipd.sdq.probfunction.print.ProbFunctionPrettyPrint.caseProbabilityMassFunction(ProbFunctionPrettyP at de.uka.ipd.sdq.probfunction.print.ProbFunctionPrettyPrint.caseProbabilityMassFunction(ProbFunctionPrettyP at de.uka.ipd.sdq.probfunction.util.ProbfunctionSwitch.doSwitch(ProbfunctionSwitch.java:141) at de.uka.ipd.sdq.probfunction.util.ProbfunctionSwitch.doSwitch(ProbfunctionSwitch.java:89) at de.uka.ipd.sdq.probfunction.util.ProbfunctionSwitch.doSwitch(ProbfunctionSwitch.java:77) at de.uka.ipd.sdq.stoex.analyser.visitors.StoExPrettyPrintVisitor.caseProbabilityFunctionLiteral(StoExPrettyPrin at de.uka.ipd.sdq.stoex.analyser.visitors.StoExPrettyPrintVisitor.caseProbabilityFunctionLiteral(StoExPrettyPrin at de.uka.ipd.sdq.stoex.util.StoexSwitch.doSwitch(StoexSwitch.java:278) at de.uka.ipd.sdq.stoex.util.StoexSwitch.doSwitch(StoexSwitch.java:108) at de.uka.ipd.sdq.pcm.stochasticexpressions.PCMStoExPrettyPrintVisitor.doSwitch(PCMStoExPrettyPrintVisito at de.uka.ipd.sdq.pcm.stochasticexpressions.PCMStoExPrettyPrintVisitor.doSwitch(PCMStoExPrettyPrintVisito at de.uka.ipd.sdq.stoex.util.StoexSwitch.doSwitch(StoexSwitch.java:96) at de.uka.ipd.sdq.stoex.analyser.visitors.StoExPrettyPrintVisitor.prettyPrint(StoExPrettyPrintVisitor.java:176) at de.uka.ipd.sdq.pcm.gmf.seff.edit.parts.VariableCharacterisationEditPart.getLabelText(VariableCharacterisatio at de.uka.ipd.sdq.pcm.gmf.seff.edit.parts.VariableCharacterisationEditPart.refreshLabel(VariableCharacterisatio at de.uka.ipd.sdq.pcm.gmf.seff.edit.parts.VariableCharacterisationEditPart.refreshVisuals(VariableCharacterisat at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:676) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:571) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.access$3(GraphicalEditPart.java:1) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart$3.run(GraphicalEditPart.java:855) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomain at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:845) at org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:235) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:219) at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:198) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.addChild(GraphicalEditPart.java:1313) at org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:727) at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:677) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:571) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.access$3(GraphicalEditPart.java:1) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart$3.run(GraphicalEditPart.java:855) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomain at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:845) at org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:235) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:219) at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:198) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.addChild(GraphicalEditPart.java:1313) at org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:727) at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:677) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:571) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.access$3(GraphicalEditPart.java:1) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart$3.run(GraphicalEditPart.java:855) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomain at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:845) at org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:235) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:219) at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:198) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.addChild(GraphicalEditPart.java:1313) at org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:727) at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:677) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:571) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.access$3(GraphicalEditPart.java:1) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart$3.run(GraphicalEditPart.java:855) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomain at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:845) at org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:235) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:219) at org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart.addNotify(ShapeCompartmentEditP at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:198) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.addChild(GraphicalEditPart.java:1313) at org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:727) at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:677) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:571) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.access$3(GraphicalEditPart.java:1) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart$3.run(GraphicalEditPart.java:855) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomain at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:845) at org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:235) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:219) at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:198) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.addChild(GraphicalEditPart.java:1313) at org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:727) at org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:677) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:571) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.access$3(GraphicalEditPart.java:1) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart$3.run(GraphicalEditPart.java:855) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomain at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.refresh(GraphicalEditPart.java:845) at org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:235) at org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:219) at org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:198) at org.eclipse.gef.editparts.SimpleRootEditPart.setContents(SimpleRootEditPart.java:101) at org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents(AbstractEditPartViewer.java:601) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer.setContents(DiagramGraphicalViewer.jav at org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents(AbstractEditPartViewer.java:610) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor.initializeGraphicalViewerContents(DiagramEditor.ja at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor.initializeGraphicalViewer(DiagramEditor.java:863) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditorWithFlyOutPalette.initializeGraphicalViewer(Diagram at org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor.initializeGraphicalViewer at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor.createGraphicalViewer(DiagramEditor.java:807) at org.eclipse.gef.ui.parts.GraphicalEditor.createPartControl(GraphicalEditor.java:163) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor.createPartControl(DiagramEditor.java:1555) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditorWithFlyOutPalette.createPartControl(DiagramEditorW at org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor.createPartControl(Diagram at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:662) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:462) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:286) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2857) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2762) at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2754) at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2705) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2701) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2685) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2668) at de.uka.ipd.sdq.pcm.gmf.repository.edit.policies.OpenSeffDiagramEditPolicy$OpenDiagramCommand.doExecu at org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand.doExecute(AbstractT at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:150) at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:511) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack.execute(DiagramCommandStack.java:206) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack.execute(DiagramCommandStack.java:169) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack.execute(DiagramCommandStack.java:156) at org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart.performRequest(GraphicalEditPart.java:1119) at org.eclipse.gef.tools.SelectEditPartTracker.performOpen(SelectEditPartTracker.java:187) at org.eclipse.gef.tools.SelectEditPartTracker.handleDoubleClick(SelectEditPartTracker.java:131) at org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx.handleDoubleClick(DragEditPartsTrackerE at org.eclipse.gef.tools.AbstractTool.mouseDoubleClick(AbstractTool.java:955) at org.eclipse.gef.tools.SelectionTool.mouseDoubleClick(SelectionTool.java:501) at org.eclipse.gef.EditDomain.mouseDoubleClick(EditDomain.java:208) at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseDoubleClicked(DomainEventDispatcher.java: at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseDoubleClick(LightweightSystem.java:508) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:183) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3880) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) 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:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.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:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) Comments Comment by [email protected] [ 11/Oct/09 ] As far as I know there is no BoolPMF in the PCM. Hence, Unknown PMF found! is the right error message. However, it should not crash the editor. And furthermore it should not be possible to enter such a PMF. Comment by [email protected] [ 12/Oct/09 ] Der StoEx Editor kennt die BoolPMF sogar in der Code Completion. Ausserdem ist die BoolPMF auch in der Hilfe zu StoEx-Ausdrücken zu finden. Sogar mit Beispiel. Comment by [email protected] [ 12/Oct/09 ] die dürfte es wirklich mal gegeben haben Comment by [email protected] [ 09/Nov/10 ] This works now, and it is possible to simulate or analytically analyse an instance with a BoolPMF in the usage model. From the SVN logs, I see that Franz fixed it (at least part of it) in revision 10423 in Palladio.EMFProbfunctionModel, class ProbFunctionPrettyPrint. Comment by [email protected] [ 09/Nov/10 ] Forgot to mention the example to test it: https://svnserver.informatik.kit.edu/i43/svn/code/Palladio.Examples/trunk/PCM3.3_SimpleHeuristicsExample revision 10482 Comment by [email protected] [ 09/Nov/10 ] set assignee to Franz because he fixed it Generated at Thu Apr 06 13:35:27 CEST 2017 using JIRA 7.3.3#73014sha1:d5be8da522213be2ca9ad7b043c51da6e4cc9754.