[Bug 63235] Defer potentially expensive Charset.availableCharsets() call

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235

Andy Wilkinson  changed:

   What|Removed |Added

 CC||awilkin...@pivotal.io

-- 
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



[Bug 63237] Consider processing mbeans-descriptors.xml at compile time

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63237

Andy Wilkinson  changed:

   What|Removed |Added

 CC||awilkin...@pivotal.io

-- 
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



[Bug 63236] Reduce duplicate Strings

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63236

Andy Wilkinson  changed:

   What|Removed |Added

 CC||awilkin...@pivotal.io

-- 
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



[GitHub] [tomcat] rmaucher commented on issue #142: Defer creation of encodingToCharsetCache

2019-03-06 Thread GitBox
rmaucher commented on issue #142: Defer creation of encodingToCharsetCache
URL: https://github.com/apache/tomcat/pull/142#issuecomment-470022349
 
 
   If there is a lookup with Charset.forName, then would the cache be used at 
all ? I don't understand this sort of Windows style "startup time" 
optimization, where you hide stuff behind making running actual application 
code slower. This is often a bad design, so I don't see what this change brings.
   -0


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[GitHub] [tomcat] rmaucher commented on issue #143: Apply deduplication to certain loaded and created Strings

2019-03-06 Thread GitBox
rmaucher commented on issue #143: Apply deduplication to certain loaded and 
created Strings
URL: https://github.com/apache/tomcat/pull/143#issuecomment-470022913
 
 
   Can you give a metric of actual memory gains made using this change ? Adding 
complexity for very little benefit doesn't seem like a good move overall.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[Bug 63235] Defer potentially expensive Charset.availableCharsets() call

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235

Mark Thomas  changed:

   What|Removed |Added

   Severity|normal  |enhancement

--- Comment #2 from Mark Thomas  ---
Lazy loading simply defers the performance hit so a user experiences a delay
during a request rather than it happening at startup. The balance of opinion in
the past has been that it is better to take such a hit on startup rather than
during a request.

This has been discussed previously. For the history see these bugs and the bugs
linked from them:
- bug 57808
- bug 58859

If we take some ideas from each of the various solutions that have been
proposed at various points then I think it might be possible to come up with
something that addresses all of the various concerns:
- retain a cache of charset name to Charset
- populate the keys only from a list of known charsets generated off-line by
  looking at the various JREs (OpenJDK, Oracle, IBM to start with) at system
start
- add a unit test to monitor for new Charsets in new JRE versions
- populate the cache values at start-up for 'popular' charsets (ISO-8859-1,
UTF-8
  plus any others we think are likely to be used)
- lazily populate any cache values for other Charsets
- if a charset is requested, the key is present but the JVM can't create it,
remove the
  key from the cache to speed up any future requests (saves trying to load
non-existent
  Charset again)

As I typed the above I though of perhaps a simpler variation:
- retain a cache of charset name to Charset
- populate the cache values at start-up for 'popular' charsets (ISO-8859-1,
UTF-8
  plus any others we think are likely to be used)
- lazily populate any cache values for other Charsets
- if a requested Charset does not exist, insert a special "NoSuchCharset"
object to speed
  up future requests


The more I think about it, the more I like that second option.

Thoughts?

-- 
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



[Bug 63237] Consider processing mbeans-descriptors.xml at compile time

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63237

Remy Maucherat  changed:

   What|Removed |Added

   Severity|normal  |enhancement

--- Comment #1 from Remy Maucherat  ---
I have not tried to measure the time and resource costs of this parsing.
Obviously changing it to something compiled would not be exclusively
beneficial, so there needs to be clear gains for the embedded use case.

-- 
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



[Bug 63235] Defer potentially expensive Charset.availableCharsets() call

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235

--- Comment #3 from Remy Maucherat  ---
I think this adds complexity and possible problems for no real benefit. For
example option 2 could have a very big cache (all you need to do is request
random charset values) and could need a lot more sync than a static cache
(which is basically free).

-- 
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



[Bug 63235] Defer potentially expensive Charset.availableCharsets() call

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235

--- Comment #4 from Mark Thomas  ---
Of course. That makes option 2 a non-starter.

The other option isn't that far from the current code. I think it is worth
looking at what it does to memory footprint and start-up time so we can see if
the added complexity is worth the benefit.

-- 
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



[GitHub] [tomcat] y987425112 opened a new pull request #144: Variable adds final modifier

2019-03-06 Thread GitBox
y987425112 opened a new pull request #144:   Variable adds final modifier
URL: https://github.com/apache/tomcat/pull/144
 
 
   If these variables do not add final modifiers, there will be ambiguity and 
security risks.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[GitHub] [tomcat] markt-asf commented on issue #144: Variable adds final modifier

2019-03-06 Thread GitBox
markt-asf commented on issue #144:   Variable adds final modifier
URL: https://github.com/apache/tomcat/pull/144#issuecomment-470050541
 
 
   Potential security vulnerabilities should be reported privately to 
secur...@tomcat.apache.org. Not in a  PR or any other public forum.
   
   That said, there are no valid security risks here so - fortunately - no harm 
is done.
   
   The additional of final here (and the many, many other places tools such as 
UCDetector will identify automatically) is more a matter of style than anything 
else.
   
   Making invalid claims of 'security risks' is not helpful. It undermines the 
credibility of the PR and makes it more likely it will be rejected.
   
   We generally do not make changes purely for stylistic reasons. There is a 
code quality case that could be made for this change but it isn't a 
particularly strong one.
   
   I am -1 on the PR as currently submitted due to the incorrect statement 
regarding security risks in the commit comment.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[Bug 63191] RemoteEndpoint.Async#sendText(String, SendHandler) never calls the callback

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63191

