cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1680
Views
16
Helpful
11
Replies

LMS 3.2.1 - NullPointerException in CS Device Update

Sven Hruza
Level 4
Level 4

Hi,

I have running a LMS master/slave installation with version 3.2.1 and patch for the cisco download running.

Now I get on two of the three servers a NullPointerException if I want to go to the Device Update in CS.

This is the output from stderr.log:

Feb 17, 2012 8:58:34 AM org.apache.catalina.core.StandardWrapperValve invoke

SEVERE: Servlet.service() for servlet action threw exception

java.lang.NullPointerException

    at com.cisco.nm.xms.psu.ui.gui.model.ViewProduct.getAllProducts(ViewProduct.java:45)

    at com.cisco.nm.xms.psu.ui.gui.model.ProductList.getAllRegProducts(ProductList.java:21)

    at com.cisco.nm.xms.psu.ui.gui.model.action.DevUpdate.setRegisteredProducts(DevUpdate.java:2213)

    at com.cisco.nm.xms.psu.ui.gui.model.action.DevUpdate.perform(DevUpdate.java:491)

    at org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1786)

    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1585)

    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:491)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

    at com.cisco.nm.cmf.util.AccessLogFilter.doFilter(AccessLogFilter.java:128)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)

    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)

    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)

    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)

    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)

    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)

    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)

    at java.lang.Thread.run(Thread.java:662)

I did the installation the same way on all three servers.

Thanks for any advice!

Sven

11 Replies 11

Michel Hegeraat
Level 7
Level 7

For the device update you better check the psu.log, well after you crank up the debug level and re-run the job

Cheers,

Michel

Hi!

Thanks, Michel, for your reply!

I enabled the debug for Software Center and this is the output from psu.log:

[ Mon Feb 20 10:09:04 CET 2012 ] DEBUG  [DiscoveryEvalScheduler : reportTaskDone]  : Done running work on EvalTask(DiscoveryThreadPool,8)

[ Mon Feb 20 10:09:04 CET 2012 ] DEBUG  [DiscoveryEvalScheduler : reportTaskRunning]  : Running work from EvalQueue(pool=DiscoveryThreadPool,weight=5,uid=7739053) on EvalTask(DiscoveryThreadPool,8)

[ Mon Feb 20 10:09:04 CET 2012 ] INFO   [DiscoveryEvalScheduler : wakeUpThread]  : _runningThreads => 20, _count => 20_maxCount => 20

[ Mon Feb 20 10:09:45 CET 2012 ] DEBUG  [GetDeviceUpdateFB : reset]  : DeviceUpdateFB: reset(map,req) called..

[ Mon Feb 20 10:09:45 CET 2012 ] DEBUG  [DevUpdate : perform]  : ......Wizid == null ......wizAction==null

[ Mon Feb 20 10:09:45 CET 2012 ] DEBUG  [DevUpdate : perform]  : installOK ===============[]

[ Mon Feb 20 10:09:45 CET 2012 ] DEBUG  [ViewProduct : getAllProducts]  : Loading psu properties using CmdLineOpts..

[ Mon Feb 20 10:09:46 CET 2012 ] DEBUG  [DiscoveryEvalScheduler : reportTaskDone]  : Done running work on EvalTask(DiscoveryThreadPool,15)

[ Mon Feb 20 10:09:46 CET 2012 ] DEBUG  [DiscoveryEvalScheduler : reportTaskRunning]  : Running work from EvalQueue(pool=DiscoveryThreadPool,weight=5,uid=7739053) on EvalTask(DiscoveryThreadPool,15)

[ Mon Feb 20 10:09:46 CET 2012 ] DEBUG  [DiscoveryEvalScheduler : reportTaskDone]  : Done running work on EvalTask(DiscoveryThreadPool,2)

[ Mon Feb 20 10:09:46 CET 2012 ] DEBUG  [DiscoveryEvalScheduler : reportTaskRunning]  : Running work from EvalQueue(pool=DiscoveryThreadPool,weight=5,uid=7739053) on EvalTask(DiscoveryThreadPool,2)

