I've been looking at TUSCANY-3835 for a day or so. This is a bit of
therapeutic writing down of what I've found to see if I can make sense
of it. I've initially been looking at the 1.x code base but I expect
the similar things are true of the 2.x code base.

This started as I noticed that over restarts I was getting a large
number of GeneratedClassLoader instances hanging around. While this
doesn't seem to cause a serious leak the tenured space utilization
increases gradually and the number of loaded classes increases quite
quickly.

Tuning on the class loading/unloading I see this kind of thing (I'm
using the 1.x itest/wsdlgen/HttpTransportTestCase but with a local
change to repeated load/start/stop a node).

Firstly a whole stack of loaded classes for each restart as these are
the classes that are generated from the WSDL to populate the JAXB
context

[Loaded helloworld.jaxws.GetGreetings from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsResponse from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsDBean from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsDBeanResponse from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsByteArray from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsByteArrayResponse from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsException from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsExceptionResponse from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBean from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBeanResponse from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBeanArray from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBeanArrayResponse from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBBean from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBBeanResponse from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsCBean from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsCBeanResponse from __JVM_DefineClass__]
[Loaded yetanotherpackage.jaxws.HelloWorldExceptionBean$JaxbAccessorF_message
from __JVM_DefineClass__]
[Loaded yetanotherpackage.jaxws.HelloWorldExceptionBean$JaxbAccessorF_message
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsByteArray$JaxbAccessorF_arg0 from
__JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsResponse$JaxbAccessorF__return
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetings$JaxbAccessorF_arg0 from
__JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsDBean$JaxbAccessorF_arg0 from
__JVM_DefineClass__]
[Loaded 
yetanotherpackage.DBean$JaxbAccessorM_getField1_setField1_java_lang_String
from __JVM_DefineClass__]
[Loaded 
yetanotherpackage.DBean$JaxbAccessorM_getField1_setField1_java_lang_String
from __JVM_DefineClass__]
[Loaded 
yetanotherpackage.DBean$JaxbAccessorM_getField2_setField2_java_lang_String
from __JVM_DefineClass__]
[Loaded 
yetanotherpackage.DBean$JaxbAccessorM_getField2_setField2_java_lang_String
from __JVM_DefineClass__]
[Loaded 
yetanotherpackage.DBean$JaxbAccessorM_getField3_setField3_anotherpackage_BBean
from __JVM_DefineClass__]
[Loaded anotherpackage.BBean$JaxbAccessorM_getField1_setField1_java_lang_String
from __JVM_DefineClass__]
[Loaded anotherpackage.BBean$JaxbAccessorM_getField1_setField1_java_lang_String
from __JVM_DefineClass__]
[Loaded anotherpackage.BBean$JaxbAccessorM_getField2_setField2_java_lang_String
from __JVM_DefineClass__]
[Loaded anotherpackage.BBean$JaxbAccessorM_getField2_setField2_java_lang_String
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsCBeanResponse$JaxbAccessorF__return
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsExceptionResponse$JaxbAccessorF__return
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsByteArrayResponse$JaxbAccessorF__return
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBeanResponse$JaxbAccessorF__return
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBBeanResponse$JaxbAccessorF__return
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsException$JaxbAccessorF_arg0 from
__JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBean$JaxbAccessorF_arg0 from
__JVM_DefineClass__]
[Loaded helloworld.ABean$JaxbAccessorM_getField1_setField1_java_lang_String
from __JVM_DefineClass__]
[Loaded helloworld.ABean$JaxbAccessorM_getField1_setField1_java_lang_String
from __JVM_DefineClass__]
[Loaded helloworld.ABean$JaxbAccessorM_getField2_setField2_java_lang_String
from __JVM_DefineClass__]
[Loaded helloworld.ABean$JaxbAccessorM_getField2_setField2_java_lang_String
from __JVM_DefineClass__]
[Loaded helloworld.ABean$JaxbAccessorM_getField3_setField3_anotherpackage_BBean
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBeanArrayResponse$JaxbAccessorF__return
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBeanArray$JaxbAccessorF_arg0 from
__JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsCBean$JaxbAccessorF_arg0 from
__JVM_DefineClass__]
[Loaded anotherpackage.CBean$JaxbAccessorM_getField1_setField1_java_lang_String
from __JVM_DefineClass__]
[Loaded anotherpackage.CBean$JaxbAccessorM_getField1_setField1_java_lang_String
from __JVM_DefineClass__]
[Loaded anotherpackage.CBean$JaxbAccessorM_getField2_setField2_java_lang_String
from __JVM_DefineClass__]
[Loaded anotherpackage.CBean$JaxbAccessorM_getField2_setField2_java_lang_String
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsDBeanResponse$JaxbAccessorF__return
from __JVM_DefineClass__]
[Loaded helloworld.jaxws.GetGreetingsBBean$JaxbAccessorF_arg0 from
__JVM_DefineClass__]

