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>