[ Mon Feb 20 10:09:46 CET 2012 ] INFO   [DiscoveryEvalScheduler : wakeUpThread]  : _runningThreads => 20, _count => 20_maxCount => 20

[ Mon Feb 20 10:09:46 CET 2012 ] INFO   [DiscoveryEvalScheduler : wakeUpThread]  : _runningThreads => 20, _count => 20_maxCount => 20

Any ideas?

Thanks!

Sven

Sven,

The log is incomplete. It should start with this:

[ Mon Feb 20 11:59:38 CET 2012 ] DEBUG  [PsuUtils : isDirectoryUnderNMSRoot]  : directory specified :C:\psu_download

[ Mon Feb 20 11:59:38 CET 2012 ] DEBUG  [PsuUtils : getWinSystemDir]  : system dir : C:\WINDOWS

[ Mon Feb 20 11:59:42 CET 2012 ] INFO   [SecurityHandler : getCSProxyLogin]  : No proxy User Name configured

[ Mon Feb 20 11:59:42 CET 2012 ] INFO   [SecurityHandler : getCSProxyHost]  : No proxy Host configured

[ Mon Feb 20 11:59:54 CET 2012 ] INFO   [SecurityHandler : getCSProxyHost]  : No proxy Host configured

[ Mon Feb 20 11:59:54 CET 2012 ] INFO   [SecurityHandler : getCSProxyPort]  : No proxy port confgured

untill the nullpointerexception... I guess?

Cheers,

Michel

These were the first messages when I click on the device update.

But I think I found the lines you think about. They are much older:

[ Fri Dec 30 08:58:08 CET 2011 ] ERROR  [CcoDownloadAdapter : getXmlFileList]  : failed to connect to Cisco.com:RespCode=404, RespMsg=Not Found

[ Fri Dec 30 08:58:08 CET 2011 ] ERROR  [RemoteRepSync : downloadPsuHeadersAsXml]  : VDSException thrown com.cisco.nm.xms.vds.VDSException: CcoDownloadAdapter::getfileList():failed to connect to Cisco.com.

[ Fri Dec 30 08:58:08 CET 2011 ] INFO   [SwUpdateAction : selectAllUpdates]  : removing SwUpdateLock, due to exception..

[ Tue Jan 03 09:48:35 CET 2012 ] INFO   [SecurityHandler : getCSProxyLogin]  : No proxy User Name configured

[ Tue Jan 03 09:48:52 CET 2012 ] INFO   [SwUpdateAction : selectAllUpdates]  : Validated Cisco.com credentials..

[ Tue Jan 03 09:48:52 CET 2012 ] ERROR  [CcoDownloadAdapter : getXmlFileList]  : failed to connect to Cisco.com:RespCode=404, RespMsg=Not Found

[ Tue Jan 03 09:48:52 CET 2012 ] ERROR  [RemoteRepSync : downloadPsuHeadersAsXml]  : VDSException thrown com.cisco.nm.xms.vds.VDSException: CcoDownloadAdapter::getfileList():failed to connect to Cisco.com.

[ Tue Jan 03 09:48:52 CET 2012 ] INFO   [SwUpdateAction : selectAllUpdates]  : removing SwUpdateLock, due to exception..

[ Tue Jan 03 11:36:03 CET 2012 ] INFO   [SecurityHandler : getCSProxyLogin]  : No proxy User Name configured

[ Tue Jan 03 11:36:16 CET 2012 ] INFO   [SwUpdateAction : selectAllUpdates]  : Validated Cisco.com credentials..

[ Tue Jan 03 11:36:16 CET 2012 ] ERROR  [SecurityHandler : initConfigProps]  : Exception :java.io.InvalidClassException: com.cisco.nm.xms.vds.VDSConfigProps; local class incompatible: stream classdesc serialVersionUID = 5707767613830197462, local class serialVersionUID = -8552113475503203951

