зависающая страница в Tomcat и Logger
От: phront  
Дата: 07.12.10 10:39
Оценка:
всем доброго времени суток

мучает одна проблема. непонятно почему зависает JSP страница.
зависает при условии:
— если в нижеписаном фрагменте отработает metka1
— если внутри геттера произойдет исключение, когда Config используется как bean

jstack показывает блок в waiting to lock <0x0917fd88> (a org.apache.tomcat.util.log.SystemLogHandler)

никто не может объяснить почему происходит такая беда ?
очень неприятно осознавать, что такое может случится на production-е.


ms windows7
netbeans 6.9.1.
tomcat 6.0.26
jdk 1.6.0_20

класс Config

package package1;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;

public class Config {

    public volatile static Config instance;
    XMLConfiguration xml = null;

    public Config() {
    }

    private Config(String configFile) {
        try {
            xml = new XMLConfiguration(configFile);
        } catch (ConfigurationException ex) {
            metka1:// Exception точно произойдет
            xml = null;
            Logger.getLogger(Config.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * Get the value of instance
     *
     * @return the value of instance
     */
    public static Config getInstance() {
        if (instance == null)
        {
            synchronized (Config.class)
            {
                if (instance == null)
                {
                    instance = new Config ("file not found");
                }
            }
        }

    }

    public String getServerName ()
    {
        return getInstance().xml.getString("serverName");
    }
}


страница JSP:
<jsp:useBean id="cfg" scope="application" class="package1.Config" />  
<c:out value="${cfg.serverName}"/>



спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.