DO NOT REPLY [Bug 16316] - DataSourceRealm can not find JNDI name in context

2003-06-12 Thread bugzilla
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=16316.
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=16316

DataSourceRealm can not find JNDI name in context

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||WONTFIX



--- Additional Comments From [EMAIL PROTECTED]  2003-06-12 08:00 ---
It is an obvious nonsense that a realm (ie, an object scoped inside the
container) depends on a webapp level object. I don't undestand how this could
work, except by pure coincidence.
With the data source realm (or any JNDI powered), you should use a global data
source (and you can easily reuse it by linking to it from your contexts). Maybe
it's not so easy to configure, but unfortunately I don't see any way to make it
easier ...
Please do not reopen this bug, it cannot be addressed.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-tomcat-site/xdocs-faq - New directory

2003-06-12 Thread funkman
funkman 2003/06/11 17:22:03

  jakarta-tomcat-site/xdocs-faq - New directory

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-tomcat-site/docs/faq - New directory

2003-06-12 Thread funkman
funkman 2003/06/11 17:22:44

  jakarta-tomcat-site/docs/faq - New directory

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-tomcat-site/docs/faq/printer - New directory

2003-06-12 Thread funkman
funkman 2003/06/11 17:23:01

  jakarta-tomcat-site/docs/faq/printer - New directory

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Problems in deploying servlets

2003-06-12 Thread Sumod Pawgi
Hi!

I am new to server side programming and learning to
use tomcat.

I have tomcat 4.1.18 that I want to use for deploying
applications.

I am trying to develop servlets on apache tomcat.
I have written a simple HelloWorld.java file and
compiled it successfully.
I have put the .class file in
c:\tomcat\tomcat-4-1-18\webapps\root\webinf\classes

And I am trying to view the servlet as
http://localhost:8080/examples/servlet/elloWorld

But I am not able to view my servlet.

Can someone please help me ; what I should do?
I am new to this stuff and will be very helpful if
someone can help me.


Thanks,
Sumod

=
My Personal Website
www.sumod.com

Only those people with changeless core can cope up with the change.

__
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Problems in deploying servlets

2003-06-12 Thread Schalk


Sumod

Basically what I would suggest is as follows:
Go into the webapps directory of Tomcat
Create a directory called myFirstApp
Inside this directory create the WEB-INF directory
Inside the WEB-INF create the directories classes and lib
Place your compiled HelloWorld.class file in the classes folder.

Stop and Start Tomcat
Open your browser
Type: http://localhost:8080/myFirstApp/servlet/HelloWorld

If you want to learn more about deploying webapps you can read up on the
web.xml as well as creating a .war file. These two combined makes
depoyment much simpler and gives you a lot more options.

Kind Regards
Schalk Neethling
Volume4.Development.Multimedia.Branding
emotionalize.conceptualize.visualize.realize
Tel: +27125468436
Fax: +27125468436
email:[EMAIL PROTECTED]
web: www.volume4.co.za
 

