#89 Class management not yet per-Interpreter

closed-fixed
nobody
None
5
2003-06-09
2002-12-05
Pat Niemeyer
No

In 1.2x the class manager is a singleton shared by all
interpreter instances... this causes problems for
anyone changing the classpath in different interpreter
instances. It is especially problematic in weblogic
where the existence of beanshell in the weblogic.jar
necessitates manual upgrade by placing bsh in the
system classpath... this means that all web apps
(ears/wars) share a classpath and share cached class
instances... realoading the webapp will not clear the
cache.

Workaround: manually clear the cache if you can (not
truly thread safe, but...)

import bsh.*;
bsh.BshClassManager.getClassManager().clearCaches()

This will be fixed in 1.3.

Pat

Discussion

  • Pat Niemeyer
    Pat Niemeyer
    2002-12-06

    Logged In: YES
    user_id=18885

    Actually, clearCaches() is a protected method... that should
    be getClassManager().reset();

    Pat

     
  • Pat Niemeyer
    Pat Niemeyer
    2003-06-09

    • status: open --> closed
     
  • Pat Niemeyer
    Pat Niemeyer
    2003-06-09

    • status: closed --> closed-fixed
     
  • Pat Niemeyer
    Pat Niemeyer
    2003-06-09

    Logged In: YES
    user_id=18885

    Fixed in bsh 1.3x.