--- Comment #11 from Mark Thomas  ---
Going back to the original thread dump with the "long" and the "short" stack
traces...

It is possible that the short stack trace is Tomcat trying to send the rest of
the message sent via Async.sendText() and it blocked by the longer stack trace
which is, in turn, blocked because the CometD Promise has not completed.

Hence my question: what is that Promise waiting for? I don't know the CometD
code well enough to trace it through to answer that question.

I can see possibilities for deadlock here but it could be a complete red
herring.

What would be helpful at this point is an explanation of the execution path of
CometD that shows what action the Promise is waiting to complete.

-- 
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



[GitHub] [tomcat] rmaucher commented on issue #144: Variable adds final modifier

2019-03-06 Thread GitBox
rmaucher commented on issue #144:   Variable adds final modifier
URL: https://github.com/apache/tomcat/pull/144#issuecomment-470054183
 
 
   That's a very useful reminder for me, if a PR is pulled, it *also* needs to 
have a decent description as well, otherwise misleading information gets into 
the commit info [and for sure it is the sort that would bring us trouble]. So 
-1 as well for this reason.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[GitHub] [tomcat] y987425112 commented on issue #144: Variable adds final modifier

2019-03-06 Thread GitBox
y987425112 commented on issue #144:   Variable adds final modifier
URL: https://github.com/apache/tomcat/pull/144#issuecomment-470055949
 
 
   I am very sorry, this is the first time I submit the code, because I am 
Chinese, my English is a little poor, there are errors in the description. 
Thank you very much for your guidance. I will continue to work hard.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[GitHub] [tomcat] y987425112 closed pull request #144: Variable adds final modifier

2019-03-06 Thread GitBox
y987425112 closed pull request #144:   Variable adds final modifier
URL: https://github.com/apache/tomcat/pull/144
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



4 Apache Events in 2019: DC Roadshow soon; next up Chicago, Las Vegas, and Berlin!

2019-03-06 Thread Rich Bowen
Dear Apache Enthusiast,

(You’re receiving this because you are subscribed to one or more user
mailing lists for an Apache Software Foundation project.)

TL;DR:
 * Apache Roadshow DC is in 3 weeks. Register now at
https://apachecon.com/usroadshowdc19/
 * Registration for Apache Roadshow Chicago is open.
http://apachecon.com/chiroadshow19
 * The CFP for ApacheCon North America is now open.
https://apachecon.com/acna19
 * Save the date: ApacheCon Europe will be held in Berlin, October 22nd
through 24th.  https://apachecon.com/aceu19


Registration is open for two Apache Roadshows; these are smaller events
with a more focused program and regional community engagement:

Our Roadshow event in Washington DC takes place in under three weeks, on
March 25th. We’ll be hosting a day-long event at the Fairfax campus of
George Mason University. The roadshow is a full day of technical talks
(two tracks) and an open source job fair featuring AWS, Bloomberg, dito,
GridGain, Linode, and Security University. More details about the
program, the job fair, and to register, visit
https://apachecon.com/usroadshowdc19/

Apache Roadshow Chicago will be held May 13-14th at a number of venues
in Chicago’s Logan Square neighborhood. This event will feature sessions
in AdTech, FinTech and Insurance, startups, “Made in Chicago”, Project
Shark Tank (innovations from the Apache Incubator), community diversity,
and more. It’s a great way to learn about various Apache projects “at
work” while playing at a brewery, a beercade, and a neighborhood bar.
Sign up today at https://www.apachecon.com/chiroadshow19/

We’re delighted to announce that the Call for Presentations (CFP) is now
open for ApacheCon North America in Las Vegas, September 9-13th! As the
official conference series of the ASF, ApacheCon North America will
feature over a dozen Apache project summits, including Cassandra,
Cloudstack, Tomcat, Traffic Control, and more. We’re looking for talks
in a wide variety of categories -- anything related to ASF projects and
the Apache development process. The CFP closes at midnight on May 26th.
In addition, the ASF will be celebrating its 20th Anniversary during the
event. For more details and to submit a proposal for the CFP, visit
https://apachecon.com/acna19/ . Registration will be opening soon.