-Original Message-
From: Sumod Pawgi [mailto:[EMAIL PROTECTED] 
Sent: Thursday, June 12, 2003 9:09 AM
To: [EMAIL PROTECTED]
Subject: Problems in deploying servlets

Hi!

I am new to server side programming and learning to
use tomcat.

I have tomcat 4.1.18 that I want to use for deploying
applications.

I am trying to develop servlets on apache tomcat.
I have written a simple HelloWorld.java file and
compiled it successfully.
I have put the .class file in
c:\tomcat\tomcat-4-1-18\webapps\root\webinf\classes

And I am trying to view the servlet as
http://localhost:8080/examples/servlet/elloWorld

But I am not able to view my servlet.

Can someone please help me ; what I should do?
I am new to this stuff and will be very helpful if
someone can help me.


Thanks,
Sumod

=
My Personal Website
www.sumod.com

Only those people with changeless core can cope up with the change.

__
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Sessions - bug in Tomcat 4.1.24

2003-06-12 Thread deacon Marcus
Hello,

 -Original Message-
 From: Bill Barker [mailto:[EMAIL PROTECTED] 
 Sent: Thursday, June 12, 2003 2:17 AM
 To: Tomcat Developers List
 Subject: Re: Sessions - bug in Tomcat 4.1.24
 
 
 
 - Original Message - 
 From: deacon Marcus [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Wednesday, June 11, 2003 4:13 PM
 Subject: Sessions - bug in Tomcat 4.1.24
 
 
  Hello,
  It seems in Tomcat 4.1.24 HttpSession is already invalid 
 when passed 
  to HttpSessionListener.sessionDestroyed(), which just does not make 
  sense. API Docs say: public void sessionDestroyed(HttpSessionEvent 
  se) Notification that a session is about to be invalidated., in my 
  opinion about to be means that the Session should be 
 valid when this 
  method is called until it returns.
 
 In my copy of the 2.3 Servlet Spec, section 15.1.14.1 says:
 Notification that a session was invalidated.
 I read that as saying that Tomcat's behavior is corrent.

In http://java.sun.com/j2ee/sdk_1.3/techdocs/api/ :
sessionDestroyed(HttpSessionEvent se) 
  Notification that a session was invalidated.

In http://java.sun.com/j2ee/1.4/docs/api/
sessionDestroyed(HttpSessionEvent se) 
  Notification that a session is about to be invalidated.

I'd say it is correct, according to flawed specification :/ - all other
types of listeners are notified after the object in question has become
active, and before it has become dead. Otherwise the whole notification
thing is just useless. Right now, I must have access to Session's
attributes just before it's destruction, and the _only_ method that
works at sessionDestroyed is getId. What I'm supposed to do, according
do the specs? Bind a HashMap to ServletContext with Session's Id as the
key so I have some way to get Session's pseudo-attributes past its
death? Sounds crazy, but that's the sanest thing possible now without
modifying Tomcat's code in my copies :/ , and that's exactly what I'd
like to avoid - there's always some smartass who tries to upgrade
modified versions no matter how many times told not to do so and then
all hell brakes loose.

But - Tomcat 5.0 seems to follow EE 1.4 ( = Servlets 2.4) no matter what
Servlets version, 2.3 or 2.4, current WebApp expects?

[...]

Greetings, deacon Marcus


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Private vs. protected?

2003-06-12 Thread deacon Marcus
Hello,
I've noticed many times that most, well, 'privates' in Tomcat (and many
other Jakarta projects) are private, while having them protected would
greatly ease coding any derivated classes, why?

Greetings, deacon Marcus


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[GUMP] Build Failure - tomcat-catalina

2003-06-12 Thread Craig McClanahan

This email is autogenerated from the output from:
http://cvs.apache.org/builds/gump/2003-06-12/tomcat-catalina.html


Buildfile: build.xml

flags:

flags.display:
 [echo] --- Build environment for Catalina ---
 [echo] If ${property_name} is displayed, then the property is not set)
 [echo] --- Build options ---
 [echo] full.dist=${full.dist}
 [echo] build.sysclasspath=only
 [echo] compile.debug=${compile.debug}
 [echo] compile.deprecation=${compile.deprecation}
 [echo] compile.optimize=${compile.optimize}
 [echo] --- Ant Flags ---
 [echo] style task available (required)=true
 [echo] --- JDK ---
 [echo] jdk.1.2.present=true
 [echo] jdk.1.3.present=true
 [echo] jdk.1.4.present=true
 [echo] --- Source Dependencies ---
 [echo] jtc.home.present=true
 [echo] --- Required Libraries ---
 [echo] beanutils.present=true
 [echo] collections.present=true
 [echo] digester.present=true
 [echo] jaxp.present=true
 [echo] jndi.present=true
 [echo] logging.present=true
 [echo] regexp.present=true
 [echo] servlet.present=true
 [echo] --- Optional Libraries ---
 [echo] daemon.present=${daemon.present}
 [echo] dbcp.present=${dbcp.present}
 [echo] fileupload.present=true
 [echo] jaas.present=true
 [echo] javamail.present=${javamail.present}
 [echo] jmx.present=${jmx.present}
 [echo] jsse.present=true
 [echo] jta.present=${jta.present}
 [echo] junit.present=${junit.present}
 [echo] ldap.present=true
 [echo] modeler.present=${modeler.present}
 [echo] pool.present=${pool.present}
 [echo] tyrex.present=${tyrex.present}
 [echo] --- Required JARs ---
 [echo] jndi.jar.present(except JDK 1.3+)=${jndi.jar.present}
 [echo] regexp.jar.present=true
 [echo] servlet.jar.present=true
 [echo] xerces.jar.present(except JDK 1.4+ or xerces2)=${xerces.jar.present}
 [echo] xerces2.jars.present(except JDK 1.4+ or xerces1)=${xerces2.jars.present}
 [echo] --- Optional JARs ---
 [echo] daemon.jar.present=${daemon.jar.present}
 [echo] dbcp.jar.present=${dbcp.jar.present}
 [echo] fileupload.jar.present=${fileupload.jar.present}
 [echo] jaas.jar.present=${jaas.jar.present}
 [echo] javamail.jar.present=${javamail.jar.present}
 [echo] jdbc20ext.jar.present=${jdbc20ext.jar.present}
 [echo] jmx.jar.present=${jmx.jar.present}
 [echo] jta.jar.present=${jta.jar.present}
 [echo] junit.jar.present=${junit.jar.present}
 [echo] ldap.jar.present=${ldap.jar.present}
 [echo] modeler.jar.present=${modeler.jar.present}
 [echo] pool.jar.present=${pool.jar.present}
 [echo] tyrex.jar.present=${tyrex.jar.present}
 [echo] --- Conditional compilation flags ---
 [echo] compile.daemon=${compile.daemon}
 [echo] compile.dbcp=${compile.dbcp}
 [echo] compile.jaas=true
 [echo] compile.javamail=${compile.javamail}
 [echo] compile.jmx=${compile.jmx}
 [echo] compile.jndi=true
 [echo] compile.jsse=true
 [echo] compile.jta=${compile.jta}
 [echo] compile.junit=${compile.junit}
 [echo] compile.ldap=true
 [echo] compile.ssi=true
 [echo] compile.tyrex=${compile.tyrex}
 [echo] --- Distribution flags ---
 [echo] copy.daemon.jar=${copy.daemon.jar}
 [echo] copy.dbcp.jar=${copy.dbcp.jar}
 [echo] copy.jaas.jar=${copy.jaas.jar}
 [echo] copy.jdbc20ext.jar=${copy.jdbc20ext.jar}
 [echo] copy.javamail.jar=${copy.javamail.jar}
 [echo] copy.jmx.jar=${copy.jmx.jar}
 [echo] copy.jndi.jar=${copy.jndi.jar}
 [echo] copy.jta.jar=${copy.jta.jar}
 [echo] copy.ldap.jar=${copy.ldap.jar}
 [echo] copy.logging.jar=true
 [echo] copy.modeler.jar=${copy.modeler.jar}
 [echo] copy.pool.jar=${copy.pool.jar}
 [echo] copy.tyrex.jar=${copy.tyrex.jar}
 [echo] copy.xerces.jar=${copy.xerces.jar}
 [echo] copy.xerces2.jars=${copy.xerces2.jars}

build-prepare:
[mkdir] Created dir: /home/rubys/jakarta/jakarta-tomcat-4.0/catalina/build
[mkdir] Created dir: /home/rubys/jakarta/jakarta-tomcat-4.0/catalina/build/bin
[mkdir] Created dir: 
/home/rubys/jakarta/jakarta-tomcat-4.0/catalina/build/common/classes
[mkdir] Created dir: 
/home/rubys/jakarta/jakarta-tomcat-4.0/catalina/build/common/lib
[mkdir] Created dir: 
/home/rubys/jakarta/jakarta-tomcat-4.0/catalina/build/common/endorsed
[mkdir] Created dir: /home/rubys/jakarta/jakarta-tomcat-4.0/catalina/build/conf
[mkdir] Created dir: /home/rubys/jakarta/jakarta-tomcat-4.0/catalina/build/logs
[mkdir] Created dir: 
/home/rubys/jakarta/jakarta-tomcat-4.0/catalina/build/server/classes
[mkdir] Created dir: 
/home/rubys/jakarta/jakarta-tomcat-4.0/catalina/build/server/lib
[mkdir] Created dir: 
/home/rubys/jakarta/jakarta-tomcat-4.0/catalina/build/shared/classes
[mkdir] Created dir: 

fileupload dependency in build.properties.default

2003-06-12 Thread Radim Kubacki
Hi,

I suggest to update j-t-5/build.properties.default to refer to 
commons-fileupload RC1 rather than beta-1. The reason for upgrading was 
discussed recently.

# - Commons FileUpload, version 1.0 or later -
commons-fileupload.home=${base.path}/commons-fileupload-1.0-rc1
commons-fileupload.lib=${commons-fileupload.home}
commons-fileupload.jar=${commons-fileupload.lib}/commons-fileupload-1.0-rc1.jar
commons-fileupload.loc=http://www.apache.org/dist/jakarta/commons/fileupload/binaries/commons-fileupload-1.0-rc1.tar.gz
Radim

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


RE: [5.0] JARs handling, and other 5.0.3 changes

2003-06-12 Thread Shapira, Yoav

Hi,

All that as part of an effort to reduce Tomcat memory footprint (to
make
it more suitable for large scale deployments),

I'm just curious how the two go together?  Wouldn't large-scale
deployments care less if tomcat's memory footprint was larger?  It's
typically the small (micro, on chips, PDAs, etc.) scale deployments that
care more about memory footprint, no?

I support both goals (memory footprint reduction and making tomcat
better for large scale deployments), just curious about the above.

BTW -- I've emailed [EMAIL PROTECTED] with the results of my
committer vote for commons-modeler.  Hopefully that'll get put through
soon and I can push a commons-modeler-1.1 release.

Yoav Shapira




This e-mail, including any attachments, is a confidential business communication, and 
may contain information that is confidential, proprietary and/or privileged.  This 
e-mail is intended only for the individual(s) to whom it is addressed, and may not be 
saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) 
intended recipient, please immediately delete this e-mail from your computer system 
and notify the sender.  Thank you.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Private vs. protected?

