Thursday, June 24, 2010

XPages: Simple function to clear scoped variables

All scope objects (applicationScope, sessionScope, etc.) are maps, so it's quite easy to clear them. This might come in handy during development, if you want to clear the applicationScope.

I've tested it on both applicationScope and sessionScope, and it doesn't seem to do any harm. After the maps are cleared, the server automatically loads the "internal" values used by the system.

function clearMap( map:Map ){
// Get iterator for the keys
var iterator = map.keySet().iterator();

// Remove all items
while( iterator.hasNext() ){
map.remove( iterator.next() );
}
}
Usage:
clearMap( applicationScope )

Share and enjoy!

4 comments:

Sean Cull said...

very neat

JJTB Somhorst said...

Very simple but effective code. In my applications I do the same for the sessionscope right before a user is logged out.

Karsten Lehmann said...

You can also use map.clear(); if you want to remove all values from the map.

Tommy Valand said...

map.clear() doesn't seem to do anything to the scope maps. I forgot to mention that in the blogpost..