Be sure to mark your calendars for ApacheCon Europe, which will be held
in Berlin, October 22-24th at the KulturBrauerei, a landmark of Berlin's
industrial history. In addition to innovative content from our projects,
we are collaborating with the Open Source Design community
(https://opensourcedesign.net/) to offer a track on design this year.
The CFP and registration will open soon at https://apachecon.com/aceu19/ .

Sponsorship opportunities are available for all events, with details
listed on each event’s site at http://apachecon.com/.

We look forward to seeing you!

Rich, for the ApacheCon Planners
@apachecon


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



[GitHub] [tomcat] philwebb commented on issue #143: Apply deduplication to certain loaded and created Strings

2019-03-06 Thread GitBox
philwebb commented on issue #143: Apply deduplication to certain loaded and 
created Strings
URL: https://github.com/apache/tomcat/pull/143#issuecomment-470145284
 
 
   Sure. I discovered these by using the "Inspections" feature from 
[YourKit](https://www.yourkit.com/) on an [embedded Tomcat 
application](https://github.com/spring-projects/spring-boot/tree/87d696d6971c8bbd28be4fa885f9cf5719309c99/spring-boot-samples/spring-boot-sample-tomcat).
   
   Without the change YourKit reports 2192 duplicate Strings, with the change 
it's 1126 (so a saving of 1066). It's hard to get the exact memory saving but 
scanning the UI for the top hitters we have:
   
   | String | Duplicates | Waste
   | --- | --- | -- |
   "java.lang.String" | 2192 | 149112 |
   "ACTION" | 542 | 38952 |
   "boolean" | 191 | 10640 |
   "void" | 204 | 9744 |
   "Introspected parameter param0" | 80 | 8216 |
   "int" | 155 | 7392 |
   "[Ljava.lang.String;" | 42 | 3280 |
   
   So it looks like at least 227336 bytes can be saved.
   
   One other thing to consider is that I think these Strings are retained for 
the life of the application. They can't be GC'd because references remain until 
shutdown.
   
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[GitHub] [tomcat] ChristopherSchultz commented on issue #143: Apply deduplication to certain loaded and created Strings

2019-03-06 Thread GitBox
ChristopherSchultz commented on issue #143: Apply deduplication to certain 
loaded and created Strings
URL: https://github.com/apache/tomcat/pull/143#issuecomment-470156059
 
 
   I like the idea,  but I think. the implementation could be better. For 
instance:
   
   1. There is no need to have two collections; just use one and cache 
everything.
   2. The cache should be "weak" so that any value no longer used can be GC'd
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[GitHub] [tomcat] ChristopherSchultz edited a comment on issue #143: Apply deduplication to certain loaded and created Strings

2019-03-06 Thread GitBox
ChristopherSchultz edited a comment on issue #143: Apply deduplication to 
certain loaded and created Strings
URL: https://github.com/apache/tomcat/pull/143#issuecomment-470156059
 
 
   I like the idea,  but I think the implementation could be better. For 
instance:
   
   1. There is no need to have two collections; just use one and cache 
everything.
   2. The cache should be "weak" so that any value no longer used can be GC'd
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[GitHub] [tomcat] rmaucher commented on issue #143: Apply deduplication to certain loaded and created Strings

2019-03-06 Thread GitBox
rmaucher commented on issue #143: Apply deduplication to certain loaded and 
created Strings
URL: https://github.com/apache/tomcat/pull/143#issuecomment-470157903
 
 
   Ok, I'm not sure it is a very significant saving overall (probably not), but 
it's still more than I expected.
   
   Yes, +1for Chris, it needs to be something like TomcatString.getString I 
suppose.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[tomcat] branch master updated: NIO2 should use SocketTimeoutException

2019-03-06 Thread remm
This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/master by this push:
 new 0969485  NIO2 should use SocketTimeoutException
0969485 is described below

commit 09694859e475c7bdb2a522fb4325bf06b4e80193
Author: remm 
AuthorDate: Wed Mar 6 17:21:19 2019 +0100

NIO2 should use SocketTimeoutException

Harmonize on SocketTimeoutException instead of mixing it with
InterruptedByTimeout. Remove exception replacement in websockets code.
---
 java/org/apache/tomcat/util/net/Nio2Endpoint.java| 5 -
 .../apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java   | 4 
 webapps/docs/changelog.xml   | 4 
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java 
b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
index bba8d97..7bd7191 100644
--- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java
+++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
@@ -30,6 +30,7 @@ import java.nio.channels.AsynchronousSocketChannel;
 import java.nio.channels.ClosedChannelException;
 import java.nio.channels.CompletionHandler;
 import java.nio.channels.FileChannel;
+import java.nio.channels.InterruptedByTimeoutException;
 import java.nio.channels.NetworkChannel;
 import java.nio.file.StandardOpenOption;
 import java.util.ArrayList;
@@ -1172,7 +1173,9 @@ public class Nio2Endpoint extends 
AbstractJsseEndpoint state) {
 IOException ioe;
-if (exc instanceof IOException) {
+if (exc instanceof InterruptedByTimeoutException) {
+ioe = new SocketTimeoutException();
+} else if (exc instanceof IOException) {
 ioe = (IOException) exc;
 } else {
 ioe = new IOException(exc);
diff --git 
a/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java 
b/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
index 30a10a6..301d25c 100644
--- a/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
+++ b/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.net.SocketTimeoutException;
 import java.nio.ByteBuffer;
 import java.nio.channels.CompletionHandler;
-import java.nio.channels.InterruptedByTimeoutException;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.TimeUnit;
 
@@ -110,9 +109,6 @@ public class WsRemoteEndpointImplServer extends 
WsRemoteEndpointImplBase {
 }
 @Override
 public void failed(Throwable exc, Void attachment) {
-if (exc instanceof InterruptedByTimeoutException) {
-exc = new SocketTimeoutException();
-}
 if (block) {
 SendResult sr = new SendResult(exc);
 handler.onResult(sr);
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 914b36b..86830b0 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -115,6 +115,10 @@
 https://bugs.openjdk.java.net/browse/JDK-8157404";>JRE KeyStore
 loading bug. (markt)
   
+  
+NIO2 should try to use SocketTimeoutException everywhere rather than a
+mix of it and InterruptedByTimeout. (remm)
+  
 
   
   


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



buildbot success in on tomcat-trunk

2019-03-06 Thread buildbot
The Buildbot has detected a restored build on builder tomcat-trunk while 
building tomcat. Full details are available at:
https://ci.apache.org/builders/tomcat-trunk/builds/4115

Buildbot URL: https://ci.apache.org/

Buildslave for this Build: silvanus_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' 
triggered this build
Build Source Stamp: [branch master] 09694859e475c7bdb2a522fb4325bf06b4e80193
Blamelist: remm 

Build succeeded!

Sincerely,
 -The Buildbot




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



[tomcat] branch 8.5.x updated: NIO2 should use SocketTimeoutException

2019-03-06 Thread remm
This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
 new 12bfd3d  NIO2 should use SocketTimeoutException
12bfd3d is described below

commit 12bfd3de3eac97d230cc4170ac0ad782f35f1c7a
Author: remm 
AuthorDate: Wed Mar 6 17:21:19 2019 +0100

NIO2 should use SocketTimeoutException

Harmonize on SocketTimeoutException instead of mixing it with
InterruptedByTimeout. Remove exception replacement in websockets code.
# Conflicts:
#   java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java
#   webapps/docs/changelog.xml
---
 java/org/apache/tomcat/util/net/Nio2Endpoint.java | 5 -
 webapps/docs/changelog.xml| 4 
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/java/org/apache/tomcat/util/net/Nio2Endpoint.java 
b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
index b551659..3a63503 100644
--- a/java/org/apache/tomcat/util/net/Nio2Endpoint.java
+++ b/java/org/apache/tomcat/util/net/Nio2Endpoint.java
@@ -30,6 +30,7 @@ import java.nio.channels.AsynchronousSocketChannel;
 import java.nio.channels.ClosedChannelException;
 import java.nio.channels.CompletionHandler;
 import java.nio.channels.FileChannel;
+import java.nio.channels.InterruptedByTimeoutException;
 import java.nio.channels.NetworkChannel;
 import java.nio.file.StandardOpenOption;
 import java.util.concurrent.ExecutionException;
@@ -1146,7 +1147,9 @@ public class Nio2Endpoint extends 
AbstractJsseEndpoint {
 @Override
 public void failed(Throwable exc, OperationState state) {
 IOException ioe;
-if (exc instanceof IOException) {
+if (exc instanceof InterruptedByTimeoutException) {
+ioe = new SocketTimeoutException();
+} else if (exc instanceof IOException) {
 ioe = (IOException) exc;
 } else {
 ioe = new IOException(exc);
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index bdc69cf..90297df 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -156,6 +156,10 @@
   
 Sync with NIO2 async API from Tomcat 9 branch. (remm)
   
+  
+NIO2 should try to use SocketTimeoutException everywhere rather than a
+mix of it and InterruptedByTimeout. (remm)
+  
 
   
   


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



[GitHub] [tomcat] philwebb commented on issue #143: Apply deduplication to certain loaded and created Strings

2019-03-06 Thread GitBox
philwebb commented on issue #143: Apply deduplication to certain loaded and 
created Strings
URL: https://github.com/apache/tomcat/pull/143#issuecomment-470210052
 
 
   The other option would be to use `String.intern` for these limited cases. 
Either way, I'm happy to rework the PR if you have a specific direction you'd 
like me to take it?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[tomcat] branch master updated: Improve logging when streams cannot be pruned.

2019-03-06 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/master by this push:
 new 800bd8a  Improve logging when streams cannot be pruned.
800bd8a is described below

commit 800bd8a6a5d22127e37861f56f1217b2eee4514b
Author: Mark Thomas 
AuthorDate: Wed Mar 6 18:13:12 2019 +

Improve logging when streams cannot be pruned.

This is to provide additional information to investigate reports like
https://bz.apache.org/bugzilla/show_bug.cgi?id=63223
---
 java/org/apache/coyote/http2/Http2UpgradeHandler.java | 6 +++---
 java/org/apache/coyote/http2/LocalStrings.properties  | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
index 74b0023..4189a3f 100644
--- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java
+++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
@@ -1000,7 +1000,7 @@ class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpUpgradeH
 sm.getString("upgradeHandler.stream.even", key), 
Http2Error.PROTOCOL_ERROR);
 }
 
-pruneClosedStreams();
+pruneClosedStreams(streamId);
 
 Stream result = new Stream(key, this);
 streams.put(key, result);
@@ -1034,7 +1034,7 @@ class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpUpgradeH
 }
 
 
-private void pruneClosedStreams() {
+private void pruneClosedStreams(int streamId) {
 // Only prune every 10 new streams
 if (newStreamsSinceLastPrune < 9) {
 // Not atomic. Increments may be lost. Not a problem.
@@ -1146,7 +1146,7 @@ class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpUpgradeH
 
 if (toClose > 0) {
 log.warn(sm.getString("upgradeHandler.pruneIncomplete", 
connectionId,
-Integer.toString(toClose)));
+Integer.toString(streamId), Integer.toString(toClose)));
 }
 }
 
diff --git a/java/org/apache/coyote/http2/LocalStrings.properties 
b/java/org/apache/coyote/http2/LocalStrings.properties
index 3fc7000..c948c29 100644
--- a/java/org/apache/coyote/http2/LocalStrings.properties
+++ b/java/org/apache/coyote/http2/LocalStrings.properties
@@ -128,7 +128,7 @@ upgradeHandler.notifyAll=Connection [{0}], Stream [{1}], 
notifyAll() called to r
 upgradeHandler.pause.entry=Connection [{0}] Pausing
 upgradeHandler.pingFailed=Connection [{0}] Failed to send ping to client
 upgradeHandler.prefaceReceived=Connection [{0}], Connection preface received 
from client
-upgradeHandler.pruneIncomplete=Connection [{0}] Failed to fully prune the 
connection because streams were active / used in the priority tree. There are 
[{1}] too many streams
+upgradeHandler.pruneIncomplete=Connection [{0}], Stream [{1}], Failed to fully 
prune the connection because there are [{2}] too many active streams
 upgradeHandler.pruneStart=Connection [{0}] Starting pruning of old streams. 
Limit is [{1}] + 10% and there are currently [{2}] streams.
 upgradeHandler.pruned=Connection [{0}] Pruned completed stream [{1}]
 upgradeHandler.prunedPriority=Connection [{0}] Pruned unused stream [{1}] that 
may have been part of the priority tree


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



[tomcat] branch master updated (800bd8a -> e25130c)

2019-03-06 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git.


from 800bd8a  Improve logging when streams cannot be pruned.
 new bb67c85  Update translations for improved log message
 new 1e9eb61  Update Japanese translations
 new e25130c  Update French translations

The 20615 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 java/org/apache/catalina/connector/LocalStrings_fr.properties| 2 ++
 java/org/apache/catalina/connector/LocalStrings_ja.properties| 4 
 java/org/apache/catalina/core/LocalStrings_ja.properties | 1 +
 java/org/apache/catalina/ha/session/LocalStrings_ja.properties   | 2 +-
 java/org/apache/catalina/manager/host/LocalStrings_ja.properties | 2 ++
 java/org/apache/catalina/mbeans/LocalStrings_ja.properties   | 1 +
 .../catalina/tribes/group/interceptors/LocalStrings_ja.properties| 1 +
 .../org/apache/catalina/tribes/membership/LocalStrings_ja.properties | 1 +
 java/org/apache/coyote/http2/LocalStrings_cs.properties  | 2 +-
 java/org/apache/coyote/http2/LocalStrings_es.properties  | 2 +-
 java/org/apache/coyote/http2/LocalStrings_fr.properties  | 2 +-
 java/org/apache/coyote/http2/LocalStrings_ja.properties  | 5 -
 java/org/apache/coyote/http2/LocalStrings_ko.properties  | 2 +-
 java/org/apache/tomcat/websocket/pojo/LocalStrings_ja.properties | 3 +++
 java/org/apache/tomcat/websocket/server/LocalStrings_ja.properties   | 1 +
 15 files changed, 25 insertions(+), 6 deletions(-)


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



[tomcat] branch 8.5.x updated: Improve logging when streams cannot be pruned.

2019-03-06 Thread markt
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/8.5.x by this push:
 new eed1f6a  Improve logging when streams cannot be pruned.
eed1f6a is described below

commit eed1f6a9f27f841bcb6eef8703e833d390b4d80b
Author: Mark Thomas 
AuthorDate: Wed Mar 6 18:13:12 2019 +

Improve logging when streams cannot be pruned.

This is to provide additional information to investigate reports like
https://bz.apache.org/bugzilla/show_bug.cgi?id=63223
---
 java/org/apache/coyote/http2/Http2UpgradeHandler.java | 6 +++---
 java/org/apache/coyote/http2/LocalStrings.properties  | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
index 590f3b2..6f3287e 100644
--- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java
+++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java
@@ -984,7 +984,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
 sm.getString("upgradeHandler.stream.even", key), 
Http2Error.PROTOCOL_ERROR);
 }
 
-pruneClosedStreams();
+pruneClosedStreams(streamId);
 
 Stream result = new Stream(key, this);
 streams.put(key, result);
@@ -1018,7 +1018,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
 }
 
 
-private void pruneClosedStreams() {
+private void pruneClosedStreams(int streamId) {
 // Only prune every 10 new streams
 if (newStreamsSinceLastPrune < 9) {
 // Not atomic. Increments may be lost. Not a problem.
@@ -1130,7 +1130,7 @@ public class Http2UpgradeHandler extends AbstractStream 
implements InternalHttpU
 
 if (toClose > 0) {
 log.warn(sm.getString("upgradeHandler.pruneIncomplete", 
connectionId,
-Integer.toString(toClose)));
+Integer.toString(streamId), Integer.toString(toClose)));
 }
 }
 
diff --git a/java/org/apache/coyote/http2/LocalStrings.properties 
b/java/org/apache/coyote/http2/LocalStrings.properties
index f9ea1e3..c47e402 100644
--- a/java/org/apache/coyote/http2/LocalStrings.properties
+++ b/java/org/apache/coyote/http2/LocalStrings.properties
@@ -128,7 +128,7 @@ upgradeHandler.notifyAll=Connection [{0}], Stream [{1}], 
notifyAll() called to r
 upgradeHandler.pause.entry=Connection [{0}] Pausing
 upgradeHandler.prefaceReceived=Connection [{0}], Connection preface received 
from client
 upgradeHandler.pingFailed=Connection [{0}] Failed to send ping to client
-upgradeHandler.pruneIncomplete=Connection [{0}] Failed to fully prune the 
connection because streams were active / used in the priority tree. There are 
[{1}] too many streams
+upgradeHandler.pruneIncomplete=Connection [{0}], Stream [{1}], Failed to fully 
prune the connection because there are [{2}] too many active streams
 upgradeHandler.pruneStart=Connection [{0}] Starting pruning of old streams. 
Limit is [{1}] + 10% and there are currently [{2}] streams.
 upgradeHandler.pruned=Connection [{0}] Pruned completed stream [{1}]
 upgradeHandler.prunedPriority=Connection [{0}] Pruned unused stream [{1}] that 
may have been part of the priority tree


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



buildbot failure in on tomcat-85-trunk

2019-03-06 Thread buildbot
The Buildbot has detected a new failure on builder tomcat-85-trunk while 
building tomcat. Full details are available at:
https://ci.apache.org/builders/tomcat-85-trunk/builds/1687

Buildbot URL: https://ci.apache.org/

Buildslave for this Build: silvanus_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-85-commit' 
triggered this build
Build Source Stamp: [branch 8.5.x] eed1f6a9f27f841bcb6eef8703e833d390b4d80b
Blamelist: Mark Thomas 

BUILD FAILED: failed compile_1

Sincerely,
 -The Buildbot




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



buildbot failure in on tomcat-trunk

2019-03-06 Thread buildbot
The Buildbot has detected a new failure on builder tomcat-trunk while building 
tomcat. Full details are available at:
https://ci.apache.org/builders/tomcat-trunk/builds/4117

Buildbot URL: https://ci.apache.org/

Buildslave for this Build: silvanus_ubuntu

Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' 
triggered this build
Build Source Stamp: [branch master] e25130c14547e15369a8c331138e3df02d37a00b
Blamelist: Mark Thomas 

BUILD FAILED: failed compile_1

Sincerely,
 -The Buildbot




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



[Bug 63235] Defer potentially expensive Charset.availableCharsets() call

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235

--- Comment #5 from Phillip Webb  ---
@Mark Thanks for pointing me at those previous issues, I should have thought to
search first!

It seems like I may have misunderstood the reason for the cache existing in the
first place. My original assumption was that it was necessary for
case-insensitive name lookups. It appears, on OpenJDK at least, calling
`Charset.forName` works with any case combination works. The following will run
without error:

Set names = new LinkedHashSet<>();
Charset.availableCharsets().forEach((key, value) -> {
names.add(value.name());
names.addAll(value.aliases());
});
names.forEach(name -> {
System.out.println(Charset.forName(name.toLowerCase()));
});

So the main reasons for the cache, as I understand it, are:

1) Improve lookup performance for initial requests by having a hot cache
2) Prevent DoS attacks by limiting the impact of a user requesting an invalid
charset

Looking at each of these in turn:


1) Improve lookup performance for initial requests by having a hot cache

> populate the cache values at start-up for 'popular' charsets (ISO-8859-1, 
> UTF-8 plus any others we think are likely to be used)

I like this suggestion and I think this would be a good match for most users.
Popular charsets would be fast, and initial requests to others would take a
slight hit. The `Charset` class itself includes a cache, so this could be as
simple as calling `Charset.forName` a few times.


2) Prevent DoS attacks by limiting the impact of a user requesting an invalid
charset