2003-06-12 Thread Shapira, Yoav

Howdy,


I've noticed many times that most, well, 'privates' in Tomcat (and many
other Jakarta projects) are private, while having them protected would
greatly ease coding any derivated classes, why?

There could be any number of reasons.  My guess is (and I know in my
code) many times stuff is left private when there's no immediate case in
mind why it should be protected.

However, with tomcat, like other open-source projects, it's easy to
address this: you have the source code and can build it.  You can make
privates protected and add your subclass as you need it, then build your
own version of tomcat (or whatever the project is).  If you really thing
something should be protected, you can always suggest it as an
enhancement in bugzilla, along with your use case, and chances are in
the next product release it will indeed be protected.

Yoav Shapira



This e-mail, including any attachments, is a confidential business communication, and 
may contain information that is confidential, proprietary and/or privileged.  This 
e-mail is intended only for the individual(s) to whom it is addressed, and may not be 
saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) 
intended recipient, please immediately delete this e-mail from your computer system 
and notify the sender.  Thank you.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 16316] - DataSourceRealm can not find JNDI name in context

2003-06-12 Thread bugzilla
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=16316.
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=16316

DataSourceRealm can not find JNDI name in context





--- Additional Comments From [EMAIL PROTECTED]  2003-06-12 13:27 ---
I don't understand this WONTFIX status.  You mean to tell me that two people
running webapps on the same server can't use different databases for container
managed security?  Suppost Joe is running a shopping cart and I have a weblog. 
That doesn't mean we have the same users and therefore doesn't mean we should
use the same JNDI to get a database connection.  If you use the JDBCRealm you
can specify all the parameters you want for container managed security, why
can't you use an JNDI too?  This makes no sense to me.

