Weird Eclipse E4 RCP NullPointerException

14. Januar 2017 Posted by Ralf Petter

Today i have tried to create a little eclipse e4 demo application to debug some issues with theme switching, but every time i switch the theme i got a strange NPE that the workbench instance is null. After some struggling with this problem i have found out that the root cause is, that i had still some eclipse RCP 3.x (org.eclipse.ui.workbench...) plugins in my launch configuration. So if you get such an error be sure to remove all RCP 3.x plugins from your launch configuration.


java.lang.NullPointerException
at org.eclipse.ui.internal.themes.ColorAndFontProviderImpl.getCurrentTheme(ColorAndFontProviderImpl.java:51)
at org.eclipse.ui.internal.themes.ColorAndFontProviderImpl.getColor(ColorAndFontProviderImpl.java:47)
at org.eclipse.e4.ui.css.swt.helpers.CSSSWTColorHelper.findColorByDefinition(CSSSWTColorHelper.java:319)
at org.eclipse.e4.ui.css.swt.helpers.CSSSWTColorHelper.getRGB(CSSSWTColorHelper.java:70)
at org.eclipse.e4.ui.css.swt.helpers.CSSSWTColorHelper.getSWTColor(CSSSWTColorHelper.java:58)
at org.eclipse.e4.ui.css.swt.properties.converters.CSSValueSWTColorConverterImpl.convert(CSSValueSWTColorConverterImpl.java:46)
at org.eclipse.e4.ui.css.swt.properties.converters.CSSValueSWTColorConverterImpl.convert(CSSValueSWTColorConverterImpl.java:1)
at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.convert(AbstractCSSEngine.java:1077)
at org.eclipse.e4.ui.css.swt.properties.custom.CSSPropertye4TabOutline.applyCSSProperty(CSSPropertye4TabOutline.java:31)
at org.eclipse.e4.ui.css.swt.properties.AbstractCSSPropertySWTHandler.applyCSSProperty(AbstractCSSPropertySWTHandler.java:40)
at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyCSSProperty(AbstractCSSEngine.java:722)
at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyStyleDeclaration(AbstractCSSEngine.java:520)
at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyStyles(AbstractCSSEngine.java:413)
at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyStyles(AbstractCSSEngine.java:354)
at org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngine.applyStyles(ThemeEngine.java:512)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$11.setClassnameAndId(PartRenderingEngine.java:1321)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.setCSSInfo(SWTPartRenderer.java:111)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.bindWidget(SWTPartRenderer.java:128)
at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.createWidget(StackRenderer.java:620)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:983)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:49)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:103)
at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:69)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:187)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4590)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:218)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36)
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:81)
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:59)
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
at org.eclipse.e4.ui.model.application.ui.advanced.impl.PerspectiveStackImpl.setSelectedElement(PerspectiveStackImpl.java:135)
at org.eclipse.e4.ui.model.application.ui.advanced.impl.PerspectiveStackImpl.setSelectedElement(PerspectiveStackImpl.java:1)
at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:108)
at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:77)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:678)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:663)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1074)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:331)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:164)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)




Weird Eclipse E4 RCP NullPointerException

14. Januar 2017 Posted by Ralf Petter

Today i have tried to create a little eclipse e4 demo application to debug some issues with theme switching, but every time i switch the theme i got a strange NPE that the workbench instance is null. After some struggling with this problem i have found out that the root cause is, that i had still some eclipse RCP 3.x (org.eclipse.ui.workbench...) plugins in my launch configuration. So if you get such an error be sure to remove all RCP 3.x plugins from your launch configuration.