Occasionally it unloads a load of the generated classes. For example,

[Unloading class helloworld.jaxws.GetGreetingsBBean]
[Unloading class helloworld.jaxws.GetGreetingsBean]
[Unloading class helloworld.jaxws.GetGreetingsBBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsCBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsCBean]
[Unloading class helloworld.jaxws.GetGreetingsCBean$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsDBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray]
[Unloading class helloworld.jaxws.GetGreetingsResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetings$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsExceptionResponse]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray]
[Unloading class
helloworld.jaxws.GetGreetingsBeanArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsExceptionResponse]
[Unloading class helloworld.jaxws.GetGreetingsCBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBBeanResponse]
[Unloading class
helloworld.jaxws.GetGreetingsByteArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsException]
[Unloading class
helloworld.jaxws.GetGreetingsByteArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsByteArray]
[Unloading class helloworld.jaxws.GetGreetingsByteArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsExceptionResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsDBean]
[Unloading class helloworld.jaxws.GetGreetingsByteArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsCBeanResponse]
[Unloading class
helloworld.jaxws.GetGreetingsBeanArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsCBeanResponse]
[Unloading class
helloworld.jaxws.GetGreetingsExceptionResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsDBean]
[Unloading class helloworld.jaxws.GetGreetingsBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsCBean]
[Unloading class
helloworld.jaxws.GetGreetingsDBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanArrayResponse]
[Unloading class helloworld.jaxws.GetGreetingsDBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBean]
[Unloading class helloworld.jaxws.GetGreetingsCBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsException$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsCBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsByteArrayResponse]
[Unloading class helloworld.jaxws.GetGreetingsBBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsException$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsBBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBBeanResponse]
[Unloading class
helloworld.jaxws.GetGreetingsDBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsDBean]
[Unloading class helloworld.jaxws.GetGreetingsBeanArrayResponse]
[Unloading class helloworld.jaxws.GetGreetings]
[Unloading class helloworld.jaxws.GetGreetingsBeanArrayResponse]
[Unloading class helloworld.jaxws.GetGreetingsByteArrayResponse]
[Unloading class helloworld.jaxws.GetGreetingsCBean]
[Unloading class
helloworld.jaxws.GetGreetingsCBeanResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsExceptionResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsByteArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBean]
[Unloading class helloworld.jaxws.GetGreetingsDBean]
[Unloading class
helloworld.jaxws.GetGreetingsDBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsCBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsResponse]
[Unloading class helloworld.jaxws.GetGreetingsException]
[Unloading class helloworld.jaxws.GetGreetingsByteArrayResponse]
[Unloading class helloworld.jaxws.GetGreetingsCBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsException$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetings]
[Unloading class helloworld.jaxws.GetGreetingsException$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray]
[Unloading class helloworld.jaxws.GetGreetingsDBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetings]
[Unloading class helloworld.jaxws.GetGreetingsExceptionResponse]
[Unloading class helloworld.jaxws.GetGreetingsDBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsBeanArrayResponse]
[Unloading class
helloworld.jaxws.GetGreetingsBeanArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetings$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsCBean]
[Unloading class helloworld.jaxws.GetGreetingsDBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsResponse]
[Unloading class helloworld.jaxws.GetGreetingsBBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBean]
[Unloading class helloworld.jaxws.GetGreetingsResponse]
[Unloading class helloworld.jaxws.GetGreetingsResponse]
[Unloading class helloworld.jaxws.GetGreetingsException]
[Unloading class
helloworld.jaxws.GetGreetingsByteArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsDBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsExceptionResponse]
[Unloading class helloworld.jaxws.GetGreetingsDBean]
[Unloading class
helloworld.jaxws.GetGreetingsExceptionResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetings$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsDBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBBean$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsByteArrayResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsByteArrayResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsBBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsDBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsByteArrayResponse]
[Unloading class
helloworld.jaxws.GetGreetingsBeanArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetings$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsException]
[Unloading class helloworld.jaxws.GetGreetingsByteArray]
[Unloading class helloworld.jaxws.GetGreetingsDBean]
[Unloading class
helloworld.jaxws.GetGreetingsBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetings]
[Unloading class helloworld.jaxws.GetGreetings]
[Unloading class
helloworld.jaxws.GetGreetingsBeanArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBBean]
[Unloading class helloworld.jaxws.GetGreetingsCBean]
[Unloading class helloworld.jaxws.GetGreetingsExceptionResponse]
[Unloading class helloworld.jaxws.GetGreetingsCBeanResponse]
[Unloading class
helloworld.jaxws.GetGreetingsExceptionResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsExceptionResponse]
[Unloading class
helloworld.jaxws.GetGreetingsBeanArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsCBeanResponse]
[Unloading class helloworld.jaxws.GetGreetings]
[Unloading class helloworld.jaxws.GetGreetingsDBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsByteArrayResponse]
[Unloading class helloworld.jaxws.GetGreetingsByteArrayResponse]
[Unloading class helloworld.jaxws.GetGreetingsBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsBean$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsCBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsException]
[Unloading class helloworld.jaxws.GetGreetingsResponse]
[Unloading class helloworld.jaxws.GetGreetingsDBean$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsByteArray]
[Unloading class helloworld.jaxws.GetGreetings$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsByteArray]
[Unloading class helloworld.jaxws.GetGreetingsBBeanResponse]
[Unloading class
helloworld.jaxws.GetGreetingsBBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsByteArrayResponse]
[Unloading class
helloworld.jaxws.GetGreetingsCBeanResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsBeanResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsDBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsDBean$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsBBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsDBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsBeanArrayResponse]
[Unloading class helloworld.jaxws.GetGreetingsCBean]
[Unloading class helloworld.jaxws.GetGreetingsBBean]
[Unloading class helloworld.jaxws.GetGreetingsDBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsCBean$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsBeanArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsDBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsDBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsByteArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsException]
[Unloading class helloworld.jaxws.GetGreetingsByteArray]
[Unloading class
helloworld.jaxws.GetGreetingsDBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsExceptionResponse]
[Unloading class
helloworld.jaxws.GetGreetingsByteArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsException]
[Unloading class helloworld.jaxws.GetGreetingsDBean]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray]
[Unloading class helloworld.jaxws.GetGreetingsResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsByteArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray]
[Unloading class helloworld.jaxws.GetGreetingsBeanArrayResponse]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsByteArray$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsBBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsDBeanResponse]
[Unloading class helloworld.jaxws.GetGreetings$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsCBean$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsDBeanResponse]
[Unloading class helloworld.jaxws.GetGreetings$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsException]
[Unloading class helloworld.jaxws.GetGreetingsCBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsBBeanResponse]
[Unloading class
helloworld.jaxws.GetGreetingsByteArrayResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsDBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBBean]
[Unloading class
helloworld.jaxws.GetGreetingsDBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanResponse]
[Unloading class helloworld.jaxws.GetGreetings]
[Unloading class helloworld.jaxws.GetGreetingsException$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBean]
[Unloading class
helloworld.jaxws.GetGreetingsBBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsCBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsCBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsResponse]
[Unloading class helloworld.jaxws.GetGreetingsBBean]
[Unloading class
helloworld.jaxws.GetGreetingsDBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBean]
[Unloading class helloworld.jaxws.GetGreetingsBeanArrayResponse]
[Unloading class
helloworld.jaxws.GetGreetingsCBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsException$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsBBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanArrayResponse]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray]
[Unloading class helloworld.jaxws.GetGreetingsException]
[Unloading class helloworld.jaxws.GetGreetingsException$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsCBean]
[Unloading class helloworld.jaxws.GetGreetingsResponse]
[Unloading class helloworld.jaxws.GetGreetingsBBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBBean]
[Unloading class helloworld.jaxws.GetGreetingsBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsCBean]
[Unloading class
helloworld.jaxws.GetGreetingsBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBBean$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsExceptionResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsException$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetings]
[Unloading class helloworld.jaxws.GetGreetingsExceptionResponse]
[Unloading class helloworld.jaxws.GetGreetingsExceptionResponse]
[Unloading class helloworld.jaxws.GetGreetingsByteArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsResponse]
[Unloading class helloworld.jaxws.GetGreetingsBBean]
[Unloading class helloworld.jaxws.GetGreetingsDBean]
[Unloading class helloworld.jaxws.GetGreetingsBBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetings]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsExceptionResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsCBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray]
[Unloading class helloworld.jaxws.GetGreetingsCBeanResponse]
[Unloading class
helloworld.jaxws.GetGreetingsByteArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBean]
[Unloading class helloworld.jaxws.GetGreetingsBBean]
[Unloading class helloworld.jaxws.GetGreetingsDBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetings]
[Unloading class helloworld.jaxws.GetGreetingsResponse]
[Unloading class helloworld.jaxws.GetGreetingsByteArray]
[Unloading class helloworld.jaxws.GetGreetingsException$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray]
[Unloading class helloworld.jaxws.GetGreetingsBBean]
[Unloading class helloworld.jaxws.GetGreetingsBean]
[Unloading class
helloworld.jaxws.GetGreetingsExceptionResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanArrayResponse]
[Unloading class
helloworld.jaxws.GetGreetingsBBeanResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsExceptionResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsBeanArrayResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsBeanArrayResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsBBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsByteArrayResponse]
[Unloading class helloworld.jaxws.GetGreetings$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsCBean]
[Unloading class helloworld.jaxws.GetGreetingsByteArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsByteArray]
[Unloading class
helloworld.jaxws.GetGreetingsCBeanResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsCBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsByteArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBean$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsByteArray]
[Unloading class
helloworld.jaxws.GetGreetingsByteArrayResponse$JaxbAccessorF__return]
[Unloading class
helloworld.jaxws.GetGreetingsCBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray$JaxbAccessorF_arg0]
[Unloading class
helloworld.jaxws.GetGreetingsCBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsByteArray]
[Unloading class helloworld.jaxws.GetGreetingsDBean]
[Unloading class helloworld.jaxws.GetGreetings$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBeanResponse]
[Unloading class helloworld.jaxws.GetGreetings$JaxbAccessorF_arg0]
[Unloading class helloworld.jaxws.GetGreetingsBeanArray]
[Unloading class
helloworld.jaxws.GetGreetingsCBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsDBeanResponse]
[Unloading class helloworld.jaxws.GetGreetingsBean]
[Unloading class
helloworld.jaxws.GetGreetingsBeanResponse$JaxbAccessorF__return]
[Unloading class helloworld.jaxws.GetGreetingsByteArrayResponse]
[Unloading class
helloworld.jaxws.GetGreetingsBBeanResponse$JaxbAccessorF__return]

