[Tomcat Wiki] Update of "SummerOfCode2010" by JeanFrede ricClere

2010-03-12 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change 
notification.

The "SummerOfCode2010" page has been changed by JeanFredericClere.
http://wiki.apache.org/tomcat/SummerOfCode2010?action=diff&rev1=3&rev2=4

--

  = Google Summer of Code 2010 =
- 
  == Important Notes ==
- The application process has not yet started. This page is to record possible 
projects assuming the ASF and the Tomcat project does participate in this 
year's summer of code. The actual list of projects will be determined as
+ The application process has not yet started. This page is to record possible 
projects assuming the ASF and the Tomcat project does participate in this 
year's summer of code. The actual list of projects will be determined as the 
application process progresses.
- the application process progresses.
  
  Anyone is free to add ideas to this list. If you are not a Tomcat committer 
please do not add a committer as a potential mentor for a project unless they 
have agreed to do so.
  
  == Ideas ==
+ ||Title ||Mentor ||JIRA||Description ||
+ ||JMX ||markt 
||[[https://issues.apache.org/jira/browse/COMDEV-23|COMDEV-23]]||Update the JMX 
descriptors to more accurately reflect the properties and methods of the 
underlying objects, taking particular care about which attributes should be 
read-only and which read-write. Then add additional functionality as necessary 
to enable a complete Tomcat instance to be configured entirely via JMX (ie 
start with a Server with no config and create everything via JMX). ||
+ ||Security docs ||markt 
||[[https://issues.apache.org/jira/browse/COMDEV-23|COMDEV-24]]||Update the 
security pages etc to include svn revisions for each fix, update the release 
notes to include the CVE reference with the fix, update the svn logs to include 
the CVE reference. This will require a lot of cross-checking to ensure that the 
correct CVEs and svn references are added, particularly for the older 
vulnerabilities. This would include the 5.5.x, 6.0.x and 7.0.x code-bases. ||
+ ||JSR196 ||markt 
||[[https://issues.apache.org/jira/browse/COMDEV-23|COMDEV-25]]||Provide a 
[[http://jcp.org/en/jsr/detail?id=196|JSR196]] implementation ||
+ ||SPDY ||jfclere 
||[[https://issues.apache.org/jira/browse/COMDEV-23|COMDEV-26]]||Create 
Connector that supports the SPDY protocol (See 
http://dev.chromium.org/spdy/spdy-whitepaper) ||
  
- ||Title||Mentor||Description||
- ||JMX||markt||Update the JMX descriptors to more accurately reflect the 
properties and methods of the underlying objects, taking particular care about 
which attributes should be read-only and which read-write. Then add additional 
functionality as necessary to enable a complete Tomcat instance to be 
configured entirely via JMX (ie start with a Server with no config and create 
everything via JMX).||
- ||Security docs||markt||Update the security pages etc to include svn 
revisions for each fix, update the release notes to include the CVE reference 
with the fix, update the svn logs to include the CVE reference. This will 
require a lot of cross-checking to ensure that the correct CVEs and svn 
references are added, particularly for the older vulnerabilities. This would 
include the 5.5.x, 6.0.x and 7.0.x code-bases.||
- ||JSR196||markt||Provide a [[http://jcp.org/en/jsr/detail?id=196|JSR196]] 
implementation||
- ||SPDY||jfclere||Create Connector that supports the SPDY protocol (See 
[[http://dev.chromium.org/spdy/spdy-whitepaper]]) ||
- 

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: [Tomcat Wiki] Update of "SummerOfCode2010" by JeanFredericClere

2010-03-12 Thread jean-frederic clere
The JIRA are needed just for http://tinyurl.com/asfgsoc

Cheers

Jean-Frederic

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: GSOC 2010

2010-03-12 Thread buddhika chamith
Hi All,

I am interested in working on the JMX related project idea. I am in the
process of going through the documentation and sources relating to JMX in
Tomcat. Excerpt of the idea mentions that "Tomcat instance to be configured
entirely via JMX" is the goal of project. Since the JMX infrastructure is
already present, are there any specific areas that you have already
identified as lacking support in order to achieve above goal? I noticed in
another thread that Apache Pivot folks are also interested in providing an
administrative front end to Tomcat perhaps using JMX.

Regards,
Chamith


svn commit: r922223 - /tomcat/trunk/bin/catalina.bat

2010-03-12 Thread mturk
Author: mturk
Date: Fri Mar 12 11:38:43 2010
New Revision: 93

URL: http://svn.apache.org/viewvc?rev=93&view=rev
Log:
Suppress anoying Terminate batch job prompt when hitting CTRL+C. Note however 
that it leaves the file named yes in the bin directory

Modified:
tomcat/trunk/bin/catalina.bat

Modified: tomcat/trunk/bin/catalina.bat
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/bin/catalina.bat?rev=93&r1=92&r2=93&view=diff
==
--- tomcat/trunk/bin/catalina.bat (original)
+++ tomcat/trunk/bin/catalina.bat Fri Mar 12 11:38:43 2010
@@ -78,6 +78,17 @@ rem
 rem $Id$
 rem ---
 
+rem Suppress Terminate batch job on CTRL+C
+if not ""%1"" == ""run"" goto mainEntry
+if exist "%~dp0run" goto mainEntry
+echo Y >"%~dp0run"
+echo Y >"%~dp0yes"
+call "%~dpnx0" %* <"%~dp0yes"
+rem Not actually needed
+exit /B 1
+:mainEntry
+del /Q "%~dp0run" >NUL 2>&1
+
 rem Guess CATALINA_HOME if not defined
 set "CURRENT_DIR=%cd%"
 if not "%CATALINA_HOME%" == "" goto gotHome



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r922228 - /tomcat/trunk/bin/catalina.bat

2010-03-12 Thread mturk
Author: mturk
Date: Fri Mar 12 12:13:45 2010
New Revision: 98

URL: http://svn.apache.org/viewvc?rev=98&view=rev
Log:
Use real exit value if shutdown via stop

Modified:
tomcat/trunk/bin/catalina.bat

Modified: tomcat/trunk/bin/catalina.bat
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/bin/catalina.bat?rev=98&r1=97&r2=98&view=diff
==
--- tomcat/trunk/bin/catalina.bat (original)
+++ tomcat/trunk/bin/catalina.bat Fri Mar 12 12:13:45 2010
@@ -83,9 +83,11 @@ if not ""%1"" == ""run"" goto mainEntry
 if exist "%~dp0run" goto mainEntry
 echo Y >"%~dp0run"
 echo Y >"%~dp0yes"
-call "%~dpnx0" %* <"%~dp0yes"
-rem Not actually needed
-exit /B 1
+call "%~f0" %* <"%~dp0yes"
+rem Use provided errorlevel
+set RETVAL=%ERRORLEVEL%
+del /Q "%~dp0yes" >NUL 2>&1
+exit /B %RETVAL%
 :mainEntry
 del /Q "%~dp0run" >NUL 2>&1
 



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: GSOC 2010

2010-03-12 Thread Mark Thomas
On 12/03/2010 11:32, buddhika chamith wrote:
> Hi All,
> 
> I am interested in working on the JMX related project idea.
Great.

> I am in the
> process of going through the documentation and sources relating to JMX in
> Tomcat. Excerpt of the idea mentions that "Tomcat instance to be configured
> entirely via JMX" is the goal of project. Since the JMX infrastructure is
> already present, are there any specific areas that you have already
> identified as lacking support in order to achieve above goal?

The createStandardService method declared for the MBeanFactory doesn't
exist. That pretty much kills any attempt to do this stone dead before
you start.

Looks like I did that in error almost a year ago. I'll add that method
and the other methods removed at the time back.

With those in place it is a matter of testing to see what works and what
doesn't. The problems are likely to be a combination of the following:
- JMX getters/setters not aligned with changes to underlying objects
- attributes exposed as read/write that should be read-only or need more
work to make write operations safe
- new objects not exposed via JMX

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: GSOC 2010

2010-03-12 Thread Mark Thomas
On 12/03/2010 12:13, Mark Thomas wrote:
> On 12/03/2010 11:32, buddhika chamith wrote:
>> Hi All,
>>
>> I am interested in working on the JMX related project idea.
> Great.
> 
>> I am in the
>> process of going through the documentation and sources relating to JMX in
>> Tomcat. Excerpt of the idea mentions that "Tomcat instance to be configured
>> entirely via JMX" is the goal of project. Since the JMX infrastructure is
>> already present, are there any specific areas that you have already
>> identified as lacking support in order to achieve above goal?
> 
> The createStandardService method declared for the MBeanFactory doesn't
> exist. That pretty much kills any attempt to do this stone dead before
> you start.
> 
> Looks like I did that in error almost a year ago. I'll add that method
> and the other methods removed at the time back.

Looks like I spoke too soon. Thsoe changes were in
http://svn.apache.org/viewvc?rev=778200&view=rev which as to get rid of
ServerFactory. Step one of this project will almost certainly be to
re-implement those methods without using the now deleted ServerFactory.

Mark

> With those in place it is a matter of testing to see what works and what
> doesn't. The problems are likely to be a combination of the following:
> - JMX getters/setters not aligned with changes to underlying objects
> - attributes exposed as read/write that should be read-only or need more
> work to make write operations safe
> - new objects not exposed via JMX
> 
> Mark
> 
> 
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
> 




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: GSOC 2010

2010-03-12 Thread buddhika chamith
Hi Mark,

Thanks for the clarifications. I will look along in those lines that you
mentioned. I will drop a mail to the list if I come up with any issue during
the code run through.

Chamith


DO NOT REPLY [Bug 48795] Tomcat tries to use cache when compilation failed

2010-03-12 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48795

--- Comment #3 from apa...@scribeofthenile.com 2010-03-12 14:22:46 UTC ---
Thanks for following up on this issue.

Does the proposed patch also address the case when a JSP has compiled and
cached successfully and is subsequently edited with some syntax error? In this
situation Tomcat seems to not invalidate the cache.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r922273 - /tomcat/trunk/build.xml

2010-03-12 Thread kkolinko
Author: kkolinko
Date: Fri Mar 12 14:28:46 2010
New Revision: 922273

URL: http://svn.apache.org/viewvc?rev=922273&view=rev
Log:
correct a comment

Modified:
tomcat/trunk/build.xml

Modified: tomcat/trunk/build.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/build.xml?rev=922273&r1=922272&r2=922273&view=diff
==
--- tomcat/trunk/build.xml (original)
+++ tomcat/trunk/build.xml Fri Mar 12 14:28:46 2010
@@ -1660,7 +1660,7 @@ Apache Tomcat ${version} native binaries
   
 
 
-
+
 
   
   



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 48899] New: Guess URI charset should solve lot of problems

2010-03-12 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48899

   Summary: Guess URI charset should solve lot of problems
   Product: Tomcat 6
   Version: unspecified
  Platform: All
OS/Version: All
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: Connectors
AssignedTo: dev@tomcat.apache.org
ReportedBy: mich...@wyraz.de


Hi tomcat connector developers,

tomcat's connectors have some options to either set the uri encoding to a
certain charset or to use the body's encoding (set by
request.setCharacterEncoding) to decode the uri (if none is set, iso-8859-1 is
used).
I found an article (+code) the demonstrates that the charset of data can easily
guessed at http://glaforge.free.fr/wiki/index.php?wiki=GuessEncoding . Since
the most common charsets for uri encoding are iso-8859-1 (since it's default
for uri encoding) and utf-8 (because it's used for most multi language
websites), the possible choices are very clear.

So I'd suggest to add an option to the connectors to guess the used charset for
decoding of uri parts. There are so many issues with uri decoding that would be
solved that way (e.g. when the uri is decoded as utf-8 and a user types an
umlaut into the address bar, the browser might encode it as iso-8859-1 and the
app has no way to fix this).

Regards, Michael.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r922223 - /tomcat/trunk/bin/catalina.bat

2010-03-12 Thread sebb
In 12/03/2010, mt...@apache.org  wrote:
> Author: mturk
>  Date: Fri Mar 12 11:38:43 2010
>  New Revision: 93
>
>  URL: http://svn.apache.org/viewvc?rev=93&view=rev
>  Log:
>  Suppress anoying Terminate batch job prompt when hitting CTRL+C. Note 
> however that it leaves the file named yes in the bin directory

The process running Tomcat may not have write access to the bin dir.

So either create a permanent file in the bin directory, or use a pipe:

echo Y | call  "%~f0" %*

>  Modified:
> tomcat/trunk/bin/catalina.bat
>
>  Modified: tomcat/trunk/bin/catalina.bat
>  URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/bin/catalina.bat?rev=93&r1=92&r2=93&view=diff
>  
> ==
>  --- tomcat/trunk/bin/catalina.bat (original)
>  +++ tomcat/trunk/bin/catalina.bat Fri Mar 12 11:38:43 2010
>  @@ -78,6 +78,17 @@ rem
>   rem $Id$
>   rem 
> ---
>
>  +rem Suppress Terminate batch job on CTRL+C
>  +if not ""%1"" == ""run"" goto mainEntry
>  +if exist "%~dp0run" goto mainEntry
>  +echo Y >"%~dp0run"
>  +echo Y >"%~dp0yes"
>  +call "%~dpnx0" %* <"%~dp0yes"
>  +rem Not actually needed
>  +exit /B 1
>  +:mainEntry
>  +del /Q "%~dp0run" >NUL 2>&1
>  +
>   rem Guess CATALINA_HOME if not defined
>   set "CURRENT_DIR=%cd%"
>   if not "%CATALINA_HOME%" == "" goto gotHome
>
>
>
>  -
>  To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
>  For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r922223 - /tomcat/trunk/bin/catalina.bat

2010-03-12 Thread Mladen Turk

On 03/12/2010 04:14 PM, sebb wrote:

In 12/03/2010, mt...@apache.org  wrote:

Author: mturk
  Date: Fri Mar 12 11:38:43 2010
  New Revision: 93

  URL: http://svn.apache.org/viewvc?rev=93&view=rev
  Log:
  Suppress anoying Terminate batch job prompt when hitting CTRL+C. Note however 
that it leaves the file named yes in the bin directory


The process running Tomcat may not have write access to the bin dir.



Anyone secures the file access in Windows ;)


So either create a permanent file in the bin directory, or use a pipe:

echo Y | call  "%~f0" %*



That doesn't work cause it creates a separate process.
I'll make the change to crate the auto response file in the %TEMP% directory

Regards
--
^TM

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Tomcat and Apache question

2010-03-12 Thread Jim Jagielski
This is best for both the Users lists for tomcat and httpd, but...

On Mar 11, 2010, at 11:17 PM, westside wrote:

> 
> Hi,
> 
> I am completely new to Tomcat, and I'm trying to setup this module named
> "mod_proxy_html module"  I have just installed a product called JIRA and I
> have it working with Tomcat 5.x but I don't think I can install that module
> without Apache running on my machine. 
> 
> 1. Is Apache required or is just having Tomcat enough?

You need Apache httpd.

> 2. I hear Tomcat is java web server but Apache is a web server also, why
> would I need to run both? 

Tomcat to run Java apps.

> 3.Can you install mod_proxy_html module on a Windows machine without Apache

Nope.

> 4. Can Tomcat do everything Apache can do?

Obviously not.

> 
> I'm basically trying to run two applications (JIRA and Confluence) on port
> 80 and use host headers.  I come from the IIS world and I'm looking how to
> mirror that functionality using JIRA and Tomcat.
> 
> Any help appreciated.
> 
> -ws
> -- 
> View this message in context: 
> http://old.nabble.com/Tomcat-and-Apache-question-tp27873246p27873246.html
> Sent from the Tomcat - Dev mailing list archive at Nabble.com.
> 
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
> 


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r922300 - in /tomcat: tc5.5.x/trunk/STATUS.txt tc6.0.x/trunk/STATUS.txt

2010-03-12 Thread kkolinko
Author: kkolinko
Date: Fri Mar 12 15:41:55 2010
New Revision: 922300

URL: http://svn.apache.org/viewvc?rev=922300&view=rev
Log:
proposal

Modified:
tomcat/tc5.5.x/trunk/STATUS.txt
tomcat/tc6.0.x/trunk/STATUS.txt

Modified: tomcat/tc5.5.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/STATUS.txt?rev=922300&r1=922299&r2=922300&view=diff
==
--- tomcat/tc5.5.x/trunk/STATUS.txt (original)
+++ tomcat/tc5.5.x/trunk/STATUS.txt Fri Mar 12 15:41:55 2010
@@ -56,6 +56,13 @@ PATCHES PROPOSED TO BACKPORT:
   +1: markt
   -1:
 
+  The same as above, but
+  - moves resolveClass() call outside the sync block
+  - does not access entry.loadedClass unless we are in a sync block
+  http://people.apache.org/~kkolinko/patches/2010-03-12_tc55_bug44041.patch
+  +1: kkolinko
+  -1:
+
 * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=47878
   Return 404's rather than a permanent 500 if a JSP is deleted
   Make sure first response port deletion is correct

Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=922300&r1=922299&r2=922300&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Fri Mar 12 15:41:55 2010
@@ -195,3 +195,15 @@ PATCHES PROPOSED TO BACKPORT:
   http://svn.apache.org/viewvc?rev=922010&view=rev
   +1: markt
   -1: 
+
+* Followup to BZ 44041/48694 patches
+  - moves resolveClass() call outside the sync block
+  - does not access entry.loadedClass unless we are in a sync block
+  This is proposed as a part of alternative BZ 44041 patch for TC 5.5
+  FIXME: have not yet applied it to trunk
+  http://people.apache.org/~kkolinko/patches/2010-03-12_tc6_bug44041.patch
+  (svn diff -x -w  variant of it, ignoring whitespace changes:
+   http://people.apache.org/~kkolinko/patches/2010-03-12_tc6_bug44041_x_w.patch
+  )
+  +1: kkolinko
+  -1:



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r922301 - /tomcat/trunk/bin/catalina.bat

2010-03-12 Thread mturk
Author: mturk
Date: Fri Mar 12 15:52:09 2010
New Revision: 922301

URL: http://svn.apache.org/viewvc?rev=922301&view=rev
Log:
Use TEMP environment for storing the autoresponse file, and make sure the file 
was created

Modified:
tomcat/trunk/bin/catalina.bat

Modified: tomcat/trunk/bin/catalina.bat
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/bin/catalina.bat?rev=922301&r1=922300&r2=922301&view=diff
==
--- tomcat/trunk/bin/catalina.bat (original)
+++ tomcat/trunk/bin/catalina.bat Fri Mar 12 15:52:09 2010
@@ -80,16 +80,18 @@ rem 
 
 rem Suppress Terminate batch job on CTRL+C
 if not ""%1"" == ""run"" goto mainEntry
-if exist "%~dp0run" goto mainEntry
-echo Y >"%~dp0run"
-echo Y >"%~dp0yes"
-call "%~f0" %* <"%~dp0yes"
+if ""%TEMP%"" ==  goto mainEntry
+if exist "%TEMP%\%~nx0.run" goto mainEntry
+echo Y>"%TEMP%\%~nx0.run"
+if not exist "%TEMP%\%~nx0.run" goto mainEntry
+echo Y>"%TEMP%\%~nx0.Y"
+call "%~f0" %* <"%TEMP%\%~nx0.Y"
 rem Use provided errorlevel
 set RETVAL=%ERRORLEVEL%
-del /Q "%~dp0yes" >NUL 2>&1
+del /Q "%TEMP%\%~nx0.Y" >NUL 2>&1
 exit /B %RETVAL%
 :mainEntry
-del /Q "%~dp0run" >NUL 2>&1
+del /Q "%TEMP%\%~nx0.run" >NUL 2>&1
 
 rem Guess CATALINA_HOME if not defined
 set "CURRENT_DIR=%cd%"



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r922300 - in /tomcat: tc5.5.x/trunk/STATUS.txt tc6.0.x/trunk/STATUS.txt

2010-03-12 Thread Konstantin Kolinko
2010/3/12  :
> Author: kkolinko
> Date: Fri Mar 12 15:41:55 2010
> New Revision: 922300
>
> URL: http://svn.apache.org/viewvc?rev=922300&view=rev
> Log:
> proposal
>
> Modified:
>    tomcat/tc5.5.x/trunk/STATUS.txt
>    tomcat/tc6.0.x/trunk/STATUS.txt
>
> Modified: tomcat/tc5.5.x/trunk/STATUS.txt
> +  The same as above, but
> +  - moves resolveClass() call outside the sync block
> +  - does not access entry.loadedClass unless we are in a sync block
> +  http://people.apache.org/~kkolinko/patches/2010-03-12_tc55_bug44041.patch
> +  +1: kkolinko
> +  -1:
> +
>
> Modified: tomcat/tc6.0.x/trunk/STATUS.txt
> +
> +* Followup to BZ 44041/48694 patches
> +  - moves resolveClass() call outside the sync block
> +  - does not access entry.loadedClass unless we are in a sync block
> +  This is proposed as a part of alternative BZ 44041 patch for TC 5.5
> +  FIXME: have not yet applied it to trunk
> +  http://people.apache.org/~kkolinko/patches/2010-03-12_tc6_bug44041.patch
> +  (svn diff -x -w  variant of it, ignoring whitespace changes:
> +   
> http://people.apache.org/~kkolinko/patches/2010-03-12_tc6_bug44041_x_w.patch
> +  )
> +  +1: kkolinko
> +  -1:
>

My concern, leading to the above proposal, is that
ClassLoader.resolveClass() should perform "Linking" of the class and
JLS says that that can incur loading of the dependent classes [1],
thus I think it could lead to a deadlock.

That said,
1. I suspect that recent JVMs do linking lazily, so resolveClass()
does not actually load the dependencies. But I want to prevent the
possibility of a deadlock.

2. I think that in the loadClass(name,boolean) call the resolve
argument is usually "false".

That is because ClassLoader.loadClass(name) calls it with "false" value, and
ClassLoader.loadClass(name, resolve) is itself a protected method.

Unless there are calls with resolve=true, there is no difference in
whether we do care about resolveClass() here.

3. I have some worry about whether ClassLoader.resolveClass() method
is thread safe, as I see no explicit statement about it.

JLS says that the class initialization is thread safe [2],
but nothing explicit is said about linking, and nothing is added in
the JavaDoc for resolveClass() method.

My understanding is that at most times resolveClass() is called
implicitly by JVM before initialization of the class takes place, so
JVM takes care of synchronization somewhere, and it will be a JRE
issue if it is not.

Again, we will not hit it unless resolve=true in the loadClass() call.


About the proposed change with "entry.loadedClass" in findClassInternal():
- The loadedClass field would need to be volatile to avoid broken
double-checked locking pattern here, but the change that I am
proposing also fixes it.

Any comments?

[1] http://java.sun.com/docs/books/jls/third_edition/html/execution.html#44487
 ch.12.3
[2] http://java.sun.com/docs/books/jls/third_edition/html/execution.html#44557
 ch.12.4

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Reusing instances

2010-03-12 Thread Konstantin Kolinko
2010/3/11 Mladen Turk :
> Second is to have application pools where one could
> say: Serve WebAppX inside Default Application Pool
> consisting of 1 ... N processes or use Custom Application
> pool with some process limitation factors (memory, cpu usage, etc)
>

Note, that ServletContext.getContext(String) allows interaction
between different web applications on the same server.  That is when
crossContext=true for the application.

I wonder, how much will be the overhead from having several JVMs, each
with its heap.

I think that /work folder sharing is out of question. Most of concern
here is with Jasper, but there can be also other files, and files
written by applications.

The /webapps folder sharing depends on whether autodeploy feature is
enabled. Expanding deployed wars and deleting folders when undeploying
must be done in a single thread. Otherwise there can be security
issues.

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Reusing instances

2010-03-12 Thread Mladen Turk

On 03/12/2010 05:54 PM, Konstantin Kolinko wrote:


I think that /work folder sharing is out of question. Most of concern
here is with Jasper, but there can be also other files, and files
written by applications.



That shouldn't be a problem if guarded with some global mutex.
Other option is to have separate work dirs with child id suffix.


The /webapps folder sharing depends on whether autodeploy feature is
enabled. Expanding deployed wars and deleting folders when undeploying
must be done in a single thread. Otherwise there can be security
issues.



Again with global mutex it should work on first served basis.


Regards
--
^TM

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 48903] New: ClassLoader deadlock when compiling JSP pages in 6.0.26

2010-03-12 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48903

   Summary: ClassLoader deadlock when compiling JSP pages in
6.0.26
   Product: Tomcat 6
   Version: 6.0.26
  Platform: PC
OS/Version: Windows XP
Status: NEW
  Severity: normal
  Priority: P2
 Component: Catalina
AssignedTo: dev@tomcat.apache.org
ReportedBy: knst.koli...@gmail.com


Created an attachment (id=25123)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=25123)
threads_20100313_0109.txt - thread dump

Steps to reproduce:

1. Install TC 6.0.26
I am using Sun JRE 6u18

2. Download tomahawk-examples-1.1.8-bin.zip from
http://myfaces.apache.org/tomahawk/download.html
and copy myfaces-example-simple-1.1.8.war from the archive to the webapps
folder of Tomcat

3. Start Tomcat and browse http://localhost:8080/myfaces-example-simple-1.1.8/

4. Try to open several links (Sample 1, .. Filtered Stylesheet) at the same
time.
I am using Snap Links plugin for Firefox, http://snaplinks.mozdev.org/

5. Several Tabs are opened in the browser to load the pages, but pages never
load.

6. Using jvisualvm tool I can see that there is a deadlock in Tomcat. The
thread dump is attached.

Citing from the dump:

Found one Java-level deadlock:
=
"http-8080-6":
  waiting to lock monitor 0x1731bafc (object 0x08189dd0, a
org.apache.catalina.loader.WebappClassLoader),
  which is held by "http-8080-1"
"http-8080-1":
  waiting to lock monitor 0x1731b88c (object 0x13bdb118, a java.lang.String),
  which is held by "http-8080-5"
"http-8080-5":
  waiting to lock monitor 0x1731bafc (object 0x08189dd0, a
org.apache.catalina.loader.WebappClassLoader),
  which is held by "http-8080-1"

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 48903] ClassLoader deadlock when compiling JSP pages in 6.0.26

2010-03-12 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48903

--- Comment #1 from Konstantin Kolinko  2010-03-12 
22:33:19 UTC ---
What is strange is that I cannot confirm that
org.apache.catalina.loader.WebappClassLoader is held by "http-8080-1" -- that
is not shown in the stacktrace of thread "http-8080-1".

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r922300 - in /tomcat: tc5.5.x/trunk/STATUS.txt tc6.0.x/trunk/STATUS.txt

2010-03-12 Thread Konstantin Kolinko
2010/3/12 Konstantin Kolinko :
> 2010/3/12  :
>> Author: kkolinko
>> Date: Fri Mar 12 15:41:55 2010
>> New Revision: 922300
>>
>> URL: http://svn.apache.org/viewvc?rev=922300&view=rev
>> Log:
>> proposal
>>
>
> My concern, leading to the above proposal, is that
> ClassLoader.resolveClass() should perform "Linking" of the class and
> JLS says that that can incur loading of the dependent classes [1],
> thus I think it could lead to a deadlock.
>

>From thread dump that I attached to
https://issues.apache.org/bugzilla/show_bug.cgi?id=48903

1. It looks that it is ClassLoader.defineClass() call that performs
linking and loading of related classes in Sun JRE 6u18

2. Certain methods e.g. ClassLoader.checkCerts(), require a lock on
the whole ClassLoader instance.

3. I do not understand what holds a lock on the ClassLoader instance
in "http-8080-1" thread. Can it be inside the native method
(ClassLoader.defineClass1()) ??

4.  The above 2.+3. may mean that we need sync() on the classloader as
a whole.  That is, the sync(name.intern()) trick fails.

More comments to the issue 48903 are welcome.

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader

2010-03-12 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694

pmones...@gmail.com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |

--- Comment #5 from pmones...@gmail.com 2010-03-13 01:29:56 UTC ---
In fact the deadlock still exists in 6.0.26.
Under certain conditions (well using jrebel) I get:

Name: Thread-8
State: BLOCKED on java.lang.str...@1d6ebede owned by: Thread-10
Total blocked: 44  Total waited: 2

Stack trace: 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1395)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)

Name: Thread-10
State: BLOCKED on org.apache.catalina.loader.webappclassloa...@646f72d4 owned
by: Thread-8
Total blocked: 33  Total waited: 2

Stack trace: 
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)


At line 1395 replacing synchronized (name.intern()) { 
with
  synchronized (this) fixes the problem.

The issue with doing synchronized (name.intern()) { in public Class
loadClass(String name, boolean resolve)  is that it turn this method calls (at
least from what I could see) at line 1485 findClass(String name)

AND
public Class findClass(String name) at line 977 calls protected Class
findClassInternal(String name) which syncs on name.intern()

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader

2010-03-12 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694

--- Comment #6 from Konstantin Kolinko  2010-03-13 
01:33:47 UTC ---
Do you have full stack traces for those threads (from a thread dump)?
You can add them as an attachment.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader

2010-03-12 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694

--- Comment #7 from Konstantin Kolinko  2010-03-13 
01:37:47 UTC ---
And what is your configuration (JVM vendor and version), and do you use custom
class loader, as *this* bug does, 
or you do not, and it is another bug (e.g. bug 48903)?

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader

2010-03-12 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694

--- Comment #8 from pmones...@gmail.com 2010-03-13 01:56:00 UTC ---
Created an attachment (id=25124)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=25124)
Thread Dump

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader

2010-03-12 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694

--- Comment #9 from pmones...@gmail.com 2010-03-13 01:57:28 UTC ---
java version "1.6.0_13"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03-211)
Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02-83, mixed mode)

This is on a mac.

No no custom classloader but this happens when I run Tomcat with JRebel (2 or
3). The relevant traces (from another run is as follow)

Find also attached the ThreadDump

Name: Thread-10
State: BLOCKED on java.lang.str...@9edcacb owned by: Thread-9
Total blocked: 28  Total waited: 1

Stack trace: 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1395)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:95)
org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:122)
org.hibernate.hql.ast.QueryTranslatorImpl$JavaConstantConverter.handleDotStructure(QueryTranslatorImpl.java:569)
org.hibernate.hql.ast.QueryTranslatorImpl$JavaConstantConverter.visit(QueryTranslatorImpl.java:564)
org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:40)
org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41)
org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41)
org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41)
org.hibernate.hql.ast.util.NodeTraverser.traverseDepthFirst(NodeTraverser.java:33)
org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:254)
org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)
org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77)
org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)
org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1113)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)


