#26 proxool inhibits garbage collection of ClassLoader

closed-fixed
nobody
5
2006-03-24
2005-10-17
Donald Ball
No

The proxool driver inhibits garbage collection of the
ClassLoader which loads it, e.g. WebappClassLoader in
tomcat. This appears to be because proxool contains
older forked copies of cglib and log4j inside itself.
Those libraries have since been patched to correct
those and other problems.

Suggest incorporating the new code or, preferably,
switching proxool to link against external libs instead
of embedding copies in its own namespace.

Discussion

  • Bill Horsman
    Bill Horsman
    2006-03-03

    Logged In: YES
    user_id=91747

    Interesting. We have indeed switched Proxool to use Log4J as
    an external link but pulling out cglib is a bit more
    problematic. We got into a bit of bother when we were using
    Cglib 1.x externally and the API changed when it moved to
    2.x. About the same time, Hibernate started to require Cglib
    2.x and we suddenly found that anybody that upgraded to
    Hibernate could no longer use Proxool. We did a release to
    fix that within a week or so but it wasn't the way we like
    to approach releases. (You may think "slowly" is a more
    appropriate word for that :)

    I do see the attraction of using Cglib externally but it
    isn't something we would do without a great deal of thought.
    There is a stronger argument for upgrading the internal
    version of Cglib.

     
  • Bill Horsman
    Bill Horsman
    2006-03-03

    • status: open --> open-accepted
     
  • Bill Horsman
    Bill Horsman
    2006-03-09

    Logged In: YES
    user_id=91747

    I have upgraded to Cglib 2.1_3 and this will be available in
    0.9.0RC2.

     
  • Bill Horsman
    Bill Horsman
    2006-03-24

    • status: open-accepted --> closed-accepted
     
  • Bill Horsman
    Bill Horsman
    2006-03-24

    • status: closed-accepted --> closed-fixed
     
  • Bill Horsman
    Bill Horsman
    2006-03-24

    Logged In: YES
    user_id=91747

    Proxool has now (0.9.0RC2) upgraded to Cglib 2.1_3 and uses
    Commons Logging as an external dependency.