p.s. How did I get it to run?  Check out securityfilter.sourceforge.net, which
allows pseudo-container managed security so the specification for the realm can
be anywhere.  securityfilter get's over some of the pitfalls of container
managed security such as not being able to have a login on any page.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 16316] - DataSourceRealm can not find JNDI name in context

2003-06-12 Thread bugzilla
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=16316.
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=16316

DataSourceRealm can not find JNDI name in context





--- Additional Comments From [EMAIL PROTECTED]  2003-06-12 14:01 ---
There's nothing preventing you from defining more than one global datasource.
I think you are not understanding the scoping of the JNDI context correctly,
which is associated with the classloader context (if you're inside Catalina, you
can access its internal JNDI context, containing the global resources;
starting from the invocation of the Servlet wrapper, you access the per-webapp
context, since you switched to the webapp classloading context).

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 16316] - DataSourceRealm can not find JNDI name in context

2003-06-12 Thread bugzilla
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=16316.
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=16316

DataSourceRealm can not find JNDI name in context





--- Additional Comments From [EMAIL PROTECTED]  2003-06-12 14:33 ---
I also have to object to the dismissal of this issue. I understand the logic
that a Realm can have wider scope (Host, Container) and therefore should not
depend on an object of more narrow scope (Context) in those cases. But this does
not mean that once a Realm is defined inside Context scope it shouldn't be
allowed to access an object inside that same scope. I simply do not wish to
expose that datasource to any other application than the one I need it for, and
so I need to be able to define it inside the application Context.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 20709] New: - start menu for tomcat doesn't include java.endorsed.dirs

2003-06-12 Thread bugzilla
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=20709.
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=20709

start menu for tomcat doesn't include java.endorsed.dirs

   Summary: start menu for tomcat doesn't include java.endorsed.dirs
   Product: Tomcat 4
   Version: 4.1.18
  Platform: PC
OS/Version: Windows NT/2K
Status: NEW
  Severity: Normal
  Priority: Other
 Component: Catalina
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


I have tomcat 4.1.18 installed on Win2K.

If I run it as a service or from the command line, setclasspath.bat is called 
and java.endorsed.dirs is set to %BASE_DIR%\bin;%BASE_DIR%\common\endorsed.  
Therefore, the overrides (xalan 2.5.1 and xerces 2.4.0) that I have in the 
endorsed directory get picked up.

However, if I run from the start menu, java.endorsed.dirs is not set because 
the following is run: C:\j2sdk1.4.1_01\bin\java.exe -jar -Duser.dir=C:\Program 
Files\Apache Group\Tomcat 4.1 C:\Program Files\Apache Group\Tomcat 4.1
\bin\bootstrap.jar start


I realize I can modify this by hand, but I want all ways of running tomcat to 
be consistent out of the box.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 20713] New: - SingleSignOnEntry visibility

2003-06-12 Thread bugzilla
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=20713.
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=20713

SingleSignOnEntry visibility

   Summary: SingleSignOnEntry visibility
   Product: Tomcat 4
   Version: 4.1.24
  Platform: All
OS/Version: All
Status: NEW
  Severity: Enhancement
  Priority: Other
 Component: Catalina
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


SingleSignOn.lookup() is protected, but it returns SingleSignOnEntry, which is
package-protected.  I'm trying to extend SSO and need to override lookup(), so
it would be great if SSOEntry could be made protected.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 20714] New: - response charset defaults to iso-8859-1 where java 1.4.2beta ignores file.encoding and use platform default encoding...

2003-06-12 Thread bugzilla
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=20714.
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=20714

response charset defaults to iso-8859-1 where java 1.4.2beta ignores file.encoding and 
use platform default encoding...

   Summary: response charset defaults to iso-8859-1 where java
1.4.2beta ignores file.encoding and use platform default
encoding...
   Product: Tomcat 4
   Version: 4.1.24
  Platform: Other
   URL: http://java.sun.com/j2se/1.4.1/docs/api/java/io/OutputSt
reamWriter.html
OS/Version: Linux
Status: NEW
  Severity: Critical
  Priority: Other
 Component: Unknown
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


encoding in OutputStreamWriter uses platform encoding (since 1.4.2 beta (is not 
a bug.. i have send a bug report to sun)) which is not iso-8859-1 on redhat 8 
so tomcat response has charset iso-8859-1 but is utf-8 encoded.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [5.0] JARs handling, and other 5.0.3 changes

2003-06-12 Thread Remy Maucherat
Shapira, Yoav wrote:
Hi,


All that as part of an effort to reduce Tomcat memory footprint (to
make

it more suitable for large scale deployments), 


I'm just curious how the two go together?  Wouldn't large-scale
deployments care less if tomcat's memory footprint was larger?  It's
typically the small (micro, on chips, PDAs, etc.) scale deployments that
care more about memory footprint, no?
I support both goals (memory footprint reduction and making tomcat
better for large scale deployments), just curious about the above.

BTW -- I've emailed [EMAIL PROTECTED] with the results of my
committer vote for commons-modeler.  Hopefully that'll get put through
soon and I can push a commons-modeler-1.1 release.
I should have defined large scale a little bit more precisely. I was 
talking about web hosting here.

For example, let's say you want to deploy 1000 webapps on a server. 
Right now, the caching policy for classes (and other memory wasting 
stuff) caused a lot of useless allocation. It could be as much as 1MB / 
webapp. So, in that example, we're looking at 1 gig of ram wasted. Of 
course, the stuff may be swapped out and never reused, but we need to 
optimize it IMO. With TC 4.1.x, in addition to the RAM, it was also 1000 
background threads.

To detail what I'd like to improve for who:
- developer: make app reloading better and more efficient (I'll do all I 
can to get rid of JAR locking)
- normal production user: IMO TC 4.1.x is good enough
- high end production user: scalability improvements (less GC = better 
SMP scaling) and optimizations
- web hosting: lots of webapps and hosts, so some additional 
improvements are required to make Tomcat really good at that

Thanks a lot for your efforts on the modeler :)

Remy

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Tomcat Class Loader

2003-06-12 Thread Lobo-Blanco, Gabriel









Gentlemen,



I hope you
will be able to assist me with a Tomcat Class Loader problem I am
experiencing. I am using:

 Apache Tomcat: 4.0.1 

 JDK: 1.4.1_02

 Running on Windows 2000
Server.



I have the
following java
code:



import java.util.*;



public class ActionFactory {

 private Hashtable actions = new Hashtable();

 

 // This method is
called by the action sevlet

 public Action getAction(String classname,

 ClassLoader
loader)

 throws
IllegalAccessException,