java.lang.NullPointerException
at org.eclipse.ui.internal.themes.ColorAndFontProviderImpl.getCurrentTheme(ColorAndFontProviderImpl.java:51)
at org.eclipse.ui.internal.themes.ColorAndFontProviderImpl.getColor(ColorAndFontProviderImpl.java:47)
at org.eclipse.e4.ui.css.swt.helpers.CSSSWTColorHelper.findColorByDefinition(CSSSWTColorHelper.java:319)
at org.eclipse.e4.ui.css.swt.helpers.CSSSWTColorHelper.getRGB(CSSSWTColorHelper.java:70)
at org.eclipse.e4.ui.css.swt.helpers.CSSSWTColorHelper.getSWTColor(CSSSWTColorHelper.java:58)
at org.eclipse.e4.ui.css.swt.properties.converters.CSSValueSWTColorConverterImpl.convert(CSSValueSWTColorConverterImpl.java:46)
at org.eclipse.e4.ui.css.swt.properties.converters.CSSValueSWTColorConverterImpl.convert(CSSValueSWTColorConverterImpl.java:1)
at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.convert(AbstractCSSEngine.java:1077)
at org.eclipse.e4.ui.css.swt.properties.custom.CSSPropertye4TabOutline.applyCSSProperty(CSSPropertye4TabOutline.java:31)
at org.eclipse.e4.ui.css.swt.properties.AbstractCSSPropertySWTHandler.applyCSSProperty(AbstractCSSPropertySWTHandler.java:40)
at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyCSSProperty(AbstractCSSEngine.java:722)
at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyStyleDeclaration(AbstractCSSEngine.java:520)
at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyStyles(AbstractCSSEngine.java:413)
at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyStyles(AbstractCSSEngine.java:354)
at org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngine.applyStyles(ThemeEngine.java:512)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$11.setClassnameAndId(PartRenderingEngine.java:1321)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.setCSSInfo(SWTPartRenderer.java:111)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.bindWidget(SWTPartRenderer.java:128)
at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.createWidget(StackRenderer.java:620)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:983)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:49)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:103)
at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:69)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:187)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4590)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:218)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36)
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:81)
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:59)
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
at org.eclipse.e4.ui.model.application.ui.advanced.impl.PerspectiveStackImpl.setSelectedElement(PerspectiveStackImpl.java:135)
at org.eclipse.e4.ui.model.application.ui.advanced.impl.PerspectiveStackImpl.setSelectedElement(PerspectiveStackImpl.java:1)
at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:108)
at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:77)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:678)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:663)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1074)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:331)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:164)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)




Ein Powershellscript signieren

4. November 2016 Posted by Ralf Petter

Bisher habe ich unter Windows immer VBScript für Scripting Aufgaben verwendet. VBScript läuft zwar  noch immer einwandfrei, aber da Microsoft jetzt schon seit Jahren VBScript abgekündigt hat, möchte ich mich jetzt mal auf die PowerShell von Microsoft umstellen. Geht auch wirklich gut, nur leider lassen sich erstellte Scripts nicht einfach ausführen.

Standardmäßig ist Windows nämlich so konfiguriert, dass gar keine Scripts ausgeführt werden können und die Shell nur interaktiv genutzt werden kann.

Diese Einstellungen kann mit dem Befehl:

Set-ExecutionPolicy  Unrestricted 

geändert werden. Der Nachteil ist, dass mit dieser Einstellung alle Scripts auch potentiell bösartige ausgeführt und man ein unsicheres System hat.

Besser ist eine Änderung der Einstellung auf den Wert AllSigned.

Mit dieser Einstellung werden dann ausschließlich signierte Scripts ausgeführt:

Um seine Skripte zu signieren benötigt man natürlich ein Zertifikat. Erstellt habe ich dieses mit der Anleitung unter http://www.hanselman.com/blog/SigningPowerShellScripts.aspx.

Leider haben aber die Befehle zum Signieren in dieser Beschreibung nicht funktioniert.

Die richtigen Befehle zum Signieren in der interaktiven Powershell lauten:

Laden des Zertifikats in die Variable $cert

$cert=Get-ChildItem -Path cert:\CurrentUser\My -CodeSigningCert

Zertifizieren eines Powershell Skripts

Set-AuthenticodeSignature -FilePath c:\scripts\vpn.ps1 -Certificate $cert

Ein Powershellscript signieren

4. November 2016 Posted by Ralf Petter

Bisher habe ich unter Windows immer VBScript für Scripting Aufgaben verwendet. VBScript läuft zwar  noch immer einwandfrei, aber da Microsoft jetzt schon seit Jahren VBScript abgekündigt hat, möchte ich mich jetzt mal auf die PowerShell von Microsoft umstellen. Geht auch wirklich gut, nur leider lassen sich erstellte Scripts nicht einfach ausführen.

Standardmäßig ist Windows nämlich so konfiguriert, dass gar keine Scripts ausgeführt werden können und die Shell nur interaktiv genutzt werden kann.

