[jbosstools-issues] [JBoss JIRA] (JBIDE-24659) NPE in AttributeControlFactory.createControl

Rob Stryker (JIRA) issues at jboss.org
Tue Aug 15 07:32:00 EDT 2017


     [ https://issues.jboss.org/browse/JBIDE-24659?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Stryker resolved JBIDE-24659.
---------------------------------
      Assignee: Rob Stryker
    Resolution: Done


Pushed to master

{code}
[rob at rawbdorable org.jboss.tools.as.management.itests] (master)$ git log -p
commit e7df8f4b8e7cda3c273c88fa37e1e8c77834d6f1
Author: Rob Stryker <rob at oxbeef.net>
Date:   Tue Aug 15 07:29:47 2017 -0400

    JBIDE-24659 - clean up NPE in JMX editor when attribute has null value and foreign type

diff --git a/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/controls/AttributeControlFactory.java b/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/controls/AttributeControlFactory.java
index f216bf3..d419677 100644
--- a/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/controls/AttributeControlFactory.java
+++ b/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/controls/AttributeControlFactory.java
@@ -124,7 +124,15 @@ public class AttributeControlFactory {
                } else {
                 List<IAttributeControlFactory> factories = findFactories(clazz);
                 if (factories == null) {
-                    factory = value.getClass().isArray() ? arrayFactory : defaultFactory;
+                       if( value == null ) {
+                               if( type != null && type.startsWith("[")) { //$NON-NLS-1$
+                                       factory = arrayFactory;
+                               } else {
+                                       factory = defaultFactory;
+                               }
+                       } else {
+                               factory = value.getClass().isArray() ? arrayFactory : defaultFactory;
+                       }
{code}

> NPE in AttributeControlFactory.createControl
> --------------------------------------------
>
>                 Key: JBIDE-24659
>                 URL: https://issues.jboss.org/browse/JBIDE-24659
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 4.5.0.AM1
>            Reporter: Aurélien Pupier
>            Assignee: Rob Stryker
>             Fix For: 4.5.1.AM1
>
>         Attachments: image-2017-07-10-16-04-14-279.png
>
>
> {noformat}
> !ENTRY org.jboss.tools.jmx.ui 4 0 2017-07-10 16:00:20.250
> !MESSAGE Unable to retrieve value for attribute FirstExchangeFailureTimestamp
> !STACK 0
> java.lang.NullPointerException
> 	at org.jboss.tools.jmx.ui.internal.controls.AttributeControlFactory.createControl(AttributeControlFactory.java:127)
> 	at org.jboss.tools.jmx.ui.internal.editors.AttributeDetails.update(AttributeDetails.java:215)
> 	at org.jboss.tools.jmx.ui.internal.editors.AttributeDetails.selectionChanged(AttributeDetails.java:184)
> 	at org.eclipse.ui.forms.DetailsPart.lambda$0(DetailsPart.java:267)
> 	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
> 	at org.eclipse.ui.forms.DetailsPart.showPage(DetailsPart.java:255)
> 	at org.eclipse.ui.forms.DetailsPart.update(DetailsPart.java:228)
> 	at org.eclipse.ui.forms.DetailsPart.selectionChanged(DetailsPart.java:213)
> 	at org.eclipse.ui.forms.ManagedForm.fireSelectionChanged(ManagedForm.java:125)
> 	at org.jboss.tools.jmx.ui.internal.editors.AttributesSection$1.selectionChanged(AttributesSection.java:57)
> 	at org.eclipse.jface.viewers.Viewer$1.run(Viewer.java:155)
> 	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> 	at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:44)
> 	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
> 	at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:152)
> 	at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:2180)
> 	at org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:1223)
> 	at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:1252)
> 	at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:240)
> 	at org.eclipse.jface.util.OpenStrategy.access$4(OpenStrategy.java:235)
> 	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:400)
> 	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
> 	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
> 	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
> 	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238)
> 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817)
> 	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
> 	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
> 	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
> 	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
> 	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
> 	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
> 	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
> 	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
> 	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
> 	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:388)
> 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
> 	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:498)
> 	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
> 	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
> 	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
> 	at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)



More information about the jbosstools-issues mailing list