It doesn't though seem to unload all the classes that it loads. Which
would explain why the loaded classes continue to rise during a run.

The unloading may be occasional due to the way that we cache JAXB
context. We have a structure that looks roughly like....

JAXBContextHelper
  public static final JAXBContextCache cache = new JAXBContextCache();

JAXBContextCache
  protected LRUCache<Object, JAXBContext> cache;

LRUCache
   public class LRUCache<K, V> extends LinkedHashMap<K, V> {

Now the LRU cache gets used to cache the following
   K = Array of generated class objects (for the created types)
   V = JAXBContext

I'm a little suprised that it doesn't always hit the cache as I'm just
running a very small scenario over and over again so I need to look at
whether the key lookup is working correctly. Having an array of
generated class objects doesn't strike me as leading to happiness by
anyhow. Can anyone comment on that.

Every now and again the LRU will ditch some entries and I guess that's
when things get unloaded. However I did find [1] which may explain why
some of the obejcts don't get unloaded. Anyone have experience of this
aspect of the JAXB context. I feel I could spend a lot of time trying
to work out what's going on in there.

[1] https://issues.apache.org/jira/browse/CXF-2939

Regards

Simon

-- 
Apache Tuscany committer: tuscany.apache.org
Co-author of a book about Tuscany and SCA: tuscanyinaction.com

Reply via email to