NetBeans com Apache 5.5 - Garbage Collector não funcionando?

0 respostas
adrianostanley

Olá pessoal... tenho uma aplicação web onde o primeiro servlet a ser executado após o primeiro form preenchido possui uma variável boolean que representa se a criação de alguns atributos do contexto já foi efetuada.

Inicialmente seu valor é false. Ao ser executado o servlet, se esta variável é false ele inicia as variáveis do contexto da aplicação de acordo com os dados do formulário. Logo após seu valor é setado para true.

Porém, quando faço alterações no código, usando o NetBeans e dou um Run Project, ele restarta o tomcat, mas quando entro na página, ele considera a variável boolean como true.

Tentei utilizar um listener pra torná-la false quando o servlet for "destruído", mas mesmo assim não funciona. Parece que o tomcat não está coletando o lixo normalmente.

Segue abaixo meu código:
public class InitServlet extends HttpServlet implements ServletContextListener{
    
    public boolean initialized = false;
    
    public InitServlet(){
        
    }

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        RequestDispatcher dispatcher;
        
        if(!initialized){
            initContextAttributes();
            
            dispatcher = req.getRequestDispatcher("newform.jsp");
            dispatcher.forward(req, resp);
        }
    }
    
    private void initContextAttributes(){
        ServletContext context = getServletContext();
        context.setAttribute("add_status", "on");
        initialized = true;
    }

    public void contextInitialized(ServletContextEvent servletContextEvent) {
        
    }

    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        initialized = false;
    }
}

Alguém sabe onde estou errando ou se há alguma coisa a se fazer quanto à coleta de lixo do tomcat?

Abraços e obrigado!!

Criado 28 de junho de 2007
Respostas 0
Participantes 1