Looking at the existing JDK `Charset` and `AbstractCharsetProvider`[1] class,
it appears that asking for charsets that don't exist does not have an impact on
memory. When I run the following code, I don't see a large change:

for (int i = 0; i < 1000; i++) {
try {
Charset.forName("missing-" + i);
}
catch (Exception ex) {
}
if (i % 1 == 0) {
System.out.println(Runtime.getRuntime().totalMemory());
System.out.println(Runtime.getRuntime().maxMemory());
System.out.println(Runtime.getRuntime().freeMemory());
System.out.println("--");
}
}

Of course, this might be JVM specific so it may well be worth still protecting
against that. One simple option might be to count lookup misses and after a
certain threshold switch back to a set limited by availableCharsets. Something
like:


public static Charset getCharset(String enc) throws
UnsupportedEncodingException {
Map cache = encodingToCharsetCache;
if (cache != null) {
Charset charset = cache.get(enc.toLowerCase());
if (charset == null) {
throw new UnsupportedEncodingException(
sm.getString("b2cConverter.unknownEncoding", enc));
}
}
try {
return Charset.forName(enc);
} catch (Exception ex) {
int count = charsetMissCount.incrementAndGet();
if (count > THRESHOLD) {
encodingToCharsetCache = populateEncodingCache();
}
throw ex;
}
}