AND



Name: Thread-9
State: BLOCKED on org.apache.catalina.loader.webappclassloa...@1f302997 owned
by: Thread-11
Total blocked: 34  Total waited: 2

Stack trace: 
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:95)
org.hibernate.util.ReflectHelper.getConstantValue(ReflectHelper.java:122)
org.hibernate.hql.ast.QueryTranslatorImpl$JavaConstantConverter.handleDotStructure(QueryTranslatorImpl.java:569)
org.hibernate.hql.ast.QueryTranslatorImpl$JavaConstantConverter.visit(QueryTranslatorImpl.java:564)
org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:40)
org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41)
org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41)
org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41)
org.hibernate.hql.ast.util.NodeTraverser.traverseDepthFirst(NodeTraverser.java:33)
org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:254)
org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)
org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77)
org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)
org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1113)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)

(In reply to comment #8)
> Created an attachment (id=25124)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=25124) [details]
> Thread Dump

(In reply to comment #8)
> Created an attachment (id=25124)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=25124) [details]
> Thread Dump

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 48903] ClassLoader deadlock when compiling JSP pages in 6.0.26

2010-03-12 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48903

Konstantin Kolinko  changed:

   What|Removed |Added

   Severity|normal  |critical

--- Comment #2 from Konstantin Kolinko  2010-03-13 
03:07:26 UTC ---
Digging further I should say that
1. There is, indeed, lock on the ClassLoader in the native code.