[ Tue Jan 03 11:36:16 CET 2012 ] ERROR  [VirtualDownloadService : saveConfiguration]  : Exception :com.cisco.nm.xms.vds.VDSException: SecurityHandler::initConfigProps():Exceptioncom.cisco.nm.xms.vds.VDSConfigProps; local class incompatible: stream classdesc serialVersionUID = 5707767613830197462, local class serialVersionUID = -8552113475503203951

[ Tue Jan 03 11:36:16 CET 2012 ] FATAL  [PsuUtils : getCcoMappedName]  : Could not load data file \lib\classpath\com\cisco\nm\xms\psu\conf\tag.properties

[ Tue Jan 03 11:36:16 CET 2012 ] INFO   [SwUpdateAction : selectAllUpdates]  : removing SwUpdateLock, due to exception..

[ Wed Feb 01 16:10:28 CET 2012 ] INFO   [SecurityHandler : getCSProxyLogin]  : No proxy User Name configured

[ Wed Feb 01 16:10:28 CET 2012 ] INFO   [SchDownloadsAction : perform]  : Start method

[ Wed Feb 01 16:10:28 CET 2012 ] INFO   [SchDownloadsAction : perform]  : req.getParameter(scheDownloads) ====== null

[ Wed Feb 01 16:10:42 CET 2012 ] INFO   [ActivityAction : perform]  : Displaying the ActivityLog - Start

[ Wed Feb 01 16:10:43 CET 2012 ] WARN   [JobHistory : init]  : Jobs file does not exist: \lib\classpath\com\cisco\nm\xms\psu\conf\JobDB

[ Wed Feb 01 16:10:43 CET 2012 ] ERROR  [PackageManager : initAdapters]  : Exception while loading adapters : java.lang.NullPointerException

I searched for the tag.properties, but I only found the file named "tag". The content is the same as on the working server.

Is it possible to change the file name manually?

Thanks!

Sven

These messages I showed should appear everytime you launch the device update.

So also now. Did you re-try the device update?

Cheers,

Michel

Yes, I re-tried the device update and these are the first lines from the psu.log after I started the device update:

[ Mon Feb 20 12:36:54 CET 2012 ] DEBUG  [GetDeviceUpdateFB : reset]  : DeviceUpdateFB: reset(map,req) called..

[ Mon Feb 20 12:36:54 CET 2012 ] DEBUG  [DevUpdate : perform]  : ......Wizid == null ......wizAction==null

[ Mon Feb 20 12:36:54 CET 2012 ] DEBUG  [DevUpdate : perform]  : installOK ===============[]

[ Mon Feb 20 12:36:54 CET 2012 ] DEBUG  [ViewProduct : getAllProducts]  : Loading psu properties using CmdLineOpts..

Nothing else.....

Sven

Very strange indeed. You are running this device update as admin right? And the psu log level is at debug?

Have you restarted the server lately? No disk space issues?

Michel

No, no disk space issue and my tacacs+ user is running with the role superadmin.

I checked the debug log on the one server which is running well.

It starts the same as the not working server:

Click on the link "device update":

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [GetDeviceUpdateFB : reset]  : DeviceUpdateFB: reset(map,req) called..

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [DevUpdate : perform]  : ......Wizid == null ......wizAction==null

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [DevUpdate : perform]  : installOK ===============[]

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getAllProducts]  : Loading psu properties using CmdLineOpts..

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : cmf

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [cmf] = 0

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : cvw

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [cvw] = 683

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : cwa

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [cwa] = 0

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : lmsportal

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [lmsportal] = 0

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : nmim

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [nmim] = 0

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : rme

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [rme] = 855

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [GetDeviceUpdateFB : reset]  : DeviceUpdateFB: reset(map,req) called..

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getAllProducts]  : Loading psu properties using CmdLineOpts..

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : cmf

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [cmf] = 0

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : cvw

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [cvw] = 683

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : cwa

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [cwa] = 0

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : lmsportal

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [lmsportal] = 0

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : nmim

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [nmim] = 0

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : getting DeviceCount for : rme