I'm happy to rework the PR if that's a sensible suggestion? Even if it were
opt-int, I think it would very nice to not have to pay the startup cost that
the existing code incurs, especially if you use an embedded Tomcat and restart
frequently during application development.

[1]
http://cr.openjdk.java.net/~sherman/6898310/webrev/src/share/classes/sun/nio/cs/AbstractCharsetProvider.java.html

-- 
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



[Bug 63237] Consider processing mbeans-descriptors.xml at compile time

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63237

--- Comment #2 from Phillip Webb  ---
@Remy

> I have not tried to measure the time and resource costs of this parsing

The only evidence I have currently are profiling results that appear to
indicate the SAX parser taking a chunk of time during startup. I imagine for
most standalone Tomcat users, this isn't really an issue. For users of embedded
Tomcat, these little optimizations can really help.

Anecdotally, I have implemented similar performance tweaks previously by
replacing logback XML parsing with programmatic configuration [1].

[1] https://github.com/spring-projects/spring-boot/issues/1796

-- 
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



[Bug 63235] Defer potentially expensive Charset.availableCharsets() call

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235

--- Comment #6 from Remy Maucherat  ---
I don't see the benefit as there's a clear downside and the complexity
skyrockets. IMO you should focus on the String optimization since it doesn't
have these issues.

On my desktop computer, I measured the "all charset" loading code using
System.nanoTime as taking 31105409ns, so that would be 31 ms. IMO, even as an
optin and when using something where it is harmless like an IDE, I think users
would be best served not wasting their time configuring such an option. On a
server, I think these are CPU cycles reasonably well spent given the
as-good-as-possible runtime performance and robustness.

-- 
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



[Bug 63237] Consider processing mbeans-descriptors.xml at compile time

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63237

--- Comment #3 from Remy Maucherat  ---
Profilers often exaggerate the impact of some operations, so this has to be
taken with an amount of caution. XML parsing is expensive for sure, but the
descriptors are not too huge and MBeanUtils.createRegistry takes 83ms on my
computer, which is not exactly the end of the world.

The solution proposed [generating mbeans code :( ] is a bit annoying to say the
least compared to the descriptors. On the plus side, I'm pretty sure regular
mbeans perform better at runtime than model mbeans, this is not so innocent
when cloud monitoring goes crazy and uses 100s of metrics.

-- 
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



[Bug 63235] Defer potentially expensive Charset.availableCharsets() call

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235

--- Comment #7 from Phillip Webb  ---
> I don't see the benefit as there's a clear downside and the 
> complexity skyrockets. IMO you should focus on the String 
> optimization since it doesn't have these issues.

I'll continue with the String optimizations as well, but they only help with
memory and don't give any startup performance improvements.

> On my desktop computer, I measured the "all charset" loading code using
> System.nanoTime as taking 31105409ns, so that would be 31 ms.

For me, saving 31 ms on each restart is a very worthwhile gain and something
I'd love to be able to opt in to. I even think that when running on the server
this kind of optimization is something I would find useful in many situations.
For example, if I have many internal services that I know will all be hit with
only UTF-8, why wouldn't I want to enable the option?

I'd love to be able to find a solution that helps this use-case without adding
too much complexity. From the comments on #57808 and #58859 it doesn't appear
that I'm alone.

-- 
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



[Bug 63237] Consider processing mbeans-descriptors.xml at compile time

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63237

--- Comment #4 from Phillip Webb  ---
> MBeanUtils.createRegistry takes 83ms on my computer, which is not exactly the 
> end of the world

That's a really interesting metric and quite a significant amount if we're
talking about using embedded Tomcat in a serverless environment where runs are
very short lived.

> The solution proposed ... is a bit annoying to say the least compared to the 
> descriptors

OK. I probably should have just stated the problem and not suggested a
solution. I'm not too keen on generating code either.

Let me rephrase. Would a (potentially hand crafted) code based alternative to
`mbeans-descriptors.xml` be something you'd consider worthwhile?

-- 
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



[GitHub] [tomcat] ChristopherSchultz commented on issue #143: Apply deduplication to certain loaded and created Strings

2019-03-06 Thread GitBox
ChristopherSchultz commented on issue #143: Apply deduplication to certain 
loaded and created Strings
URL: https://github.com/apache/tomcat/pull/143#issuecomment-470265906
 
 
   Good point: String.intern is already implemented, and it's already "weak". 
Less code, same result = better.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[Bug 63235] Defer potentially expensive Charset.availableCharsets() call

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235

--- Comment #8 from Mark Thomas  ---
Just to note that the performance issue with unknown charsets wasn't memory
related. It was lock contention. Bug 51400 has the details.

Can you provide some context around why 31ms is significant for the use case
you are considering? It doesn't seem significant for the typical use cases we
see.

I do plan to look at the first option I described in comment #2. There are a
few things on my TODO list so if you wanted to re-work your PR in that
direction it would certainly help progress things.

Another thing worth doing is testing with a more recent JVM to see if the
original issue still exists. If it doesn't, we have a very simple solution
available - remove the cache entirely.

-- 
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



[GitHub] [tomcat] philwebb commented on issue #142: Defer creation of encodingToCharsetCache

2019-03-06 Thread GitBox
philwebb commented on issue #142: Defer creation of encodingToCharsetCache
URL: https://github.com/apache/tomcat/pull/142#issuecomment-470280939
 
 
   I've pushed an update following the discussion on 
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235
   
   @rmaucher 
   
   > If there is a lookup with Charset.forName, then would the cache be used at 
all
   
   Correct. The updated code relies on the [internal 
cache](https://github.com/openjdk-mirror/jdk7u-jdk/blob/f4d80957e89a19a29bb9f9807d2a28351ed7f7df/src/share/classes/java/nio/charset/Charset.java#L465-L498)
 that the `Charset` class uses.
   
   > I don't understand this sort of Windows style "startup time" optimization, 
where you hide stuff behind making running actual application code slower
   
   I don't know what you mean by "Windows style startup time optimization". Why 
would the actual actual application code now be slower?
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[Bug 63235] Defer potentially expensive Charset.availableCharsets() call

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235

--- Comment #9 from Phillip Webb  ---

> Can you provide some context around why 31ms is significant for the use 
> case you are considering? It doesn't seem significant for the typical use 
> cases we see.

Spring Boot uses Embedded Tomcat as it's default servlet container and startup
time has been quite a focus in recent months. As much as possible we want
developers to be able to restart their applications quickly during development
time. We're also seeing a lot of interest in using Spring Boot in FaaS
environments. These are quite different to traditional deployments as
applications are only started on demand, and are closed very quickly.


> I do plan to look at the first option I described in comment #2. There are a 
> few things 
> on my TODO list so if you wanted to re-work your PR in that direction it 
> would certainly 
> help progress things.

I'll take another look. I made one change but I was missing the context of
#51400. Looking at the
Java 8 source code [1], I'd say that's still an issue.


[1]
https://github.com/openjdk-mirror/jdk/blame/adea42765ae4e7117c3f0e2d618d5e6aed44ced2/src/share/classes/sun/nio/cs/FastCharsetProvider.java#L131-L135

-- 
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



[GitHub] [tomcat] philwebb commented on issue #142: Defer creation of encodingToCharsetCache

2019-03-06 Thread GitBox
philwebb commented on issue #142: Defer creation of encodingToCharsetCache
URL: https://github.com/apache/tomcat/pull/142#issuecomment-470317822
 
 
   I've pushed another update now that I know about 
https://bz.apache.org/bugzilla/show_bug.cgi?id=51400


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[Bug 63235] Defer potentially expensive Charset.availableCharsets() call

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63235

--- Comment #10 from Phillip Webb  ---
@Mark

I've updated the PR based on your comments. There is now a cache for concurrent
access as well as protection against DoS attacks. I've also tried to add some
tests. The list of common charsets and the DoS threshold will no doubt need
refining.

If you want me to update it again with an option so that this is opt-in rather
than always on please let me know (and point me to an example of how you do
this kind of thing).

-- 
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



[Bug 63210] Tomcat failing to shutdown if EvictionTimer thread is running

2019-03-06 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=63210

--- Comment #15 from k...@gameldar.com ---
(In reply to Mark Thomas from comment #14)
> Improved fix applied (fixed versions as before).

I've built and tested with both the replication case and our use case with a
custom DataSource factory and they are both working.

Thanks!

-- 
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



[GUMP@vmgump-vm3]: Project tomcat-tc7.0.x (in module tomcat-7.0.x) failed

2019-03-06 Thread Bill Barker
To whom it may engage...

This is an automated request, but not an unsolicited one. For 
more information please visit http://gump.apache.org/nagged.html, 
and/or contact the folk at gene...@gump.apache.org.

Project tomcat-tc7.0.x has an issue affecting its community integration.
This issue affects 4 projects,
 and has been outstanding for 5 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- tomcat-tc7.0.x :  Tomcat 7.x, a web server implementing Java Servlet 3.0,
...
- tomcat-tc7.0.x-test-apr :  Tomcat 7.x, a web server implementing Java 
Servlet 3.0,
...
- tomcat-tc7.0.x-test-bio :  Tomcat 7.x, a web server implementing Java 
Servlet 3.0,
...
- tomcat-tc7.0.x-test-nio :  Tomcat 7.x, a web server implementing Java 
Servlet 3.0,
...


Full details are available at:
http://vmgump-vm3.apache.org/tomcat-7.0.x/tomcat-tc7.0.x/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -DEBUG- Dependency on tomcat-tc7.0.x-dbcp exists, no need to add for property 
tomcat-dbcp-src.jar.
 -DEBUG- Dependency on junit exists, no need to add for property junit.jar.
 -DEBUG- Dependency on tomcat-tc7.0.x-dbcp exists, no need to add for property 
tomcat-dbcp.home.
 -INFO- Failed with reason build failed
 -INFO- Failed to extract fallback artifacts from Gump Repository



The following work was performed:
http://vmgump-vm3.apache.org/tomcat-7.0.x/tomcat-tc7.0.x/gump_work/build_tomcat-7.0.x_tomcat-tc7.0.x.html
Work Name: build_tomcat-7.0.x_tomcat-tc7.0.x (Type: Build)
Work ended in a state of : Failed
Elapsed: 12 secs
Command Line: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true 
-Dbuild.sysclasspath=only -Dsun.zip.disableMemoryMapping=true 
org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml 
-Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar 
-Dtomcat-dbcp.home=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps 
-Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.7.3a-201803300640/ecj-4.7.3a.jar
 -Dbase.path=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-build-libs 
-Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/target/commons-daemon-1.1.1-SNAPSHOT.jar
 
-Dtomcat-dbcp-src.jar=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-src.jar
 -Dcommons-pool.home=/srv/gump/public/workspace/commons-pool-1.x 
-Dcommons-dbcp.home=/srv/gump/public/workspace/commons-dbcp-1.x 
-Dtomcat-dbcp.jar=/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-20190307.jar
 
[Working Directory: /srv/gump/public/workspace/tomcat-7.0.x]
CLASSPATH: 
/usr/lib/jvm/java-8-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/classes:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit4.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar:/srv/gump/packages/eclipse/plugins/R-4.7.3a-201803300640/ecj-4.7.3a.jar:/srv/gump/public/workspace/tomcat-7.0.x/tomcat-deps/tomcat-dbcp-20190307.jar:/srv/gump/public/workspace/apache-commons/daemon/target/commons-daemon-1.1.1-SNAPSHOT.jar
-
proxyflags:

setproxy:

testexist:
 [echo] Testing  for /srv/gump/public/workspace/commons-dbcp-1.x/build.xml

downloadgz-2:

testexist:
 [echo] Testing  for 
/srv/gump/packages/eclipse/plugins/R-4.7.3a-201803300640/ecj-4.7.3a.jar

downloadfile-2:

build-deps:

build-prepare:
   [delete] Deleting directory 
/srv/gump/public/workspace/tomcat-7.0.x/output/build/temp
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-7.0.x/output/build/temp

build-manifests:

build-tomcat-dbcp:

compile-prepare:

download-validate:

validate:

compile-java6:
[javac] Compiling 1324 source files to 
/srv/gump/public/workspace/tomcat-7.0.x/output/classes
[javac] 
/srv/gump/public/workspace/tomcat-7.0.x/java/javax/el/ResourceBundleELResolver.java:109:
 warning: [unchecked] getFeatureDescriptors(ELContext,Object) in 
ResourceBundleELResolver overrides getFeatureDescriptors(ELContext,Object) in 
ELResolver
[javac] public Iterator getFeatureDescriptors(
[javac] ^
[javac]   return type requires unchecked conversion from Iterator to 
Iterator
[javac] 
/srv/gump/public/workspace/tomcat-7.0.x/java/org/apache/catalina/connector/Request.java:2879:
 error: cannot find symbol
[javac] 

[GitHub] [tomcat] philwebb commented on issue #143: Apply deduplication to certain loaded and created Strings

2019-03-06 Thread GitBox
philwebb commented on issue #143: Apply deduplication to certain loaded and 
created Strings
URL: https://github.com/apache/tomcat/pull/143#issuecomment-470381178
 
 
   I've pushed an update that uses `String.intern` for those two places. With 
this change 2192 duplicates are reduced to 300 and I'm not seeing any 
difference in startup time. 


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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



[GitHub] [tomcat] rmannibucau commented on issue #143: Apply deduplication to certain loaded and created Strings

2019-03-06 Thread GitBox
rmannibucau commented on issue #143: Apply deduplication to certain loaded and 
created Strings
URL: https://github.com/apache/tomcat/pull/143#issuecomment-470392703
 
 
   Is generating a java class at build time instead of reading the xml 
possible? Then a preregistration in a registry would enable to bypass a lot of 
xml parsing and reflection which should give a real boost.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

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