 InstantiationException
{

 

 Class klass =
null;

 System.out.println(Executing - ActionFactory);

 System.out.println( ActionFactory - getAction);

 System.out.println( AF getAction - classname:  + classname);

 

 Action action
= (Action)actions.get(classname);

 System.out.println( getAction - got action:
 + action);

 

 if(action ==
null) {

 try {

 System.out.println( getAction -
loading action class);

 System.out.println( loader:  + loader);



 klass = loader.loadClass(classname);

 System.out.println( getAction - class
loaded successfully);

 } catch (ClassNotFoundException
cnfe) {

 System.out.println( Couldn't find class:  + classname);

 System.out.println( loader:  + loader);

 System.out.println(  + cnfe.getMessage());

 }

 

 System.out.println( getAction -
creating new class instance);

 action =
(Action)klass.newInstance();

 System.out.println( getAction -
adding action to actions table);

 actions.put(classname, action);

 }

 

 return action;

 

 } // getAction()

 

As you can
see, I have placed a lot of extra line in the code that allow
me to determine the source of the problem.



The
following line, in the TRY block, seems to be the problem:

klass = loader.loadClass(classname);



In this
line, "classname" = actions.ValidateURegFormAction.



I checked
that the class exists in the /WEB-INF/class/actions directory. However execution of this line never
returns. It seems that it stays trying
to find and load the class.



Can you
please assist with this problem. Should I increase the value to wait before
the request times out? If so, how can I
do this? Do you have any suggestions?







Gabriel S.
Lobo-Blanco 
Idea Integration
1
  Independent Drive Suite 206
Jacksonville, FL 32202
Direct: 904.360.2461
Fax: 904.360.2490
www.idea.com
~
Privacy Notice:
Unless expressly stated
otherwise, this e-mail is confidential and may be privileged. it is
intended solely for the addressee(s). Access to this e-mail by anyone
else in unauthorized. If you are no an addressee, any disclosure or
copying of the contents of this e-mail or any action taken (or not taken) in
reliance on it is unauthorized and may be unlawful. If your name is not
listed and you received this e-mail please delete it and notify the sender.
~ 












Your module at modules.apache.org

2003-06-12 Thread Adam Qualset
Hello All, 
  In the past you submitted a module to modules.apache.org, which is why
you are receiving this email.  I am wanting to do some cleaning up of
the modules.apache.org database.  Would you take a couple of minutes and
update your entry? If the module no longer exists, please delete it.
There is now the ability to select if it is an Apache 1.3 or 2.x module
as well as send your updated entries to the list.  Also, the home page
displays the last 10 modules added/updated.

Updating is easy, please visit: http://modules.apache.org/editentry 

If you have forgotten your password, simply select it from the list
given, a new password will be emailed to you. 

Please get back to me with any questions. 

Thank you. 

-Adam 





  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Your module at modules.apache.org

2003-06-12 Thread Mark D. Hansen
I'm not sure why I am receiving this.  I have never submitted a module
to modules.apache.org.

Sincerely,

Mark Hansen

-Original Message-
From: Adam Qualset [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 12, 2003 2:28 PM
To: Adam Qualset
Subject: Your module at modules.apache.org


Hello All, 
  In the past you submitted a module to modules.apache.org, which is why
you are receiving this email.  I am wanting to do some cleaning up of
the modules.apache.org database.  Would you take a couple of minutes and
update your entry? If the module no longer exists, please delete it.
There is now the ability to select if it is an Apache 1.3 or 2.x module
as well as send your updated entries to the list.  Also, the home page
displays the last 10 modules added/updated.

Updating is easy, please visit: http://modules.apache.org/editentry 

If you have forgotten your password, simply select it from the list
given, a new password will be emailed to you. 

Please get back to me with any questions. 

Thank you. 

-Adam 





  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Module Edit at modules.apache.org

2003-06-12 Thread Apache Module Site
This email was generated through the modules.apache.org site.
You can modify your module by going to http://modules.apache.org/edit using 
ID# 556 as the 'User Name' with the password 'pbfjps8s' (without the single quotes).

Once you are logged in you can reset this password.

Please reply to this email with any questions.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Module Edit at modules.apache.org

2003-06-12 Thread Glenn Nielsen
Now that everyone in the world knows the password for modifying
the entry for mod_jk in the apache module registry...
I updated the information for the mod_jk 1.2.x module in the module
registry.  I changed the contact information to the tomcat-committers
email list.  And changed the password.
Regards,

Glenn

Apache Module Site wrote:
This email was generated through the modules.apache.org site.
You can modify your module by going to http://modules.apache.org/edit using 
ID# 556 as the 'User Name' with the password 'pbfjps8s' (without the single quotes).

Once you are logged in you can reset this password.

Please reply to this email with any questions.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--
--
Glenn Nielsen [EMAIL PROTECTED] | /* Spelin donut madder|
MOREnet System Programming   |  * if iz ina coment.  |
Missouri Research and Education Network  |  */   |
--
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader WebappClassLoader.java

2003-06-12 Thread remm
remm2003/06/12 15:02:12

  Modified:catalina/src/share/org/apache/catalina/loader
WebappClassLoader.java
  Log:
  - Null out all fields after finishing loading a class.
  
  Revision  ChangesPath
  1.16  +6 -1  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
  
  Index: WebappClassLoader.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- WebappClassLoader.java8 Mar 2003 17:01:20 -   1.15
  +++ WebappClassLoader.java12 Jun 2003 22:02:12 -  1.16
  @@ -1561,6 +1561,11 @@
   entry.binaryContent.length, 
   codeSource);
   entry.loadedClass = clazz;
  +entry.binaryContent = null;
  +entry.source = null;
  +entry.codeBase = null;
  +entry.manifest = null;
  +entry.certificates = null;
   } else {
   clazz = entry.loadedClass;
   }
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/naming/resources ProxyDirContext.java

2003-06-12 Thread remm
remm2003/06/12 15:03:35

  Modified:catalina/src/share/org/apache/naming/resources
ProxyDirContext.java
  Log:
  - Add /WEB-INF/lib and /WEB-INF/classes as non cacheable.
  - This should be configurable eventually, but I think it should work fine
for 99% of apps.
  
  Revision  ChangesPath
  1.11  +17 -4 
jakarta-tomcat-catalina/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java
  
