Decision Optimization

 View Only
Expand all | Collapse all

Failed to create the part's controls: problems with org.eclipse.e4.ui.workbench

  • 1.  Failed to create the part's controls: problems with org.eclipse.e4.ui.workbench

    Posted Thu March 14, 2024 08:40 AM

    Hi!

    I'm no cplex OPL expert at all. But here's the problem:

    My Project in Optimization studio worked fine until I started adding an execute {} statement in one of the model files. Suddenly, the IDE cannot open the mod-file, but gives the following error message:

    java.lang.ClassCastException: ilog.odms.ide.opllang.ast.checker.types.OplFloatType incompatible with ilog.odms.ide.opllang.ast.checker.types.OplArrayType
        at ilog.odms.ide.opllang.ast.checker.ExpressionChecker.visit(ExpressionChecker.java:459)
        at ilog.odms.ide.opllang.ast.node.expression.ArraySlotExpression.accept0(ArraySlotExpression.java:88)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.checker.ExpressionChecker.visit(ExpressionChecker.java:103)
        at ilog.odms.ide.opllang.ast.node.expression.BinaryExpression.accept0(BinaryExpression.java:67)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.checker.ExpressionChecker.visit(ExpressionChecker.java:104)
        at ilog.odms.ide.opllang.ast.node.expression.BinaryExpression.accept0(BinaryExpression.java:67)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.checker.ExpressionChecker.acceptIfNotNull(ExpressionChecker.java:634)
        at ilog.odms.ide.opllang.ast.checker.ExpressionChecker.visit(ExpressionChecker.java:294)
        at ilog.odms.ide.opllang.ast.node.SimpleQualifier.accept0(SimpleQualifier.java:60)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.checker.ExpressionChecker.visit(ExpressionChecker.java:236)
        at ilog.odms.ide.opllang.ast.node.Qualifier.accept0(Qualifier.java:88)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.node.OplNode.acceptChild(OplNode.java:1249)
        at ilog.odms.ide.opllang.ast.node.QualifierList.accept0(QualifierList.java:47)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.checker.ExpressionChecker.visit(ExpressionChecker.java:188)
        at ilog.odms.ide.opllang.ast.node.expression.AggregateExpression.accept0(AggregateExpression.java:77)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.checker.ExpressionChecker.visit(ExpressionChecker.java:103)
        at ilog.odms.ide.opllang.ast.node.expression.BinaryExpression.accept0(BinaryExpression.java:67)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.checker.ConstraintChecker.visit(ConstraintChecker.java:152)
        at ilog.odms.ide.opllang.ast.node.constraint.SimpleConstraint.accept0(SimpleConstraint.java:52)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.checker.ConstraintChecker.acceptIfNotNull(ConstraintChecker.java:158)
        at ilog.odms.ide.opllang.ast.checker.ConstraintChecker.visit(ConstraintChecker.java:130)
        at ilog.odms.ide.opllang.ast.node.constraint.ForAllConstraint.accept0(ForAllConstraint.java:58)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.node.OplNode.acceptChild(OplNode.java:1249)
        at ilog.odms.ide.opllang.ast.node.constraint.ConstraintList.accept0(ConstraintList.java:53)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.checker.Resolver.visit(Resolver.java:84)
        at ilog.odms.ide.opllang.ast.node.constraint.ConstraintList.accept0(ConstraintList.java:49)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.node.OplNode.acceptChild(OplNode.java:1249)
        at ilog.odms.ide.opllang.ast.node.ConstraintsBlock.accept0(ConstraintsBlock.java:46)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.checker.Resolver.visit(Resolver.java:59)
        at ilog.odms.ide.opllang.ast.node.CompilationUnit.accept0(CompilationUnit.java:52)
        at ilog.odms.ide.opllang.ast.node.OplNode.accept(OplNode.java:1198)
        at ilog.odms.ide.opllang.ast.ASTParser.internalTypeCheck(ASTParser.java:315)
        at ilog.odms.ide.opllang.ast.ASTParser.parse(ASTParser.java:199)
        at ilog.odms.ide.opllang.ast.ASTParser.parse(ASTParser.java:191)
        at ilog.odms.ide.internal.core.IloModelFileImpl.updateAST(IloModelFileImpl.java:106)
        at ilog.odms.ide.ui.editors.model.IloModelEditor.initAST(IloModelEditor.java:179)
        at ilog.odms.ide.ui.editors.model.IloModelEditor.createPartControl(IloModelEditor.java:209)
        at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:158)
        at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPartControl(CompatibilityEditor.java:96)
        at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:365)
        at jdk.internal.reflect.GeneratedMethodAccessor61.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
        at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:995)
        at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:960)
        at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:140)
        at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:403)
        at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:330)
        at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
        at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
        at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
        at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
        at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.lambda$0(PartServiceImpl.java:105)
        at <unknown class>.handleEvent(Unknown Source)
        at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
        at org.eclipse.e4.ui.services.internal.events.UIEventHandler$$Lambda$269/0x0000000000000000.run(Unknown Source)
        at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
        at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
        at org.eclipse.swt.widgets.Display.syncExec(Display.java:4792)
        at org.eclipse.e4.ui.workbench.swt.DisplayUISynchronize.syncExec(DisplayUISynchronize.java:34)
        at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
        at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
        at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
        at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
        at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
        at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:133)
        at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
        at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
        at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
        at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
        at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
        at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElementGen(ElementContainerImpl.java:170)
        at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:188)
        at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:660)
        at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:624)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:787)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:401)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1261)
        at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3210)
        at org.eclipse.ui.internal.WorkbenchPage.lambda$9(WorkbenchPage.java:3100)
        at <unknown class>.run(Unknown Source)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
        at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3098)
        at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3068)
        at org.eclipse.ui.actions.OpenWithMenu.openEditor(OpenWithMenu.java:325)
        at org.eclipse.ui.actions.OpenWithMenu.lambda$1(OpenWithMenu.java:213)
        at <unknown class>.handleEvent(Unknown Source)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4251)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4068)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3645)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
        at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
        at <unknown class>.run(Unknown Source)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
        at ilog.odms.ide.rcp.IloApplication.start(IloApplication.java:125)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

    I think that the problem arised when adding

    execute{
     for (var s in Scenarios){
    if(a[s] > 8) {b[s] = 70;
    }  else if(a[s] > 4) {b[s] = 90;
    }  else b[s] =110;
      }
        for (var s in Scenarios){
    if(a[s] > 8) {c[s] = 0.014;
    }  else if(a[s] > 4) {c[s] = 0.011;
    }  else c[s] = 0.009;
      }
      }
     

    However, even though I remove this part, I can't open the .mod-file in the IDE. 

    What can be the problem? I've tried reinstalling Optimization Studio, changing workspace. I've installed Eclipse, since it seems to be connected to that.

    This post is sort of a duplicate of CPLEX Error: Failed to create the part's controls | Decision Optimization (ibm.com), but that post is unresolved.



    ------------------------------
    Patrik Ulvdal
    ------------------------------


  • 2.  RE: Failed to create the part's controls: problems with org.eclipse.e4.ui.workbench

    Posted Fri March 15, 2024 05:02 AM

    Hi

    I ran

    range Scenarios=1..4;
    float a[Scenarios]=[8,9,10,11];
    float b[Scenarios];
    float c[Scenarios];
    
    execute{
     for (var s in Scenarios){
     if(a[s] > 8) {b[s] = 70;
    }  else if(a[s] > 4) {b[s] = 90;
    }  else b[s] =110;
      }
        for (var s in Scenarios){
      if(a[s] > 8) {c[s] = 0.014;
    }  else if(a[s] > 4) {c[s] = 0.011;
    }  else c[s] = 0.009;
      }
      }

    in my OPL IDE and it was fine

    Can you try in the command line oplide -clean ?



    ------------------------------
    [Alex] [Fleischer]
    [Data and AI Technical Sales]
    [IBM]
    ------------------------------



  • 3.  RE: Failed to create the part's controls: problems with org.eclipse.e4.ui.workbench

    Posted Mon March 18, 2024 03:24 AM

    Hi and thanks!

    I still really don't know why the error showed, but when I corrected all other errors due to e.g. undeclared variables the error message disappeared. Usually, OPL IDE allows you to edit the mod-file even though it has some syntax problems. But in this case, it completely shut down the editor. I had to open and edit it as plain text. Strange.



    ------------------------------
    Patrik Ulvdal
    ------------------------------