2. There is "experimental" option to turn off that locking. E.g., described
here:
http://underlap.blogspot.com/2006/11/experimental-fix-for-sunbug-4670071.html
and thus Tomcat is not the first one to run into such an issue.

3. Evaluation part of
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4670071
mentions API change to allow parallel classloading, and API change actually
means that it will be no sooner than JDK7. See

http://java.sun.com/javase/7/docs/api/java/lang/ClassLoader.html
methods registerAsParallelCapable() and getClassLoadingLock(String)


While I was evaluating this, several comments were added to bug 48694,
especially attachment 25124, which is another sample of a deadlock (in that
case JRE is 1.6.0_13).

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 48694] WebappClassLoader deadlock if web application uses it's own classloader

2010-03-12 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48694

--- Comment #10 from pmones...@gmail.com 2010-03-13 05:45:36 UTC ---
So looking at all this I think the problem is as follow:

Thread1

If you call Class.forName in turn You call ClassLoader.loadClassInternal and
this is synchronized on this. Following that you enter WebappClassLoader and
get a lock on string.intern()

Thread2
On another thread you call WebAppClassLoader.loadClass which gets a lock on
string.intern() but also calls defineClass which is synchronized on this .

It seems possible to get a deadlock from the sequence of event.

I'm not sure why I seem to hit this bug more when using JRebel.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org