[ Mon Feb 20 13:58:21 CET 2012 ] DEBUG  [ViewProduct : getDeviceCount]  : DeviceCount for [rme] = 855

-> Now the gui appears where I can select for which LMS module I want to check for device updates.

No I choose "ciscoview" and click to "check for updates":

[ Mon Feb 20 14:00:00 CET 2012 ] DEBUG  [GetDeviceUpdateFB : reset]  : DeviceUpdateFB: reset(map,req) called..

[ Mon Feb 20 14:00:00 CET 2012 ] DEBUG  [DevUpdate : perform]  : ......Wizid == null ......wizAction==null

[ Mon Feb 20 14:00:00 CET 2012 ] DEBUG  [DevUpdate : perform]  : installOK ===============[]

[ Mon Feb 20 14:00:00 CET 2012 ] DEBUG  [DevUpdate : perform]  : selected product[1] = CiscoView

[ Mon Feb 20 14:00:00 CET 2012 ] DEBUG  [PsuUtils : isDirectoryUnderNMSRoot]  : directory specified :D:\psu_download

[ Mon Feb 20 14:00:00 CET 2012 ] DEBUG  [PsuUtils : getWinSystemDir]  : system dir :

And after that the log messages came up how you described.

So I think there is a problem before the point you thought about.

Thanks!

Sven

I found my issue!

The problem is the file psu.properties in the folder \CSCOpx\lib\classpath\com\cisco\nm\xms\psu\conf.

The original input is:

PsuProperties=\\lib\\classpath\\com\\cisco\\nm\\xms\\psu\\conf\\psu.properties

unknownSysObjIdDb=\\lib\\classpath\\com\\cisco\\nm\\xms\\psu\\conf\\deviceDB

remoteDir=\\temp\\psuinstall

destLocation=tmp\\psu

lockFile=\\www\\classpath\\com\\cisco\\nm\\xms\\psu

PsuDownloadLock=\\Psu.Lock

historyDB=\\lib\\classpath\\com\\cisco\\nm\\xms\\psu\\conf\\historyDB

adapterDirectory=\\www\\classpath\\com\\cisco\\nm\\xms\\psu\\adapters

cvinfoFile=cvinfo

register=\\lib\\classpath\\com\\cisco\\nm\\xms\\psu\\conf\\tag.properties

mapPropertyFile=\\lib\\classpath\\com\\cisco\\nm\\xms\\psu\\conf\\mdfMapping.properties

tempStagingDirectory=\\temp\\psu

tempInstallDownloadDir=\\temp\\psuinstall

packageRepDirectory=\\www\\classpath\\com\\cisco\\nm\\xms\\psu\\pkgs

JobDB=\\lib\\classpath\\com\\cisco\\nm\\xms\\psu\\conf\\JobDB

readmeDirectory=\\htdocs\\psu

downloadDirectory=:\\psu_download

maxHistoryEntries=50

SLEEP_INTERVAL=120

applicationID=LMS

On the server where the device update is working, the paths to the files are not with , but with the native path

d:\\PROGRA~1\\CSCOpx\\

If I change that the Device Update works!

My question is, where is the is configured in the application? Maybe I have a basic issue with that variable?!?

Thanks a lot, Michel, for your help! The hint with the psu.log was very helpful! :-)

Sven

Did you restore a backup or config files from one system to another with a different path for NMSROOT?

I always keep it \CSCOpx, mostly d:\CSCOpx so I never had such an issue.

Cheers,

Michel

Hi,

no, the last action I did was the update to lms 3.2.1. Nothing else.

And I think before the update I had access to the device update. No idea why this is not working.

This is a global variable, right? So other parts of LMS will use it, too. Don't understand that....

Do you know where the path for is configured?

Thanks!

Sven

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: