[OPENAM-5505] Setting openam-session-timeout-handler-list= in ssoadm set-attr-defs ends up creating a list with one empty item Created: 09/Feb/15  Updated: 20/Nov/16  Resolved: 21/Apr/15

Status: Resolved
Project: OpenAM
Component/s: session
Affects Version/s: 10.0.0, 10.0.1, 10.0.2, 11.0.0, 11.0.1, 11.0.2, 12.0.0
Fix Version/s: 10.0.3, 11.0.4, 12.0.3, 13.0.0

Type: Bug Priority: Minor
Reporter: Mark de Reeper Assignee: Mark de Reeper
Resolution: Fixed Votes: 0
Labels: EDISON, release-notes
Remaining Estimate: 5h
Time Spent: 3h
Original Estimate: 8h

Target Version/s:
Rank: 1|hzlom7:
Sprint: Sprint 80 - Sustaining, Sprint 81 - Sustaining
Support Ticket IDs:

 Description   

As a result of calling

set-attr-defs --servicename iPlanetAMSessionService --schematype global -a openam-session-timeout-handler-list=

results in an schema entry like

<AttributeSchema cosQualifier="default"  i18nKey="a123"  isSearchable="no"  name="openam-session-timeout-handler-list"  syntax="string"  type="list" >
                <DefaultValues><Value></Value></DefaultValues></AttributeSchema>

which can lead to a ClassNotFoundException in the OpenAM Session debug log when SessionService.execSessionTimeoutHandlers() is called.

amSession:01/27/2015 04:15:54:008 AM NZDT: Thread[pool-2-thread-91,5,main]
ERROR: Error while executing the following session timeout handler: 
java.lang.ClassNotFoundException: 
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    at com.iplanet.dpro.session.service.SessionService$2.run(SessionService.java:2266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Proposed fix is to add an additional isEmpty check to the class name before trying to do the Class.forName() call.

The ssoadm remove-attr-defs command can be used to restore the default schema empty value, for example:

remove-attr-defs --servicename iPlanetAMSessionService --schematype global -a openam-session-timeout-handler-list


 Comments   
Comment by Mark de Reeper [ 21/Apr/15 ]

Fixed in R13520,R13521,R13522 and R13523.

Generated at Mon Mar 01 21:51:01 UTC 2021 using Jira 7.13.12#713012-sha1:6e07c38070d5191bbf7353952ed38f111754533a.