Diese Einstellungen kann mit dem Befehl:

Set-ExecutionPolicy  Unrestricted 

geändert werden. Der Nachteil ist, dass mit dieser Einstellung alle Scripts auch potentiell bösartige ausgeführt und man ein unsicheres System hat.

Besser ist eine Änderung der Einstellung auf den Wert AllSigned.

Mit dieser Einstellung werden dann ausschließlich signierte Scripts ausgeführt:

Um seine Skripte zu signieren benötigt man natürlich ein Zertifikat. Erstellt habe ich dieses mit der Anleitung unter http://www.hanselman.com/blog/SigningPowerShellScripts.aspx.

Leider haben aber die Befehle zum Signieren in dieser Beschreibung nicht funktioniert.

Die richtigen Befehle zum Signieren in der interaktiven Powershell lauten:

Laden des Zertifikats in die Variable $cert

$cert=Get-ChildItem -Path cert:\CurrentUser\My -CodeSigningCert

Zertifizieren eines Powershell Skripts

Set-AuthenticodeSignature -FilePath c:\scripts\vpn.ps1 -Certificate $cert

Top Smartphone zum kleinen Preis

12. November 2015 Posted by Ralf Petter

Da mein Smartphone, dass mir die letzten Jahre gute Dienste geleistet hat mittlerweile schon ziemlich in die Jahre gekommen ist, war die Zeit reif für eine Neuanschaffung. Sehr lange habe ich mit einem Motorola Moto G 3 geliebäugelt, da ich die Vorgängermodelle schon für meine Frau und meine Tochter besorgt hatte. Das einzige Problem ist, dass das Moto G der 3. Generation leider etwas teurer geworden ist und schon stark an meiner Preisgrenze von 200 EUR für ein Smartphone kratzt. Deshalb habe ich mich auf die Suche nach einem anderen Smartphone gemacht, dass von der Leistung dem Moto G ebenbürtig, aber preislich günstiger sein sollte.

Dabei bin ich dann auf das Lumia 640 gestoßen, dass derzeit bei Amazon für 129 EUR angeboten wird. Zuerst war ich skeptisch, da ich privat bisher nur Android Geräte einsetzte und noch keine Erfahrung mit Windows am Handy hatte. Trotzdem habe ich mich aufgrund des günstigen Preises zu einem Versuch entschlossen und wurde mehr als angenehm überrascht. Das Handy ist für den Preis sehr gut verarbeitet, hat ein Display das selbst manchem viel teureren Smartphone gut zu Gesicht stehen würde und auch die Arbeitsgeschwindigkeit und Reaktionsfreudigkeit ist vorbildlich. Der interne Speicher ist zwar nur 8GB groß, lässt sich aber mittels einer SD Karte um bis zu 128 GB erweitern. Der Akku hält bei wenig Nutzung mehrere Tage und sogar wenn man das Handy sehr viel nützt, kommt man locker durch den Tag. Auch die Kamera macht bei gutem Licht schöne Fotos wie sie vor gar nicht allzu langer Zeit den Oberklassenhandys vorbehalten waren.

Die größte Überraschung für mich war aber wie gut Windows Phone funktioniert. Während ich den Kacheln auf dem Desktop überhaupt nichts abgewinnen kann, sind sie auf dem Handy absolut genial. Weder auf Android und schon gar nicht auf iOS Geräten konnte ich mir bisher meinen Homescreen so übersichtlich und funktional einrichten. Die Bedienung ist so logisch aufgebaut, dass man schon nach wenigen Minuten spielen mit dem Gerät, alle Aufgaben ohne Probleme umsetzen kann.

E-mail, Kalender und Kontakte Anbindung an meine diversen Konten wie (gmail, Outlook und meinen Firmen IBM Notes Traveler Account funktionieren mit wenigen Klicks) wie ich es bisher noch von keinem Gerät gekannt habe. Wo ich auf Android erst zusätzliche Apps herunterladen musste, geht hier alles schon mit der von Microsoft vorinstallierten Mail App.


Die vorinstallierte Navigationssoftware HERE Drive+ und die Karten App sind ebenfalls den Pendants von Google weit überlegen. Während z.B. Google Maps in meiner Heimat noch immer keine hochauflösenden Satelitenbilder anbietet, ist auf Here Maps sogar unser neu gebautes Haus bereits abgebildet.




