In general, singletons are a poor choice for most applications (search for "singleton" in the "OO,
Patterns and UML" forum to read lots of discussion).
This is especially true when the context of your code already provides a fine alternative. Every application running in a servlet container has available to it an "application context" (also known as "servlet context"), which can be used to store any objects that you wish - such objects are available to all servlets, JSPs and filters in the application.
I strongly suggest that you either put your parsed objects directly into the application context, or that you put a Map into the application context and store your parsed objects into that. Memory leaks are unlikely, as the container is responsible for emptying and destroying the application context if the application is unloaded or the container is shut down.