  Index: ProxyDirContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ProxyDirContext.java  24 Apr 2003 17:02:44 -  1.10
  +++ ProxyDirContext.java  12 Jun 2003 22:03:34 -  1.11
  @@ -233,6 +233,12 @@
   new ImmutableNameNotFoundException();
   
   
  +/**
  + * Non cacheable resources.
  + */
  +protected String[] nonCacheable = { /WEB-INF/lib/, /WEB-INF/classes/ };
  +
  +
   // - Public Methods
   
   
  @@ -1427,6 +1433,13 @@
   throws NamingException {
   if (cache == null)
   return (null);
  +if (name == null)
  +name = ;
  +for (int i = 0; i  nonCacheable.length; i++) {
  +if (name.startsWith(nonCacheable[i])) {
  +return (null);
  +}
  +}
   CacheEntry cacheEntry = cache.lookup(name);
   if (cacheEntry == null) {
   cacheEntry = new CacheEntry();
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core ApplicationContext.java

2003-06-12 Thread remm
remm2003/06/12 15:06:30

  Modified:catalina/src/share/org/apache/catalina/core
ApplicationContext.java
  Log:
  - Use regular file URLs with everything from /WEB-INF/lib.
  - I'm not sure this is useful, and will be reverted to rev 1.12 otherwise.
  
  Revision  ChangesPath
  1.13  +32 -15
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationContext.java
  
  Index: ApplicationContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationContext.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ApplicationContext.java   21 May 2003 17:49:03 -  1.12
  +++ ApplicationContext.java   12 Jun 2003 22:06:30 -  1.13
  @@ -526,19 +526,36 @@
   if (path == null)
   return (null);
   
  -DirContext resources = context.getResources();
  -if (resources != null) {
  -String fullPath = context.getName() + path;
  -String hostName = context.getParent().getName();
  -try {
  -resources.lookup(path);
  -return new URL
  -(jndi, null, 0, getJNDIUri(hostName, fullPath),
  - new DirContextURLStreamHandler(resources));
  -} catch (Exception e) {
  -//e.printStackTrace();
  +String libPath = /WEB-INF/lib/;
  +if ((path.startsWith(libPath))  (path.endsWith(.jar))) {
  +File jarFile = null;
  +if (context.isFilesystemBased()) {
  +jarFile = new File(basePath, path);
  +} else {
  +jarFile = new File(context.getWorkDir(), path);
  +}
  +if (jarFile.exists()) {
  +return jarFile.toURL();
  +} else {
  +return null;
  +}
  +} else {
  +
  +DirContext resources = context.getResources();
  +if (resources != null) {
  +String fullPath = context.getName() + path;
  +String hostName = context.getParent().getName();
  +try {
  +resources.lookup(path);
  +return new URL
  +(jndi, null, 0, getJNDIUri(hostName, fullPath),
  + new DirContextURLStreamHandler(resources));
  +} catch (Exception e) {
  +// Ignore
  +}
   }
   }
  +
   return (null);
   
   }
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup TldConfig.java

2003-06-12 Thread remm
remm2003/06/12 15:41:19

  Modified:catalina/src/share/org/apache/catalina/startup
TldConfig.java
  Log:
  - Replace JAR URL code with regular JAR files (as the CL is forced to generate
JAR URLs).
  - Jasper apparently causes JAR locking.
  - Struts is locking iteslf up. My theory is that it is caused by loading up a DTD
for validation by the XML parser through a JAR URL without setting caches to false.
I'll investigate more.
  
  Revision  ChangesPath
  1.11  +39 -63
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java
  
  Index: TldConfig.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- TldConfig.java24 Apr 2003 19:35:49 -  1.10
  +++ TldConfig.java12 Jun 2003 22:41:19 -  1.11
  @@ -232,7 +232,7 @@
   }
   paths = globalJarPaths.iterator();
   while (paths.hasNext()) {
  -tldScanJar((JarURLConnection) paths.next());
  +tldScanJar((File) paths.next());
   }
   
   String list[] = getTldListeners();
  @@ -294,11 +294,11 @@
   
paths = globalJarPaths.iterator();
while (paths.hasNext()) {
  - JarURLConnection conn = (JarURLConnection) paths.next();
  - long lastM = conn.getLastModified();
  + File jarFile = (File) paths.next();
  + long lastM = jarFile.lastModified();
if (lastM  lastModified) lastModified = lastM;
if (log.isDebugEnabled()) {
  - log.debug(Last modified  + conn.getJarFileURL().toString()
  + log.debug(Last modified  + jarFile.getAbsolutePath()
  +   + lastM);
}
}
  @@ -438,33 +438,35 @@
   }
   
URL url = context.getServletContext().getResource(resourcePath);
  - if (url == null) {
  +if (url == null) {
throw new IllegalArgumentException
(sm.getString(contextConfig.tldResourcePath,
  resourcePath));
}
  - url = new URL(jar: + url.toString() + !/);
  - JarURLConnection conn = (JarURLConnection) url.openConnection();
  - conn.setUseCaches(false);
  - tldScanJar(conn);
  +
  +File file = new File(url.getFile());
  +file = file.getCanonicalFile();
  +tldScanJar(file);
  +
   }
   
  -/*
  +
  +/**
* Scans all TLD entries in the given JAR for application listeners.
*
* @param conn URLConnection to the JAR file whose TLD entries are
* scanned for application listeners
*/
  -private void tldScanJar(JarURLConnection conn) throws Exception {
  +private void tldScanJar(File file) throws Exception {
   
   JarFile jarFile = null;
   String name = null;
   InputStream inputStream = null;
   
  - String jarPath = conn.getJarFileURL().toString();
  + String jarPath = file.getAbsolutePath();
   
try {
  - jarFile = conn.getJarFile();
  + jarFile = new JarFile(file);
   Enumeration entries = jarFile.entries();
   while (entries.hasMoreElements()) {
   JarEntry entry = (JarEntry) entries.nextElement();
  @@ -512,6 +514,7 @@
   }
   }
   
  +
   /**
* Scan the TLD contents in the specified input stream, and register
* any application event listeners found there.  bNOTE/b - It is
  @@ -692,7 +695,8 @@
   }
   }
   
  -/*
  +
  +/**
* Returns the paths to all JAR files accessible to all parent
* classloaders of the web application class loader.
*
  @@ -703,60 +707,32 @@
* CATALINA_HOME/common/lib).
*
* @return Set of paths to all JAR files accessible to all parent class
  - * loaders of the web application class loader
  + * loaders of the web application class loader
*/
   private Set getGlobalJarPaths() throws IOException {
   
   Set globalJarPaths = new HashSet();
   
  - ClassLoader loader = Thread.currentThread().getContextClassLoader();
  - while (loader != null) {
  - if (loader instanceof URLClassLoader) {
  - URL[] urls = ((URLClassLoader) loader).getURLs();
  - for (int i=0; iurls.length; i++) {
  - JarURLConnection jarConn = null;
  - URLConnection conn = urls[i].openConnection();
  - if (conn instanceof JarURLConnection) {
  - jarConn = (JarURLConnection) conn;
  - } else {
  - String urlStr = urls[i].toString();
  - if (urlStr.startsWith(file:)
  -  

DO NOT REPLY [Bug 18582] - jk_endpoint.c (90)]: workerEnv.init() create slot epStat.0 failed isapi_redirector2.dll v2.0.2

2003-06-12 Thread bugzilla
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=18582.
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=18582

jk_endpoint.c (90)]: workerEnv.init() create slot epStat.0 failed 
isapi_redirector2.dll v2.0.2

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
Summary|jk_endpoint.c (90)]:   |jk_endpoint.c (90)]:
   |workerEnv.init() create slot|workerEnv.init() create slot
   |epStat.0 failed|epStat.0 failed
   |isapi_redirector2.dll v2.0.2|isapi_redirector2.dll v2.0.2



--- Additional Comments From [EMAIL PROTECTED]  2003-06-13 03:45 ---
The same behavior on my system:
W2k Server SP3
j2sdk-1_4_1_02-windows-i586.exe
jakarta-tomcat-4.1.24-LE-jdk14.exe

kind regards
Daniel

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11 Http11Protocol.java

2003-06-12 Thread billbarker
billbarker2003/06/12 22:10:10

  Modified:http11/src/java/org/apache/coyote/http11 Http11Protocol.java
  Log:
  Adding a setProperty method, since that is what IntrospectionUtils calls when it 
can't find a setter.
  
  In line with the proposal to avoid having every connector know about every setting.
  
  Revision  ChangesPath
  1.28  +14 -0 
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Protocol.java
  
  Index: Http11Protocol.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Protocol.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- Http11Protocol.java   5 Jun 2003 16:42:48 -   1.27
  +++ Http11Protocol.java   13 Jun 2003 05:10:10 -  1.28
  @@ -118,6 +118,20 @@
   return null;
   }
   
  +/**
  + * Set a property.
  + */
  +public void setProperty(String name, String value) {
  + setAttribute(name, value);
  +}
  +
  +/**
  + * Get a property
  + */
  +public String getProperty(String name) {
  + return (String)getAttribute(name);
  +}
  +
   /** The adapter, used to call the connector 
*/
   public void setAdapter(Adapter adapter) {
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



cvs commit: jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11 Http11Protocol.java

2003-06-12 Thread billbarker
billbarker2003/06/12 22:14:50

  Modified:http11/src/java/org/apache/coyote/http11 Http11Protocol.java
  Log:
  Watching out for the tab-police.
  
  Revision  ChangesPath
  1.29  +2 -2  
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Protocol.java
  
  Index: Http11Protocol.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Protocol.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- Http11Protocol.java   13 Jun 2003 05:10:10 -  1.28
  +++ Http11Protocol.java   13 Jun 2003 05:14:50 -  1.29
  @@ -122,14 +122,14 @@
* Set a property.
*/
   public void setProperty(String name, String value) {
  - setAttribute(name, value);
  +setAttribute(name, value);
   }
   
   /**
* Get a property
*/
   public String getProperty(String name) {
  - return (String)getAttribute(name);
  +return (String)getAttribute(name);
   }
   
   /** The adapter, used to call the connector 
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]