Klar der App Store von Microsoft enthält nur einen Bruchteil der Anwendungen des Playstores oder des iOS Appstores, aber die mir wichtigen Apps wie Facebook, Whatsapp oder Amazon Apps sind in annehmbarer Qualität vorhanden. Mit dem bald (voraussichtlich Dezember) anstehenden Update auf Windows 10 wird sich die Anzahl der Apps dann sicher erhöhen, da die Universalapps sowohl auf dem Desktop als auch auf dem Handy funktionieren werden. Ebenfalls hat Microsoft Möglichkeiten angekündigt wie sich Apps von iOS, bzw. Android leichter auf Windows portieren lassen.

Mein Fazit: Wer ein tolles Smartphone zum sehr günstigen Preis sucht und damit leben kann, dass es nicht millionen sondern nur hundertausende Apps im Appstore gibt, kann mit dem Lumia 640 nichts falsch machen.

 P.S. Die Telefoniefunktion des Handys arbeitet übrigens ebenfalls einwandfrei und auch die Gesprächsqualität ist herausragend.

Top Smartphone zum kleinen Preis

12. November 2015 Posted by Ralf Petter

Da mein Smartphone, dass mir die letzten Jahre gute Dienste geleistet hat mittlerweile schon ziemlich in die Jahre gekommen ist, war die Zeit reif für eine Neuanschaffung. Sehr lange habe ich mit einem Motorola Moto G 3 geliebäugelt, da ich die Vorgängermodelle schon für meine Frau und meine Tochter besorgt hatte. Das einzige Problem ist, dass das Moto G der 3. Generation leider etwas teurer geworden ist und schon stark an meiner Preisgrenze von 200 EUR für ein Smartphone kratzt. Deshalb habe ich mich auf die Suche nach einem anderen Smartphone gemacht, dass von der Leistung dem Moto G ebenbürtig, aber preislich günstiger sein sollte.

Dabei bin ich dann auf das Lumia 640 gestoßen, dass derzeit bei Amazon für 129 EUR angeboten wird. Zuerst war ich skeptisch, da ich privat bisher nur Android Geräte einsetzte und noch keine Erfahrung mit Windows am Handy hatte. Trotzdem habe ich mich aufgrund des günstigen Preises zu einem Versuch entschlossen und wurde mehr als angenehm überrascht. Das Handy ist für den Preis sehr gut verarbeitet, hat ein Display das selbst manchem viel teureren Smartphone gut zu Gesicht stehen würde und auch die Arbeitsgeschwindigkeit und Reaktionsfreudigkeit ist vorbildlich. Der interne Speicher ist zwar nur 8GB groß, lässt sich aber mittels einer SD Karte um bis zu 128 GB erweitern. Der Akku hält bei wenig Nutzung mehrere Tage und sogar wenn man das Handy sehr viel nützt, kommt man locker durch den Tag. Auch die Kamera macht bei gutem Licht schöne Fotos wie sie vor gar nicht allzu langer Zeit den Oberklassenhandys vorbehalten waren.

Die größte Überraschung für mich war aber wie gut Windows Phone funktioniert. Während ich den Kacheln auf dem Desktop überhaupt nichts abgewinnen kann, sind sie auf dem Handy absolut genial. Weder auf Android und schon gar nicht auf iOS Geräten konnte ich mir bisher meinen Homescreen so übersichtlich und funktional einrichten. Die Bedienung ist so logisch aufgebaut, dass man schon nach wenigen Minuten spielen mit dem Gerät, alle Aufgaben ohne Probleme umsetzen kann.

E-mail, Kalender und Kontakte Anbindung an meine diversen Konten wie (gmail, Outlook und meinen Firmen IBM Notes Traveler Account funktionieren mit wenigen Klicks) wie ich es bisher noch von keinem Gerät gekannt habe. Wo ich auf Android erst zusätzliche Apps herunterladen musste, geht hier alles schon mit der von Microsoft vorinstallierten Mail App.


Die vorinstallierte Navigationssoftware HERE Drive+ und die Karten App sind ebenfalls den Pendants von Google weit überlegen. Während z.B. Google Maps in meiner Heimat noch immer keine hochauflösenden Satelitenbilder anbietet, ist auf Here Maps sogar unser neu gebautes Haus bereits abgebildet.




