[MSP-74] SDR 구성시 NullPointerException 발생 및 한쪽 노드의 mccsserver.exe 재시작됨

Subject
SDR 구성시 NullPointerException 발생 및 한쪽 노드의 mccsserver.exe 재시작됨

APPLIES TO:
MCCS 4.1




SYMPTOMS
1. SDR 구성 후 완료 버튼 클릭시, mccsserver.exe가 재시작된다.
2. trace.log 로그 확인시, SDR생성시점에 아래와 같이 exception 이 발생한다.



14/11/20-14:48:45,855 | [18c118d] | .ResourceImages: 114 | TRACE | 40001:이미지가 존재하지 않습니다. [SDRVolume_share : SDRvolume_share.png]
java.lang.NullPointerException
at com.mantech.mccs.console.util.ResourceImages.createPropImage(ResourceImages.java:109)
at com.mantech.mccs.console.util.ResourceImages.<init>(ResourceImages.java:71)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.eclipse.rap.rwt.internal.util.ClassUtil.createInstance(ClassUtil.java:60)
at org.eclipse.rap.rwt.internal.util.ClassUtil.newInstance(ClassUtil.java:41)
at org.eclipse.rap.rwt.internal.util.ClassUtil.newInstance(ClassUtil.java:34)
at org.eclipse.rap.rwt.internal.SingletonManager.getSingleton(SingletonManager.java:55)
at org.eclipse.rap.rwt.SingletonUtil.getSessionInstance(SingletonUtil.java:55)
at com.mantech.mccs.console.util.ResourceImages.getInstance(ResourceImages.java:56)
at com.mantech.mccs.console.util.ResourceImages.getImageDescriptor(ResourceImages.java:429)
at com.mantech.mccs.console.actions.QuitAction.<init>(QuitAction.java:56)
at com.mantech.mccs.console.ApplicationActionBarAdvisor.makeActions(ApplicationActionBarAdvisor.java:134)
at org.eclipse.ui.application.ActionBarAdvisor.fillActionBars(ActionBarAdvisor.java:147)
at org.eclipse.ui.internal.WorkbenchWindow.fillActionBars(WorkbenchWindow.java:3614)
at org.eclipse.ui.internal.WorkbenchWindow.<init>(WorkbenchWindow.java:407)
at org.eclipse.ui.internal.tweaklets.Workbench3xImplementation.createWorkbenchWindow(Workbench3xImplementation.java:29)
at org.eclipse.ui.internal.Workbench.newWorkbenchWindow(Workbench.java:1933)
at org.eclipse.ui.internal.Workbench.access$11(Workbench.java:1931)
at org.eclipse.ui.internal.Workbench$16.runWithException(Workbench.java:1244)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:32)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:230)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:1088)
at org.eclipse.ui.internal.StartupThreading.runWithWorkbenchExceptions(StartupThreading.java:55)
at org.eclipse.ui.internal.Workbench.busyOpenWorkbenchWindow(Workbench.java:1242)
at org.eclipse.ui.internal.Workbench.doOpenFirstTimeWindow(Workbench.java:2061)
at org.eclipse.ui.internal.Workbench.openFirstTimeWindow(Workbench.java:1992)
at org.eclipse.ui.internal.WorkbenchConfigurer.openFirstTimeWindow(WorkbenchConfigurer.java:188)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:790)
at org.eclipse.ui.internal.Workbench$27.runWithException(Workbench.java:1640)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:32)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:230)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:1088)
at org.eclipse.ui.internal.StartupThreading.runWithoutExceptions(StartupThreading.java:110)
at org.eclipse.ui.internal.Workbench.init(Workbench.java:1635)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2655)
at org.eclipse.ui.internal.Workbench.access$5(Workbench.java:2530)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:701)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:684)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:157)
at com.mantech.mccs.console.MccsConsole.start(MccsConsole.java:49)
at org.eclipse.rap.ui.internal.application.EntryPointApplicationWrapper.createUI(EntryPointApplicationWrapper.java:38)
at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:186)
at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:298)
at java.lang.Thread.run(Unknown Source)
at org.eclipse.rap.rwt.internal.lifecycle.UIThread.run(UIThread.java:104)

3. mccsserver.exe가 재시작 될 시점의 trace.log
14/11/20-14:49:00,925 | [18c118d] | .sdr.NewSDRPage: 173 | TRACE | java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.net.SocketTimeoutException: Read timed out
java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.net.SocketTimeoutException: Read timed out
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
at com.sun.proxy.$Proxy11.external(Unknown Source)
at com.mantech.mccs.agent.datakeeper.dialog.sdr.NewSDRPage.initVolumeCombo(NewSDRPage.java:256)
at com.mantech.mccs.agent.datakeeper.dialog.sdr.NewSDRPage.runProgressControl(NewSDRPage.java:165)
at com.mantech.mccs.console.actions.AddResourceAction$1$1$1.run(AddResourceAction.java:108)
at org.eclipse.jface.operation.ModalContext$ModalContextThread$1.run(ModalContext.java:127)
at org.eclipse.rap.rwt.internal.lifecycle.ContextUtil.runNonUIThreadWithFakeContext(ContextUtil.java:67)
at org.eclipse.rap.rwt.internal.service.UISessionImpl.exec(UISessionImpl.java:221)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.DataInputStream.readByte(Unknown Source)
... 12 more
CAUSE
패키지 빌드시 DLL 복사가 정상적으로 되지 않았음



SOLUTION
DLL 복사 완료, 이미지 키값 소문자로 변경후 이미지도 정상적으로 표현됨.

Fixed 4.1