Details
Description
When adding a session using the SessionRenderer.addCurrentSession(String) method, it's possible that a WeakReference containing null is added to the GroupAsyncRenderer's group set due to an HttpSession not being there yet. When requesting a render the null value is not an instance of Renderable nor HttpSession ending up at the final check to see if it's a PortletSession causing the ClassNotFoundException to be thrown in a non-portal environment as mentioned in the forum.
It was still possible getting null-values as after session clean-up the contained WeakReferences will point to null. They are not automatically removed from the CopyOnWriteArraySet. Therefore, on each render call whenever a WeakReference is encountered that points to null, it is removed from the Set. Later on we could consider a more pro-active solution to clean the Set of these kind of WeakReferences. Marking this one as FIXED once again.