Klar der App Store von Microsoft enthält nur einen Bruchteil der Anwendungen des Playstores oder des iOS Appstores, aber die mir wichtigen Apps wie Facebook, Whatsapp oder Amazon Apps sind in annehmbarer Qualität vorhanden. Mit dem bald (voraussichtlich Dezember) anstehenden Update auf Windows 10 wird sich die Anzahl der Apps dann sicher erhöhen, da die Universalapps sowohl auf dem Desktop als auch auf dem Handy funktionieren werden. Ebenfalls hat Microsoft Möglichkeiten angekündigt wie sich Apps von iOS, bzw. Android leichter auf Windows portieren lassen.

Mein Fazit: Wer ein tolles Smartphone zum sehr günstigen Preis sucht und damit leben kann, dass es nicht millionen sondern nur hundertausende Apps im Appstore gibt, kann mit dem Lumia 640 nichts falsch machen.

 P.S. Die Telefoniefunktion des Handys arbeitet übrigens ebenfalls einwandfrei und auch die Gesprächsqualität ist herausragend.

New Redbook IBM i 7.2 Technical Overview with Technology Refresh Updates

10. Oktober 2015 Posted by Ralf Petter

The october brings a new redbook "IBM i 7.2 Technical Overview with Technology Refresh Updates" to the IBM redbook site. This new redbook is the ultimate source to find out what new great goodies IBM i 7.2 brings to your mighty POWER System. And best of all this redbook has a fresh new design which is in my opinion a big step forward. Thank you very much IBM for this great ressources and i really hope that we will see more of this amazing redbooks in the future.


Chapter 1. Introduction to IBM i 7.2
Chapter 2. Systems management
Chapter 3. Cloud and virtualization
Chapter 4. Security
Chapter 5. Networking
Chapter 6. High availability
Chapter 7. Backup and recovery
Chapter 8. IBM DB2 for i
Chapter 9. Application development
Chapter 10. IBM i server functions

New Redbook IBM i 7.2 Technical Overview with Technology Refresh Updates

10. Oktober 2015 Posted by Ralf Petter

The october brings a new redbook "IBM i 7.2 Technical Overview with Technology Refresh Updates" to the IBM redbook site. This new redbook is the ultimate source to find out what new great goodies IBM i 7.2 brings to your mighty POWER System. And best of all this redbook has a fresh new design which is in my opinion a big step forward. Thank you very much IBM for this great ressources and i really hope that we will see more of this amazing redbooks in the future.


Chapter 1. Introduction to IBM i 7.2
Chapter 2. Systems management
Chapter 3. Cloud and virtualization
Chapter 4. Security
Chapter 5. Networking
Chapter 6. High availability
Chapter 7. Backup and recovery
Chapter 8. IBM DB2 for i
Chapter 9. Application development
Chapter 10. IBM i server functions

Erste Starface Module laufen bereits

24. September 2015 Posted by Ralf Petter

Die ersten Starfacemodule die ich im Modulcreator Workshop in Wien gebaut habe laufen schon. Der Modulcreator ist wirklich ein sehr mächtiges Tool und ein absolutes Alleinstellungsmerkmal der Starface Telefonanlage im Vergleich zu anderen Anbietern die in diesem Bereich eigentlich gar nichts bieten. Mit wenigen Clicks kann man sich einfache Anwendungen zusammenklicken. Vom einfachen Telefonmenü bis zu komplizierten Callhandlings ist hier alles möglich. Natürlich sind Programmierkenntnisse vom Vorteil, aber auch ein Admin kann sich einfache Module selber zusammenstellen.




Erste Starface Module laufen bereits

24. September 2015 Posted by Ralf Petter

Die ersten Starfacemodule die ich im Modulcreator Workshop in Wien gebaut habe laufen schon. Der Modulcreator ist wirklich ein sehr mächtiges Tool und ein absolutes Alleinstellungsmerkmal der Starface Telefonanlage im Vergleich zu anderen Anbietern die in diesem Bereich eigentlich gar nichts bieten. Mit wenigen Clicks kann man sich einfache Anwendungen zusammenklicken. Vom einfachen Telefonmenü bis zu komplizierten Callhandlings ist hier alles möglich. Natürlich sind Programmierkenntnisse vom Vorteil, aber auch ein Admin kann sich einfache Module selber zusammenstellen.




