On 03/05/2010 17:15, Mark Shifman wrote: > I have a web app running under tomcat-6.0.26 with > JreMemoryLeakPreventionListener, java jdk1.6.0_18. > > Using jmap -histo pid, I can watch > com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl, etc increase in number > after running my unmarshal action, followed by undeploy and redeploy. Find > Leaks in the manager also finds leaks.
After a few undeploy/redeploy cycles does the number of WebappClassLoader's also increase? > The JAXBContext instance is created with a singleton that is an enum (using > Josh Block's pattern): > > public enum JAXBContextMascot { > INSTANCE("com.matrixscience.xmlns.schema.mascot_search_results_2" ); > private JAXBContext ctx; > JAXBContextMascot(String contextPath) { > try { > ctx =JAXBContext.newInstance(clazz); Where does the 'clazz' variable come from? > } catch (JAXBException e) { > throw new RuntimeException(e); > } > } > public Unmarshaller createUnmarshaller(){ > try { > return ctx.createUnmarshaller(); > } catch (JAXBException e) { > throw new RuntimeException(e); > } > } > } > > Am I doing something wrong which is causing the memory leak? Maybe. > JAXBContext.newInstance() can take a ClassLoader argument. Is there some > ClassLoader I should be using that will get around this? Where is the jar with the above code, in a webapp? p > Any help would be appreciated. > mas > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org >
signature.asc
Description: OpenPGP digital signature