UserApp 4.0.2 patch E Role Reports not working


I have a UserApp 4.0.2 patch E version running that will not generate
role reports. It does not matter which report I run, it always gives
this stack trace:


Code:
--------------------

2015-03-10 10:21:46,542 INFO [STDOUT] (http-0.0.0.0-80-36) TRACE [RBPM] [com.novell.idm.nrf.actions.forms.RoleListReportDataForm:getRoleDnS] RoleListReportDataForm.getRoleDn=cn=provAdmin,cn=System,cn=Level20,cn=RoleDefs,cn=RoleConfig,cn=AppConfig,cn=UserApplication,cn=Driver Set,o=services;
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) DEBUG [RBPM] [com.novell.idm.nrf.util.CacheUtil:isObjectInServerCache] Role object was found in cache: cache-key-nrf-config
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) DEBUG [RBPM] [com.novell.idm.nrf.util.CacheUtil:getObjectFromServerCache] Role object RETRIEVED from cache: cache-key-nrf-config
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) DEBUG [RBPM] [com.novell.idm.nrf.util.CacheUtil:isObjectInServerCache] Role object was found in cache: cache-key-nrf-config
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) DEBUG [RBPM] [com.novell.idm.nrf.util.CacheUtil:getObjectFromServerCache] Role object RETRIEVED from cache: cache-key-nrf-config
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] showDetails:
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] roleDnS: cn=provAdmin,cn=System,cn=Level20,cn=RoleDefs,cn=RoleConfig,cn=AppConfig,cn=UserApplication,cn=Driver Set,o=services;
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] roleOwner: all
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] paramShowOnlyAssignedRoles:
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] RoleReportServlet.doGet.reportFormat=pdf
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] RoleReportServlet.doGet.sortKey=sRoleName
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] RoleReportServlet.doGet.reportKey=role-assign
2015-03-10 10:21:47,260 INFO [STDOUT] (http-0.0.0.0-80-30) ERROR [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:doPost] Error occurred when running report. Please contact Administrator.
java.lang.NullPointerException
at com.novell.idm.nrf.report.RoleReportServlet.doPost(RoleReportServlet.java:166)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.novell.srvprv.apwa.servlet.CharsetEncodingFilter.doFilter(CharsetEncodingFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.novell.soa.throttle.ThrottleFilter.doFilter(ThrottleFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.novell.soa.common.i18n.URILoggerServletFilter.doFilter(URILoggerServletFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.novell.soa.common.i18n.BestLocaleServletFilter.doFilter(BestLocaleServletFilter.java:242)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

--------------------


In our other three environments, the reports work fine. I've had a look
at the report objects in the UA driver and they where missing the
nrfLocalizedDescr attributes (we've had similar problems with the
UIConfig objects when migrating the driver from 3.6.1 to 4.0.2). I
copied the reports from a different working environment but this did not
help.

Does anybody know if the database also has some Report config stored ? I
really need to fix this problem :)


--
Sjoerdk
------------------------------------------------------------------------
Sjoerdk's Profile: https://forums.netiq.com/member.php?userid=1135
View this thread: https://forums.netiq.com/showthread.php?t=53060


  • Note: a correct report from a different environment displays this
    logging:


    Code:
    --------------------

    INFO | jvm 1 | 2015/03/10 11:02:32 | 11:02:32,595 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] roleDnS: cn=provAdmin,cn=System,cn=Level20,cn=RoleDefs,cn=RoleConfig,cn=AppConfig,cn=UserApplication,cn=Driver Set,o=services;
    INFO | jvm 1 | 2015/03/10 11:02:32 | 11:02:32,595 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] roleOwner: all
    INFO | jvm 1 | 2015/03/10 11:02:32 | 11:02:32,595 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] paramShowOnlyAssignedRoles:
    INFO | jvm 1 | 2015/03/10 11:02:32 | 11:02:32,627 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] RoleReportServlet.doGet.reportFormat=pdf
    INFO | jvm 1 | 2015/03/10 11:02:32 | 11:02:32,627 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] RoleReportServlet.doGet.sortKey=sRoleName
    INFO | jvm 1 | 2015/03/10 11:02:32 | 11:02:32,627 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceBeforeMessage] RoleReportServlet.doGet.reportKey=role-assign
    INFO | jvm 1 | 2015/03/10 11:02:32 | 11:02:32,627 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceAfterMessage] Get report definition end: 1425981752627
    INFO | jvm 1 | 2015/03/10 11:02:32 | 11:02:32,627 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceAfterMessage] RoleReportServlet.doGet.reportDef.getEntityKey()cn=role-assign,cn=ReportDefs,cn=RoleConfig,cn=AppConfig,cn=UserApplication,cn=Driver Set,o=services
    INFO | jvm 1 | 2015/03/10 11:02:32 | 11:02:32,627 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleReportServlet:traceAfterMessage] User who runs the reportcn=adminUA,ou=People,o=vault
    INFO | jvm 1 | 2015/03/10 11:02:32 | 11:02:32,892 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleAssignmentReportDS:<init>] constructor method with security context
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,032 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleAssignmentReportDS:buildRoleList] Building role list...
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,032 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleAssignmentReportDS:buildRoleList] Get report data starts: 1425981753032
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,219 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleAssignmentReportDS:buildRoleList] Get report data ends: 1425981753219
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,219 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleAssignmentReportDS:buildRoleList] Completed Building role list, total # of roles: 1]
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,219 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.SubReportDS:<init>] Start
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,251 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.SubReportDS:<init>] Start
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,282 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.SubReportDS:<init>] Start
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,282 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.SubReportDS:<init>] Start
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,297 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.SubReportDS:<init>] Start
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,297 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.SubReportDS:<init>] Start
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,313 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.RoleAssignmentReportDS:next] Reached resultset end: 2 of 1
    INFO | jvm 1 | 2015/03/10 11:02:33 | 11:02:33,329 INFO [STDOUT] TRACE [RBPM] [com.novell.idm.nrf.report.SubReportDS:<init>] Start

    --------------------


    --
    Sjoerdk
    ------------------------------------------------------------------------
    Sjoerdk's Profile: https://forums.netiq.com/member.php?userid=1135
    View this thread: https://forums.netiq.com/showthread.php?t=53060


  • I've fixed it. After looking at it for the 10th time, it turned out that
    I missed something:

    My old broken report definitions in the UA driver did not have a
    structural object class or Localized Descriptions etc. that the object
    should have had after migrating from 3.6.1 to 4.0.2.

    The report objects looked like this (I've omitted the ACL attributes and
    XML data).


    Code:
    --------------------

    dn: cn=role-detail,cn=ReportDefsOLD,cn=RoleConfig,cn=AppConfig,cn=UserApplication,cn=Driver Set,o=services
    objectClass: Top
    objectClass: Unknown
    cn: role-detail

    --------------------


    As you can see the reports are located in the ReportDefsOLD OU. This is
    because i copied the whole report OU from another working environment
    and did not want to lose the original OU.

    And here's the catch:
    the cn=configuration object in the driver has a pointer to the reports
    container... and by renaming the OU to OLD, the pointer just changed to
    the OLD container. So i was using the broken reports after all.

    So i just changed the DN to the freshly copied Reports container (again
    i omitted attributes that are not useful for this story) and it worked
    !


    Code:
    --------------------

    dn: cn=configuration,cn=RoleConfig,cn=AppConfig,cn=UserApplication,cn=DriverSet,o=services
    objectClass: DirXML-PkgItemAux
    objectClass: nrfConfiguration
    objectClass: Top
    cn: configuration
    nrfReportContainer: cn=ReportDefs,cn=RoleConfig,cn=AppConfig,cn=UserApplication,cn=Driver Set,o=services

    --------------------


    Only reason I found this out was that I was creating an email for NetIQ
    Support with all data in it, thus going over all OU's and objects again
    and spotting the error that I have overlooked for a couple of days now.
    Just posting the solution here for other people to read :)


    --
    Sjoerdk
    ------------------------------------------------------------------------
    Sjoerdk's Profile: https://forums.netiq.com/member.php?userid=1135
    View this thread: https://forums.netiq.com/showthread.php?t=53060