Übermorgen gehts los mit dem Starface Modul Creator Workshop in Wien

22. September 2015 Posted by Ralf Petter

Übermorgen Donnerstag bin ich mit meinem Kollegen beim Starface Modulcreator Workshop in Wien. Bin wirklich schon sehr gespannt, welche neuen Möglichkeiten sich für uns durch die Erstellung von Modulen in der Starface ergeben. Eventuell lassen sich damit ja einige Einschränkungen die wir derzeit bei den iQueues haben elegant umschiffen.

Meine ersten Experimente mit dem Modulcreator waren auf jeden Fall schon einmal sehr vielversprechend. Ich denke es wird dann sicher auch ein paar Posts zu den Möglichkeiten des Modulcreators geben. Lasst euch überraschen.


Übermorgen gehts los mit dem Starface Modul Creator Workshop in Wien

22. September 2015 Posted by Ralf Petter

Übermorgen Donnerstag bin ich mit meinem Kollegen beim Starface Modulcreator Workshop in Wien. Bin wirklich schon sehr gespannt, welche neuen Möglichkeiten sich für uns durch die Erstellung von Modulen in der Starface ergeben. Eventuell lassen sich damit ja einige Einschränkungen die wir derzeit bei den iQueues haben elegant umschiffen.

Meine ersten Experimente mit dem Modulcreator waren auf jeden Fall schon einmal sehr vielversprechend. Ich denke es wird dann sicher auch ein paar Posts zu den Möglichkeiten des Modulcreators geben. Lasst euch überraschen.


The Document Spy learns two new tricks

19. September 2015 Posted by Ralf Petter

Today i have uploaded Version 1.3 of the Document Spy for the IBM Notes client. The new version brings two great new features:

A simple but powerful filter to only show the rows which are useful for your problem. Just type in the filter value in the text box above the item table and the items in the document will be filtered.


With the second feature you can select some rows in the table and then activate a special filter in the context menu of the table to only show the selected rows.



You can even combine the two new features and show only selected Fields in your documents which contains values that match your filter values . The filter stays activated even when you move on to another document. This is very handy when you have to analyze more than one document. But please do not forget to remove the filter when you are finished with your work ;-)

I hope you like the new features as much as i do and download the new 1.3 version as soon as possible. If you have any problems with the new version please leave a comment or send your bug report to ralf.petter@gmail.com.

The Document Spy learns two new tricks

19. September 2015 Posted by Ralf Petter

Today i have uploaded Version 1.3 of the Document Spy for the IBM Notes client. The new version brings two great new features:

A simple but powerful filter to only show the rows which are useful for your problem. Just type in the filter value in the text box above the item table and the items in the document will be filtered.


With the second feature you can select some rows in the table and then activate a special filter in the context menu of the table to only show the selected rows.



You can even combine the two new features and show only selected Fields in your documents which contains values that match your filter values . The filter stays activated even when you move on to another document. This is very handy when you have to analyze more than one document. But please do not forget to remove the filter when you are finished with your work ;-)

I hope you like the new features as much as i do and download the new 1.3 version as soon as possible. If you have any problems with the new version please leave a comment or send your bug report to ralf.petter@gmail.com.

Performanceprobleme bei der An und Abmeldung an einer Starfacegruppe mittels UCI

19. September 2015 Posted by Ralf Petter

Bei uns in der Firma verwenden wir im Verkauf das iQueue Feature der Starface, das eine automatische Verteilung von Anrufern an verschiedene Verkaufsmitarbeiter erlaubt. Eine wichtige Funktion bei einer solchen Lösung ist das An und Abmelden der Verkaufsagenten an den diversen iQueues. Um es unseren Benutzern so leicht wie möglich zu machen, haben wir die An und Abmeldung in unseren Notes basierten CTI Client integriert. Der Benutzer kann sich mit einem Mausklick in mehreren iQueues An und Abmelden. Prinzipiell funktioniert die Lösung auch ganz gut nur die Performance war sehr schlecht. Der An und Abmeldevorgang hat mehrere Sekunden gedauert und während der Vorgang lief, war die CPU Last auf der Telefonanlage extrem hoch, was zu Problemen beim Callhandling führen konnte.


Read more »