You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2002/07/26 10:40:10 UTC

DO NOT REPLY [Bug 11198] New: - ResourceBundle.getBundle could not find property file in tomcat classpath with jdk1.4

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11198>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11198

ResourceBundle.getBundle could not find property file in tomcat classpath  with jdk1.4

           Summary: ResourceBundle.getBundle could not find property file in
                    tomcat classpath  with jdk1.4
           Product: Tomcat 4
           Version: 4.0.3 Final
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: Catalina
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: rourke@virtualtek.co.kr


----------------- Original Bug Report-------------------

category : tomcat
release : jwsdp-1.0fcs
subcategory : other
type : bug
synopsis : ResourceBundle.getBundle could not find property file in tomcat 
classpath
description : FULL PRODUCT VERSION :
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)


FULL OPERATING SYSTEM VERSION :

Redhat Linux 6.1

ADDITIONAL OPERATING SYSTEMS :

Jakarta-tomcat 4.0.3





A DESCRIPTION OF THE PROBLEM :
FYI,

with jdk1.3

classloader sun.misc.Launcher$AppClassLoader
could not loading SimpleResourceFilter (and that seems to
be right behavior)

but
with jdk1.4.0,
sun.misc.Launcher$AppClassLoader loaded
SimpleResourceFilter.
after that, it could not find properties file.

REGRESSION.  Last worked in version 1.3.1

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. call ResourceBundle.getBundle("testprop") from
SimpleResourceFilter
that package locates at tomcat/common/lib(not app/WEB-
INF/lib)
and testprop.properties locates at tomcat/common/classes.

2. configure web.xml so that request invokes
SimpleResourceFilter

3.
3. with jdk1.3.1 itworks okay
with jdk1.4.0 or above, it returns MissingResourceException


EXPECTED VERSUS ACTUAL BEHAVIOR :
expected : it should find xxx.properties properly

actual result : returns MissingResourceException


ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.util.MissingResourceException: Can't find bundle for base name vms-system,
locale ko_KR
    at java.util.ResourceBundle.throwMissingResourceException
(ResourceBundle.java:804)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:773)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:511)
    at com.vtek.vms.filter.TranslateFilter.testLoading(TranslateFilter.java:49)
    at com.vtek.vms.filter.TranslateFilter.init(TranslateFilter.java:194)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter
(ApplicationFilterConfig.java:254)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef
(ApplicationFilterConfig.java:31
    at org.apache.catalina.core.ApplicationFilterConfig.<init>
(ApplicationFilterConfig.java:120)
    at org.apache.catalina.core.StandardContext.filterStart
(StandardContext.java:3064)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3382)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:454)
    at org.apache.catalina.core.StandardHost.install(StandardHost.java:714)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:300)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:389)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent
(HostConfig.java:232)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent
(LifecycleSupport.java:155)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1131)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:614)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:343)
    at org.apache.catalina.core.StandardService.start(StandardService.java:388)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:506)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:781)
    at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
    at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)


REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
testprop.properties (locates at common/classes)

prop.value=teststring


web.xml (application configure)

web.xml configuration for invoking SimpleResourceFilter when requested.

<web-app>
    <filter>
        <filter-name>SimpleResourceFilter</filter-name>
        <filter-class>com.vtek.vms.filter.SimpleResourceFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>SimpleResourceFilter</filter-name>
        <servlet-name>action</servlet-name>
    </filter-mapping>

    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>com.vtek.vms.servlet.VMSMainServlet</servlet-class>
        <init-param>
            <param-name>application</param-name>
            <param-value>TestAppMessageResource</param-value>
        </init-param>
        <init-param>
            <param-name>debug</param-name>
            <param-value>4</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>


to reproduce this bug,

SimpleResourceFilter.java (this package should be located at common/lib NOT app-
dir/WEB-INF/lib
-

package com.vtek.vms.filter;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import java.util.ResourceBundle;

public class SimpleResourceFilter implements Filter {

    public void testLoading() {

        try {
            ResourceBundle resourceBundle = ResourceBundle.getBundle
("testprop");
            String propValue = resourceBundle.getString("prop.value");
            System.out.println("testLoading prop.value:" + propValue);
        } catch (Exception e) {
            System.out.println("error reading testprop");
            e.printStackTrace();
        }
    }

    public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
        throws IOException, ServletException {

        testLoading();
    }

    public void init(FilterConfig filterConfig) {

    }

    public void destroy() {

    }
}

---------- END SOURCE ----------
workaround : 
suggested_val : 
cust_name : Hyuntae Kim
cust_email : rourke@virtualtek.co.kr
jdcid : rourkez
keyword : webbug
company : VirtualTek
hardware : x86
OSversion : Linux
bugtraqID : 0
dateCreated : 2002-07-18 04:09:40.3
dateEvaluated : 2002-07-25 12:00:48.342

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>