svn commit: r1497670 - /tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
Author: markt Date: Fri Jun 28 07:35:49 2013 New Revision: 1497670 URL: http://svn.apache.org/r1497670 Log: WebSocket 1.0, section 8.2 There is an implied restriction that any initial upgrade request must use HTTP GET. Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java?rev=1497670&r1=1497669&r2=1497670&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java Fri Jun 28 07:35:49 2013 @@ -77,9 +77,13 @@ public class WsFilter implements Filter !(response instanceof HttpServletResponse) || !headerContainsToken((HttpServletRequest) request, Constants.UPGRADE_HEADER_NAME, -Constants.UPGRADE_HEADER_VALUE)) { +Constants.UPGRADE_HEADER_VALUE) || +!"GET".equals(((HttpServletRequest) request).getMethod())) { // Not an HTTP request that includes a valid upgrade request to // web socket +// Note: RFC 2616 does not limit HTTP upgrade to GET requests but +// the the Java WebSocket spec 1.0, section 8.2 implies such a +// limitation chain.doFilter(request, response); return; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Tomcat 7.0.41 JNDIRealm revision 1491394
On 27/06/13 21:03, Mark Thomas wrote: On 27/06/2013 19:23, Brian Burch wrote: So will you deal with it from now on, or would you like me to open bugs on tc7 and tc8? Fixed. It would be good if you could confirm the fix is correct. I checked out the tc7 trunk. The source of JNDIRealm was exactly as I expected to fix the bug. I replaced my patched catalina.jar with the differently-sized version built from the trunk. I confirm that authentication of SHA hashed passwords from an LDAP directory is working again. Brian 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
[Bug 55031] Update MANIFEST.MF for OSGi headers
https://issues.apache.org/bugzilla/show_bug.cgi?id=55031 --- Comment #2 from Martin Lichtin --- I took the 7.0.40 sources artifact, as far as I can remember. However, when getting the sources from trunk and using the Felix bundle plugin, the same import/export headers are generated. I don't understand why Bnd (http://www.aqute.biz/Bnd/Bnd) thinks the "interceptor" package is using classes from "jmx", but then again, I have never questioned Bnd's outcome either, because the creation of import/export headers is normally done under the hood. Please feel free to remove "org.apache.tomcat.jdbc.pool.jmx" from the uses: clause of org.apache.tomcat.jdbc.pool.interceptor. The rest, as far as I can see, is adequate. -- 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
WebSocket: to flip or not the ByteBuffer during sendBinary in RemoteEndpoint(s)
Hi folks, while playing around with tyrus and tomcat implementation of websocket I spotted a difference in the way sendBinary is actually implemented. In short: tyrus uses bytebuffer.array(), hence there is no change in buffer's position while we end with channel write operation that does this. Neither the spec nor the javadoc detail that but the result is that one application can run perfectly on one of the implementations and could cause problem on the other. Shall we contact the EG for clarification on this matter? Opinions? cheers niki
svn commit: r1497741 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/catalina/core/AsyncContextImpl.java test/org/apache/catalina/core/TestAsyncContextImpl.java webapps/docs/changelog.xml
Author: violetagg Date: Fri Jun 28 12:01:42 2013 New Revision: 1497741 URL: http://svn.apache.org/r1497741 Log: Merged revision 1497474 from tomcat/trunk: When calculating the path in AsyncContext.dispatch(), methods ServletRequest.getRequestURI and ServletRequest.getContextPath cannot be used. That's because the first one returns a string that is not decoded and not normalized, but the second one returns decoded string. Instead of this methods ServletRequest.getServletPath and ServletRequest.getPathInfo will be used as requestURI = contextPath + servletPath + pathInfo. Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AsyncContextImpl.java tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1497474 Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AsyncContextImpl.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AsyncContextImpl.java?rev=1497741&r1=1497740&r2=1497741&view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AsyncContextImpl.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/AsyncContextImpl.java Fri Jun 28 12:01:42 2013 @@ -169,17 +169,19 @@ public class AsyncContextImpl implements public void dispatch() { check(); String path; -String cpath; +String pathInfo; ServletRequest servletRequest = getRequest(); if (servletRequest instanceof HttpServletRequest) { HttpServletRequest sr = (HttpServletRequest) servletRequest; -path = sr.getRequestURI(); -cpath = sr.getContextPath(); +path = sr.getServletPath(); +pathInfo = sr.getPathInfo(); } else { -path = request.getRequestURI(); -cpath = request.getContextPath(); +path = request.getServletPath(); +pathInfo = request.getPathInfo(); +} +if (pathInfo != null) { +path += pathInfo; } -if (cpath.length()>1) path = path.substring(cpath.length()); dispatch(path); } Modified: tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java?rev=1497741&r1=1497740&r2=1497741&view=diff == --- tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java Fri Jun 28 12:01:42 2013 @@ -1809,42 +1809,18 @@ public class TestAsyncContextImpl extend @Test public void testDispatchWithCustomRequestResponse() throws Exception { -// Setup Tomcat instance -Tomcat tomcat = getTomcatInstance(); - -// Must have a real docBase - just use temp -File docBase = new File(System.getProperty("java.io.tmpdir")); - -Context ctx = tomcat.addContext("", docBase.getAbsolutePath()); - -DispatchingGenericServlet dispatch = new DispatchingGenericServlet(); -Wrapper wrapper = Tomcat.addServlet(ctx, "dispatch", dispatch); -wrapper.setAsyncSupported(true); -ctx.addServletMapping("/dispatch", "dispatch"); - -CustomGenericServlet customGeneric = new CustomGenericServlet(); -Wrapper wrapper2 = Tomcat.addServlet(ctx, "customGeneric", -customGeneric); -wrapper2.setAsyncSupported(true); -ctx.addServletMapping("/target", "customGeneric"); - -tomcat.start(); - -ByteChunk res = getUrl("http://localhost:"; + getPort() -+ "/dispatch?crr=y"); +prepareApplicationWithGenericServlet(""); StringBuilder expected = new StringBuilder(); expected.append("OK"); expected.append("CustomGenericServletGet-"); -assertEquals(expected.toString(), res.toString()); - -res = getUrl("http://localhost:"; + getPort() -+ "/dispatch?crr=y&empty=y"); +requestApplicationWithGenericServlet("/dispatch?crr=y", expected); expected = new StringBuilder(); expected.append("OK"); expected.append("DispatchingGenericServletGet-"); -assertEquals(expected.toString(), res.toString()); +requestApplicationWithGenericServlet("/dispatch?crr=y&empty=y", +expected); } private static class CustomGenericServlet extends GenericServlet { @@ -1861,4 +1837,75 @@ public class TestAsyncContextImpl extend } } + +@Test +public void testEmptyDispat
Re: WebSocket: to flip or not the ByteBuffer during sendBinary in RemoteEndpoint(s)
On 28/06/2013 12:47, Niki Dokovski wrote: > Hi folks, > while playing around with tyrus and tomcat implementation of websocket I > spotted a difference in the way sendBinary is actually implemented. In > short: tyrus uses bytebuffer.array(), hence there is no change in buffer's > position while we end with channel write operation that does this. Neither > the spec nor the javadoc detail that but the result is that one application > can run perfectly on one of the implementations and could cause problem on > the other. Shall we contact the EG for clarification on this matter? No need. The EG has already stated its view (well, the EG lead did and no-one disagreed) Since the spec does not say anything about re-using ByteBuffers and they are mutable objects, I would expect the conventional developer practice to be to use a new one each time. > Opinions? I agree with the EG lead. Client's should not be making any assumptions about what the implementation will or won't do with a ByteBuffer. If you want to argue for a specific behaviour, open an issue against the spec. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1497754 - /tomcat/trunk/modules/jdbc-pool/resources/MANIFEST.MF
Author: violetagg Date: Fri Jun 28 12:54:52 2013 New Revision: 1497754 URL: http://svn.apache.org/r1497754 Log: Fixed Export-Package header and the "uses" directives. Import org.apache.juli.logging package with no version so that any version of a bundle that provides it can be used. Modified: tomcat/trunk/modules/jdbc-pool/resources/MANIFEST.MF Modified: tomcat/trunk/modules/jdbc-pool/resources/MANIFEST.MF URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/resources/MANIFEST.MF?rev=1497754&r1=1497753&r2=1497754&view=diff == --- tomcat/trunk/modules/jdbc-pool/resources/MANIFEST.MF (original) +++ tomcat/trunk/modules/jdbc-pool/resources/MANIFEST.MF Fri Jun 28 12:54:52 2013 @@ -1,12 +1,13 @@ Manifest-Version: 1.0 -Export-Package: - org.apache.tomcat.jdbc.pool;version="@VERSION@"; - uses:="javax.management,javax.naming,javax.naming.spi,javax.sql, - org.apache.tomcat.jdbc.pool.jmx", - org.apache.tomcat.jdbc.pool.interceptor;version="@VERSION@"; - uses:="javax.management.openmbean,org.apache.tomcat.jdbc.pool", - org.apache.tomcat.jdbc.pool.jmx;version="@VERSION@"; - uses:="javax.management,org.apache.tomcat.jdbc.pool" +Export-Package: org.apache.tomcat.jdbc.naming;uses:="javax.naming,org.ap + ache.juli.logging,javax.naming.spi";version="@VERSION@",org.apache.tomc + at.jdbc.pool;uses:="org.apache.juli.logging,javax.sql,org.apache.tomcat + .jdbc.pool.jmx,javax.management,javax.naming,javax.naming.spi,org.apach + e.tomcat.jdbc.pool.interceptor";version="@VERSION@",org.apache.tomcat.j + dbc.pool.interceptor;uses:="org.apache.tomcat.jdbc.pool,org.apache.juli + .logging,javax.management.openmbean,javax.management";version="@VERSION@ + ",org.apache.tomcat.jdbc.pool.jmx;uses:="org.apache.tomcat.jdbc.pool,or + g.apache.juli.logging,javax.management";version="@VERSION@" Ant-Version: Apache Ant 1.7.0 Bundle-Vendor: Apache Software Foundation Bundle-Version: @VERSION@ @@ -20,4 +21,4 @@ Import-Package: javax.naming;version="0", javax.naming.spi;version="0", javax.sql;version="0", - org.apache.juli.logging;version="[6.0.18, 7.1.0)" + org.apache.juli.logging;version="0" - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1497756 - in /tomcat/trunk/java/org/apache/tomcat/websocket: WsSession.java WsWebSocketContainer.java server/WsHttpUpgradeHandler.java
Author: markt Date: Fri Jun 28 12:55:21 2013 New Revision: 1497756 URL: http://svn.apache.org/r1497756 Log: Add some plumbing to make the HTTP session ID available to the WeBSocket session. This will be required to implement WebSocket 1.0, section 7.2. Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1497756&r1=1497755&r2=1497756&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Fri Jun 28 12:55:21 2013 @@ -69,6 +69,7 @@ public class WsSession implements Sessio private final String subProtocol; private final Map pathParameters; private final boolean secure; +private final String httpSessionId; private final String id; // Expected to handle message types of only @@ -100,8 +101,8 @@ public class WsSession implements Sessio WsRemoteEndpointImplBase wsRemoteEndpoint, WsWebSocketContainer wsWebSocketContainer, URI requestUri, Map> requestParameterMap, -String queryString, Principal userPrincipal, String subProtocol, -Map pathParameters, +String queryString, Principal userPrincipal, String httpSessionId, +String subProtocol, Map pathParameters, boolean secure, EndpointConfig endpointConfig) throws DeploymentException { this.localEndpoint = localEndpoint; @@ -127,6 +128,7 @@ public class WsSession implements Sessio } this.queryString = queryString; this.userPrincipal = userPrincipal; +this.httpSessionId = httpSessionId; if (subProtocol == null) { this.subProtocol = ""; } else { @@ -522,6 +524,11 @@ public class WsSession implements Sessio } +protected String getHttpSessionId() { +return httpSessionId; +} + + protected MessageHandler getTextMessageHandler() { return textMessageHandler; } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1497756&r1=1497755&r2=1497756&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Fri Jun 28 12:55:21 2013 @@ -330,7 +330,7 @@ public class WsWebSocketContainer WsSession wsSession = new WsSession(endpoint, wsRemoteEndpointClient, -this, null, null, null, null, subProtocol, +this, null, null, null, null, null, subProtocol, Collections.EMPTY_MAP, false, clientEndpointConfiguration); endpoint.onOpen(wsSession, clientEndpointConfiguration); Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java?rev=1497756&r1=1497755&r2=1497756&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Fri Jun 28 12:55:21 2013 @@ -24,6 +24,7 @@ import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; import javax.servlet.ServletOutputStream; import javax.servlet.WriteListener; +import javax.servlet.http.HttpSession; import javax.servlet.http.HttpUpgradeHandler; import javax.servlet.http.WebConnection; import javax.websocket.CloseReason; @@ -99,6 +100,12 @@ public class WsHttpUpgradeHandler implem throw new IllegalStateException(e); } +String httpSessionId = null; +Object session = handshakeRequest.getHttpSession(); +if (session != null ) { +httpSessionId = ((HttpSession) session).getId(); +} + // Need to call onOpen using the web application's class loader // Create the frame using the application's class loader so it can pick // up application specific config from the ServerContainerImpl @@ -112,8 +119,8 @@ public class WsHttpUpgradeHandler implem webSocketContainer, handshakeRequest.getRequestURI(), handshakeRequest.getParameterMap(), handsh
Re: WebSocket: to flip or not the ByteBuffer during sendBinary in RemoteEndpoint(s)
On Fri, Jun 28, 2013 at 3:44 PM, Mark Thomas wrote: > On 28/06/2013 12:47, Niki Dokovski wrote: > > Hi folks, > > while playing around with tyrus and tomcat implementation of websocket I > > spotted a difference in the way sendBinary is actually implemented. In > > short: tyrus uses bytebuffer.array(), hence there is no change in > buffer's > > position while we end with channel write operation that does this. > Neither > > the spec nor the javadoc detail that but the result is that one > application > > can run perfectly on one of the implementations and could cause problem > on > > the other. Shall we contact the EG for clarification on this matter? > > No need. The EG has already stated its view (well, the EG lead did and > no-one disagreed) > > > Since the spec does not say anything about re-using ByteBuffers and they > are mutable objects, I would expect the conventional developer practice > to be to use a new one each time. > > Thanks for sharing. This is an assumption about what is "conventional developer practice" :) > > > Opinions? > > I agree with the EG lead. Client's should not be making any assumptions > about what the implementation will or won't do with a ByteBuffer. > > If you want to argue for a specific behaviour, open an issue against the > spec. > > I'll ask for a clarification and let's see. The effect is that because of this we can lose portability. > Mark > > > - > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > >
Re: WebSocket: to flip or not the ByteBuffer during sendBinary in RemoteEndpoint(s)
On Fri, Jun 28, 2013 at 3:57 PM, Niki Dokovski wrote: > > > > On Fri, Jun 28, 2013 at 3:44 PM, Mark Thomas wrote: > >> On 28/06/2013 12:47, Niki Dokovski wrote: >> > Hi folks, >> > while playing around with tyrus and tomcat implementation of websocket I >> > spotted a difference in the way sendBinary is actually implemented. In >> > short: tyrus uses bytebuffer.array(), hence there is no change in >> buffer's >> > position while we end with channel write operation that does this. >> Neither >> > the spec nor the javadoc detail that but the result is that one >> application >> > can run perfectly on one of the implementations and could cause problem >> on >> > the other. Shall we contact the EG for clarification on this matter? >> >> No need. The EG has already stated its view (well, the EG lead did and >> no-one disagreed) >> >> >> Since the spec does not say anything about re-using ByteBuffers and they >> are mutable objects, I would expect the conventional developer practice >> to be to use a new one each time. >> >> > > Thanks for sharing. This is an assumption about what is "conventional > developer practice" :) > >> >> > Opinions? >> >> I agree with the EG lead. Client's should not be making any assumptions >> about what the implementation will or won't do with a ByteBuffer. >> >> If you want to argue for a specific behaviour, open an issue against the >> spec. >> >> I'll ask for a clarification and let's see. The effect is that because of > this we can lose portability. > https://java.net/jira/browse/WEBSOCKET_SPEC-209 > > > >> Mark >> >> >> - >> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: dev-h...@tomcat.apache.org >> >> >
svn commit: r1497763 - in /tomcat/trunk/java/org/apache/tomcat/websocket: WsSession.java WsWebSocketContainer.java server/WsHttpUpgradeHandler.java server/WsServerContainer.java
Author: markt Date: Fri Jun 28 13:15:45 2013 New Revision: 1497763 URL: http://svn.apache.org/r1497763 Log: Refactor to register and unregister endpoint instances and session instances rather than endpoint classes and session instances. This is required to support implementation of WebSocket 1.0, section 7.2 Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1497763&r1=1497762&r2=1497763&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Fri Jun 28 13:15:45 2013 @@ -464,8 +464,7 @@ public class WsSession implements Sessio wsRemoteEndpoint.close(); localEndpoint.onError(this, ioe); } finally { -webSocketContainer.unregisterSession( -localEndpoint.getClass(), this); +webSocketContainer.unregisterSession(localEndpoint, this); } } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1497763&r1=1497762&r2=1497763&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Fri Jun 28 13:15:45 2013 @@ -334,7 +334,7 @@ public class WsWebSocketContainer Collections.EMPTY_MAP, false, clientEndpointConfiguration); endpoint.onOpen(wsSession, clientEndpointConfiguration); -registerSession(endpoint.getClass(), wsSession); +registerSession(endpoint, wsSession); // Object creation will trigger input processing @SuppressWarnings("unused") @@ -345,7 +345,11 @@ public class WsWebSocketContainer } -protected void registerSession(Class endpoint, WsSession wsSession) { +protected void registerSession(Object endpointInstance, +WsSession wsSession) { + +Class endpointClazz = endpointInstance.getClass(); + if (!wsSession.isOpen()) { // The session was closed during onOpen. No need to register it. return; @@ -354,10 +358,10 @@ public class WsWebSocketContainer if (endpointSessionMap.size() == 0) { BackgroundProcessManager.getInstance().register(this); } -Set wsSessions = endpointSessionMap.get(endpoint); +Set wsSessions = endpointSessionMap.get(endpointClazz); if (wsSessions == null) { wsSessions = new HashSet<>(); -endpointSessionMap.put(endpoint, wsSessions); +endpointSessionMap.put(endpointClazz, wsSessions); } wsSessions.add(wsSession); } @@ -365,13 +369,17 @@ public class WsWebSocketContainer } -protected void unregisterSession(Class endpoint, WsSession wsSession) { +protected void unregisterSession(Object endpointInstance, +WsSession wsSession) { + +Class endpointClazz = endpointInstance.getClass(); + synchronized (endPointSessionMapLock) { -Set wsSessions = endpointSessionMap.get(endpoint); +Set wsSessions = endpointSessionMap.get(endpointClazz); if (wsSessions != null) { wsSessions.remove(wsSession); if (wsSessions.size() == 0) { -endpointSessionMap.remove(endpoint); +endpointSessionMap.remove(endpointClazz); } } if (endpointSessionMap.size() == 0) { Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java?rev=1497763&r1=1497762&r2=1497763&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Fri Jun 28 13:15:45 2013 @@ -128,7 +128,7 @@ public class WsHttpUpgradeHandler implem sos.setWriteListener( new WsWriteListener(this, wsRemoteEndpointServer)); ep.onOpen(wsSession, endpointConfig);
svn commit: r1497764 - /tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
Author: markt Date: Fri Jun 28 13:16:37 2013 New Revision: 1497764 URL: http://svn.apache.org/r1497764 Log: Trivial whitespace Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1497764&r1=1497763&r2=1497764&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Fri Jun 28 13:16:37 2013 @@ -445,6 +445,7 @@ public class WsSession implements Sessio } } + private void sendCloseMessage(CloseReason closeReason) { // 125 is maximum size for the payload of a control message ByteBuffer msg = ByteBuffer.allocate(125); @@ -466,7 +467,6 @@ public class WsSession implements Sessio } finally { webSocketContainer.unregisterSession(localEndpoint, this); } - } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1497765 - in /tomcat/tc7.0.x/trunk: ./ modules/jdbc-pool/resources/MANIFEST.MF webapps/docs/changelog.xml
Author: violetagg Date: Fri Jun 28 13:20:58 2013 New Revision: 1497765 URL: http://svn.apache.org/r1497765 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=55031 Merged revision 1497754 from tomcat/trunk: Fixed Export-Package header and the "uses" directives. Import org.apache.juli.logging package with no version so that any version of a bundle that provides it can be used. Patch provided by Martin Lichtin. Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/modules/jdbc-pool/resources/MANIFEST.MF tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1497754 Modified: tomcat/tc7.0.x/trunk/modules/jdbc-pool/resources/MANIFEST.MF URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/modules/jdbc-pool/resources/MANIFEST.MF?rev=1497765&r1=1497764&r2=1497765&view=diff == --- tomcat/tc7.0.x/trunk/modules/jdbc-pool/resources/MANIFEST.MF (original) +++ tomcat/tc7.0.x/trunk/modules/jdbc-pool/resources/MANIFEST.MF Fri Jun 28 13:20:58 2013 @@ -1,12 +1,13 @@ Manifest-Version: 1.0 -Export-Package: - org.apache.tomcat.jdbc.pool;version="@VERSION@"; - uses:="javax.management,javax.naming,javax.naming.spi,javax.sql, - org.apache.tomcat.jdbc.pool.jmx", - org.apache.tomcat.jdbc.pool.interceptor;version="@VERSION@"; - uses:="javax.management.openmbean,org.apache.tomcat.jdbc.pool", - org.apache.tomcat.jdbc.pool.jmx;version="@VERSION@"; - uses:="javax.management,org.apache.tomcat.jdbc.pool" +Export-Package: org.apache.tomcat.jdbc.naming;uses:="javax.naming,org.ap + ache.juli.logging,javax.naming.spi";version="@VERSION@",org.apache.tomc + at.jdbc.pool;uses:="org.apache.juli.logging,javax.sql,org.apache.tomcat + .jdbc.pool.jmx,javax.management,javax.naming,javax.naming.spi,org.apach + e.tomcat.jdbc.pool.interceptor";version="@VERSION@",org.apache.tomcat.j + dbc.pool.interceptor;uses:="org.apache.tomcat.jdbc.pool,org.apache.juli + .logging,javax.management.openmbean,javax.management";version="@VERSION@ + ",org.apache.tomcat.jdbc.pool.jmx;uses:="org.apache.tomcat.jdbc.pool,or + g.apache.juli.logging,javax.management";version="@VERSION@" Ant-Version: Apache Ant 1.7.0 Bundle-Vendor: Apache Software Foundation Bundle-Version: @VERSION@ @@ -20,4 +21,4 @@ Import-Package: javax.naming;version="0", javax.naming.spi;version="0", javax.sql;version="0", - org.apache.juli.logging;version="[6.0.18, 7.1.0)" + org.apache.juli.logging;version="0" Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1497765&r1=1497764&r2=1497765&view=diff == --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Fri Jun 28 13:20:58 2013 @@ -156,6 +156,17 @@ + + + +55031: Fixed Export-Package header and +uses directives in MANIFEST.MF. Change the version for +package org.apache.juli.logging to "0" in +Import-Package header. Thus any version of that package +can be used. Patch provided by Martin Lichtin. (violetagg) + + + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 55031] Update MANIFEST.MF for OSGi headers
https://issues.apache.org/bugzilla/show_bug.cgi?id=55031 Violeta Georgieva changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #3 from Violeta Georgieva --- Fixed in trunk and 7.0.x and will be included in 7.0.42 onwards. -- 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 55155] New: running tomcat tests cause terminal to repeatedly grab focus (on os x)
https://issues.apache.org/bugzilla/show_bug.cgi?id=55155 Bug ID: 55155 Summary: running tomcat tests cause terminal to repeatedly grab focus (on os x) Product: Tomcat 7 Version: unspecified Hardware: Macintosh OS: Mac OS X 10.4 Status: NEW Severity: minor Priority: P2 Component: Packaging Assignee: dev@tomcat.apache.org Reporter: clu...@e-miles.com Created attachment 30493 --> https://issues.apache.org/bugzilla/attachment.cgi?id=30493&action=edit patch to add java.awt.headless=true for junit tests On osx, when running tomcat tests via "ant test", "ant test-nio" or similar, the terminal window running the tests grabs window focus each time a new jvm is launched for the junit tests. This makes it difficult/annoying to do other things in other windows while the tests are running. I am seeing the problem on a mac - it is likely not a problem on other platforms. Setting java.awt.headless=true fixes the issue. I can't think of any reason this shouldn't be set for tomcat tests - maybe there is a reason I don't know. Anyway, the attached patch adds the property (for junit tests). -- 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 55155] running tomcat tests cause terminal to repeatedly grab focus (on os x)
https://issues.apache.org/bugzilla/show_bug.cgi?id=55155 --- Comment #1 from Mark Thomas --- Try again with 7.0.x HEAD please -- 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 55155] running tomcat tests cause terminal to repeatedly grab focus (on os x)
https://issues.apache.org/bugzilla/show_bug.cgi?id=55155 --- Comment #2 from Casey Lucas --- Created attachment 30494 --> https://issues.apache.org/bugzilla/attachment.cgi?id=30494&action=edit against head? is this what you wanted? if not, please provide a tip or link. -- 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 55155] running tomcat tests cause terminal to repeatedly grab focus (on os x)
https://issues.apache.org/bugzilla/show_bug.cgi?id=55155 --- Comment #3 from Mark Thomas --- No, that isn't what I meant. Please re-test with the latest source code for 7.0.x/trunk from subversion. -- 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: r1497670 - /tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
On Jun 28, 2013, at 2:35 AM, ma...@apache.org wrote: > Author: markt > Date: Fri Jun 28 07:35:49 2013 > New Revision: 1497670 > > URL: http://svn.apache.org/r1497670 > Log: > WebSocket 1.0, section 8.2 > There is an implied restriction that any initial upgrade request must use > HTTP GET. > > +!"GET".equals(((HttpServletRequest) request).getMethod())) { > // Not an HTTP request that includes a valid upgrade request to > // web socket > +// Note: RFC 2616 does not limit HTTP upgrade to GET requests but > +// the the Java WebSocket spec 1.0, section 8.2 implies > such a > +// limitation Unfortunate that the Java WebSocket spec is in direct contradiction with the RFC spec. IMO, the RFC spec is the authority and it seems like it should take precedence over the Java WebSocket spec. That would be like the RFC HTTP spec saying "you must do X when header Y is present" and the Java Servlet spec saying "you must not do X when header Y is present." The Java WebSocket spec is clearly wrong here. How clear is the Java WebSocket spec? Does it just /seem/ to indicate this or does it /insist/ upon it? Nick - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1497670 - /tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
On 28/06/2013 17:00, Nick Williams wrote: > > On Jun 28, 2013, at 2:35 AM, ma...@apache.org wrote: > >> Author: markt Date: Fri Jun 28 07:35:49 2013 New Revision: 1497670 >> >> URL: http://svn.apache.org/r1497670 Log: WebSocket 1.0, section >> 8.2 There is an implied restriction that any initial upgrade >> request must use HTTP GET. >> >> +!"GET".equals(((HttpServletRequest) >> request).getMethod())) { // Not an HTTP request that includes a >> valid upgrade request to // web socket +// Note: RFC >> 2616 does not limit HTTP upgrade to GET requests but + >> // the the Java WebSocket spec 1.0, section 8.2 implies such >> a +// limitation > > Unfortunate that the Java WebSocket spec is in direct contradiction > with the RFC spec. Please provide a reference for the part of RFC 6455 you believe this change violates. > IMO, the RFC spec is the authority and it seems > like it should take precedence over the Java WebSocket spec. That > would be like the RFC HTTP spec saying "you must do X when header Y > is present" and the Java Servlet spec saying "you must not do X when > header Y is present." The Java WebSocket spec is clearly wrong here. I disagree with your view in precedence. > How clear is the Java WebSocket spec? Does it just /seem/ to indicate > this or does it /insist/ upon it? It implies only GET requests are permitted. The RFC is more specific. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1497832 - /tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
Author: markt Date: Fri Jun 28 16:28:13 2013 New Revision: 1497832 URL: http://svn.apache.org/r1497832 Log: Clarify comment Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java?rev=1497832&r1=1497831&r2=1497832&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java Fri Jun 28 16:28:13 2013 @@ -83,7 +83,8 @@ public class WsFilter implements Filter // web socket // Note: RFC 2616 does not limit HTTP upgrade to GET requests but // the the Java WebSocket spec 1.0, section 8.2 implies such a -// limitation +// limitation and RFC 6455 section 4.1 requires that a +// WebSocket Upgrade uses GET. chain.doFilter(request, response); return; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1497851 - in /tomcat/trunk/java/org/apache/tomcat/websocket: WsSession.java WsWebSocketContainer.java server/WsSci.java server/WsServerContainer.java server/WsSessionListener.java
Author: markt Date: Fri Jun 28 17:10:27 2013 New Revision: 1497851 URL: http://svn.apache.org/r1497851 Log: WebSocket 1.0, section 7.2 Connections created under an authenticated HTTP session must be closed when the HTTP session ends. Added: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsSessionListener.java (with props) Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsSci.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1497851&r1=1497850&r2=1497851&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Fri Jun 28 17:10:27 2013 @@ -523,7 +523,7 @@ public class WsSession implements Sessio } -protected String getHttpSessionId() { +public String getHttpSessionId() { return httpSessionId; } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1497851&r1=1497850&r2=1497851&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Fri Jun 28 17:10:27 2013 @@ -345,10 +345,9 @@ public class WsWebSocketContainer } -protected void registerSession(Object endpointInstance, -WsSession wsSession) { +protected void registerSession(Endpoint endpoint, WsSession wsSession) { -Class endpointClazz = endpointInstance.getClass(); +Class endpointClazz = endpoint.getClass(); if (!wsSession.isOpen()) { // The session was closed during onOpen. No need to register it. @@ -369,10 +368,9 @@ public class WsWebSocketContainer } -protected void unregisterSession(Object endpointInstance, -WsSession wsSession) { +protected void unregisterSession(Endpoint endpoint, WsSession wsSession) { -Class endpointClazz = endpointInstance.getClass(); +Class endpointClazz = endpoint.getClass(); synchronized (endPointSessionMapLock) { Set wsSessions = endpointSessionMap.get(endpointClazz); Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsSci.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsSci.java?rev=1497851&r1=1497850&r2=1497851&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsSci.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsSci.java Fri Jun 28 17:10:27 2013 @@ -126,12 +126,15 @@ public class WsSci implements ServletCon static WsServerContainer init(ServletContext servletContext) { + WsServerContainer sc = WsServerContainer.getServerContainer(); sc.setServletContext(servletContext); servletContext.setAttribute( Constants.SERVER_CONTAINER_SERVLET_CONTEXT_ATTRIBUTE, sc); +servletContext.addListener(new WsSessionListener(sc)); + return sc; } } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java?rev=1497851&r1=1497850&r2=1497851&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Fri Jun 28 17:10:27 2013 @@ -16,11 +16,13 @@ */ package org.apache.tomcat.websocket.server; +import java.io.IOException; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.EnumSet; import java.util.Map; +import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; import java.util.WeakHashMap; @@ -29,8 +31,11 @@ import java.util.concurrent.ConcurrentHa import javax.servlet.DispatcherType; import javax.servlet.FilterRegistration; import javax.servlet.ServletContext; +import javax.websocket.CloseReason; +import javax.websocket.CloseReason.CloseCodes; import javax.websocket.DeploymentException; import javax.websocket.Encoder; +import javax.websocket.Endpoint; import javax.websocket.server.ServerContainer; import javax.websocke
Re: svn commit: r1497670 - /tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
On Jun 28, 2013, at 11:27 AM, Mark Thomas wrote: > On 28/06/2013 17:00, Nick Williams wrote: >> >> On Jun 28, 2013, at 2:35 AM, ma...@apache.org wrote: >> >>> Author: markt Date: Fri Jun 28 07:35:49 2013 New Revision: 1497670 >>> >>> URL: http://svn.apache.org/r1497670 Log: WebSocket 1.0, section >>> 8.2 There is an implied restriction that any initial upgrade >>> request must use HTTP GET. >>> >>> +!"GET".equals(((HttpServletRequest) >>> request).getMethod())) { // Not an HTTP request that includes a >>> valid upgrade request to // web socket +// Note: RFC >>> 2616 does not limit HTTP upgrade to GET requests but + >>> // the the Java WebSocket spec 1.0, section 8.2 implies such >>> a +// limitation >> >> Unfortunate that the Java WebSocket spec is in direct contradiction >> with the RFC spec. > > Please provide a reference for the part of RFC 6455 you believe this > change violates. I was going off your comment, which originally suggested this was the case. However, now that you have clarified your comment, my comments are no longer applicable. Nick - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[jira] [Commented] (MTOMCAT-195) Plugin uploads WAR file twice
[ https://issues.apache.org/jira/browse/MTOMCAT-195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13695606#comment-13695606 ] Quintin Siebers commented on MTOMCAT-195: - Same issue here, except it happens 3 times: [INFO] --- tomcat6-maven-plugin:2.0:deploy (default) @ kamala-cloud --- [INFO] Deploying war to http://kamala.mssm.nl/ Uploading: http://kamala.mssm.nl/manager/deploy?path=%2F&update=true Uploaded: http://kamala.mssm.nl/manager/deploy?path=%2F&update=true (50544 KB at 698.3 KB/sec) Uploading: https://kamala.mssm.nl/manager/deploy?path=%2F&update=true/deploy?path=%2F&update=true Uploaded: https://kamala.mssm.nl/manager/deploy?path=%2F&update=true/deploy?path=%2F&update=true (50544 KB at 687.8 KB/sec) Uploading: https://kamala.mssm.nl/manager/deploy?path=%2F&update=true/deploy?path=%2F&update=true Uploaded: https://kamala.mssm.nl/manager/deploy?path=%2F&update=true/deploy?path=%2F&update=true (50544 KB at 686.9 KB/sec) [INFO] FAIL - Application already exists at path / It fails to upload because the path already exists, but my pom specifies it should update the current deployed webapp: true > Plugin uploads WAR file twice > - > > Key: MTOMCAT-195 > URL: https://issues.apache.org/jira/browse/MTOMCAT-195 > Project: Apache Tomcat Maven Plugin > Issue Type: Bug > Components: tomcat6 >Affects Versions: 2.0 > Environment: Win7/64, Maven 3.0.4 >Reporter: George Smith >Assignee: Olivier Lamy (*$^¨%`£) > > When I deploy my WAR using maven, the target war (exact the same one) is > being uploaded to the server twice. Can someone explain that? > I am using this on my module: > {code}clean install org.apache.tomcat.maven:tomcat6-maven-plugin:2.0:redeploy > {code} > From the Log file > {code =xml} > [INFO] --- maven-war-plugin:2.1.1:war (default-war) @ mobile-server --- > [INFO] Packaging webapp > [INFO] Assembling webapp [mobile-server] in > [C:\develope\mobile\mobile-server\target\mobile-server] > [INFO] Processing war project > [INFO] Copying webapp resources > [C:\develope\mobile\mobile-server\src\main\webapp] > [INFO] Webapp assembled in [241 msecs] > [INFO] Building war: C:\develope\mobile\mobile-server\target\mobile-server.war > [INFO] > [INFO] <<< tomcat6-maven-plugin:2.0:redeploy (default-cli) @ mobile-server <<< > [INFO] > [INFO] --- tomcat6-maven-plugin:2.0:redeploy (default-cli) @ mobile-server > --- > [INFO] Deploying war to http://myserver.eu/pra-mobile-server > Uploading: > http://myserver.eu/manager-test/deploy?path=%2Fmobile-server&update=true > Uploaded: > http://myserver.eu/manager-test/deploy?path=%2Fmobile-server&update=true > (12678 KB at 49.3 KB/sec) > Uploading: > http://myserver.eu/manager-test/deploy?path=%2Fmobile-server&update=true > Uploaded: > http://myserver.eu/manager-test/deploy?path=%2Fmobile-server&update=true > {code} > http://maven.apache.org/POM/4.0.0"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/maven-v4_0_0.xsd";> > 4.0.0 > > eu.company.prj.pramobile > mobile-parent > ../mobile-parent/pom.xml > 1.0-SNAPSHOT > > mobile-server > war > mobile server > > 1.1.2 > > > > com.springsource.repository.libs-milestone > SpringSource Enterprise Bundle Repository - libs > http://repo.springsource.org/libs-milestone/ > > > > > ${project.groupId} > mobile-test > ${project.version} > test > > > ${project.groupId} > mobile-common > ${project.version} > > > > org.springframework > spring-asm > ${version.spring} > > > org.springframework > spring-aop > ${version.spring} > > > org.springframework.security > spring-security-config > ${version.spring} > > > org.springframework > spring-web > ${version.spring} > > > org.springframework > spring-oxm > ${version.spring} > > > org.springframework > spring-webmvc > ${version.spring} > > > org.springframework.security > spring-security-web > ${version.spring} > > > commons-codec > commons-codec > 1.7 > > > javax.servlet > jsp-api > 2.0 > provided > > > commons-io > commons-io > 2.4 > > > commons-fileupload > commons-fileupload > 1.2.2 > > > javax.servlet > servlet-api > 2.5 > provided > > > javax.servlet >
[Bug 55155] running tomcat tests cause terminal to repeatedly grab focus (on os x)
https://issues.apache.org/bugzilla/show_bug.cgi?id=55155 Mark Thomas changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #4 from Mark Thomas --- I don;t see the described behaviour on OSX. This sounds like the AWT issue that has already been fixed in trunk. (change log entry: Update the JreMemoryLeakPreventionListener to take account of changes in the behaviour of java.beans.Introspector.flushCaches() and sun.awt.AppContext.getAppContext() in Java 7.) -- 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: r1497876 - in /tomcat/trunk/java/org/apache/jasper/el: ELContextImpl.java JasperELResolver.java
Author: markt Date: Fri Jun 28 18:53:13 2013 New Revision: 1497876 URL: http://svn.apache.org/r1497876 Log: Add TODOs for the EL 3.0 related changes in JSP 2.3 Modified: tomcat/trunk/java/org/apache/jasper/el/ELContextImpl.java tomcat/trunk/java/org/apache/jasper/el/JasperELResolver.java Modified: tomcat/trunk/java/org/apache/jasper/el/ELContextImpl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/el/ELContextImpl.java?rev=1497876&r1=1497875&r2=1497876&view=diff == --- tomcat/trunk/java/org/apache/jasper/el/ELContextImpl.java (original) +++ tomcat/trunk/java/org/apache/jasper/el/ELContextImpl.java Fri Jun 28 18:53:13 2013 @@ -128,6 +128,8 @@ public final class ELContextImpl extends public static ELResolver getDefaultResolver() { if (Constants.IS_SECURITY_ENABLED) { CompositeELResolver defaultResolver = new CompositeELResolver(); +// TODO ExpressionFactory.getStreamELResolver() +// TODO javax.el.StaticFieldResolver defaultResolver.add(new MapELResolver()); defaultResolver.add(new ResourceBundleELResolver()); defaultResolver.add(new ListELResolver()); Modified: tomcat/trunk/java/org/apache/jasper/el/JasperELResolver.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/el/JasperELResolver.java?rev=1497876&r1=1497875&r2=1497876&view=diff == --- tomcat/trunk/java/org/apache/jasper/el/JasperELResolver.java (original) +++ tomcat/trunk/java/org/apache/jasper/el/JasperELResolver.java Fri Jun 28 18:53:13 2013 @@ -51,6 +51,8 @@ public class JasperELResolver extends Co for (ELResolver appResolver : appResolvers) { add(appResolver); } +// TODO ExpressionFactory.getStreamELResolver() +// TODO javax.el.StaticFieldResolver add(new MapELResolver()); add(new ResourceBundleELResolver()); add(new ListELResolver()); @@ -80,6 +82,7 @@ public class JasperELResolver extends Co throws NullPointerException, PropertyNotFoundException, ELException { context.setPropertyResolved(false); +// TODO Review this once the additional resolvers have been implemented int start; Object result = null; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1497878 - in /tomcat/trunk/java/org/apache/jasper: resources/LocalStrings.properties servlet/JspServlet.java
Author: markt Date: Fri Jun 28 18:53:47 2013 New Revision: 1497878 URL: http://svn.apache.org/r1497878 Log: JSP 2.3, section JSP.11.1 Reduce supported verbs to GET, POST and HEAD Modified: tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties tomcat/trunk/java/org/apache/jasper/servlet/JspServlet.java Modified: tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties?rev=1497878&r1=1497877&r2=1497878&view=diff == --- tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties Fri Jun 28 18:53:47 2013 @@ -367,6 +367,9 @@ jsp.error.tag.invalid.trimdirectivewhite jsp.error.page.conflict.trimdirectivewhitespaces=Page directive: illegal to have multiple occurrences of 'trimDirectiveWhitespaces' with different values (old: {0}, new: {1}) jsp.error.tag.conflict.trimdirectivewhitespaces=Tag directive: illegal to have multiple occurrences of 'trimDirectiveWhitespaces' with different values (old: {0}, new: {1}) +# JSP Servlet +jsp.error.servlet.invalid.method=JSPs only permit GET POST or HEAD + # JarScanner jsp.warning.noJarScanner=Warning: No org.apache.tomcat.JarScanner set in ServletContext. Falling back to default JarScanner implementation. Modified: tomcat/trunk/java/org/apache/jasper/servlet/JspServlet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/servlet/JspServlet.java?rev=1497878&r1=1497877&r2=1497878&view=diff == --- tomcat/trunk/java/org/apache/jasper/servlet/JspServlet.java (original) +++ tomcat/trunk/java/org/apache/jasper/servlet/JspServlet.java Fri Jun 28 18:53:47 2013 @@ -280,6 +280,19 @@ public class JspServlet extends HttpServ public void service (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + +String method = request.getMethod(); + +if (!"GET".equals(method) && !"POST".equals(method) && +!"HEAD".equals(method)) { +// Specification states behaviour is undefined +// Jasper opts to reject any other verbs, partly as they are +// unlikely to make sense in a JSP context and partly to protect +// against verb tampering +response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, +Localizer.getMessage("jsp.error.servlet.invalid.method")); +} + //jspFile may be configured as an init-param for this servlet instance String jspUri = jspFile; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 55155] running tomcat tests cause terminal to repeatedly grab focus (on os x)
https://issues.apache.org/bugzilla/show_bug.cgi?id=55155 --- Comment #5 from Casey Lucas --- I ran the tests (again) after updating trunk. Same results (lots of window focus change). Are you trying the osx built-in Terminal app? Maybe that has something to do with it. I'm running tests under jdk6. I'll try some more variations. -- 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: r1497894 - /tomcat/trunk/java/javax/el/ArrayELResolver.java
Author: markt Date: Fri Jun 28 19:10:42 2013 New Revision: 1497894 URL: http://svn.apache.org/r1497894 Log: Re-order to make checking against EL Spec RI easier Modified: tomcat/trunk/java/javax/el/ArrayELResolver.java Modified: tomcat/trunk/java/javax/el/ArrayELResolver.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ArrayELResolver.java?rev=1497894&r1=1497893&r2=1497894&view=diff == --- tomcat/trunk/java/javax/el/ArrayELResolver.java (original) +++ tomcat/trunk/java/javax/el/ArrayELResolver.java Fri Jun 28 19:10:42 2013 @@ -35,7 +35,7 @@ public class ArrayELResolver extends ELR } @Override -public Object getValue(ELContext context, Object base, Object property) +public Class getType(ELContext context, Object base, Object property) throws NullPointerException, PropertyNotFoundException, ELException { if (context == null) { throw new NullPointerException(); @@ -44,17 +44,15 @@ public class ArrayELResolver extends ELR if (base != null && base.getClass().isArray()) { context.setPropertyResolved(true); int idx = coerce(property); -if (idx < 0 || idx >= Array.getLength(base)) { -return null; -} -return Array.get(base, idx); +checkBounds(base, idx); +return base.getClass().getComponentType(); } return null; } @Override -public Class getType(ELContext context, Object base, Object property) +public Object getValue(ELContext context, Object base, Object property) throws NullPointerException, PropertyNotFoundException, ELException { if (context == null) { throw new NullPointerException(); @@ -63,8 +61,10 @@ public class ArrayELResolver extends ELR if (base != null && base.getClass().isArray()) { context.setPropertyResolved(true); int idx = coerce(property); -checkBounds(base, idx); -return base.getClass().getComponentType(); +if (idx < 0 || idx >= Array.getLength(base)) { +return null; +} +return Array.get(base, idx); } return null; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1497895 - /tomcat/trunk/java/javax/el/BeanELResolver.java
Author: markt Date: Fri Jun 28 19:13:07 2013 New Revision: 1497895 URL: http://svn.apache.org/r1497895 Log: Reduce visibility Modified: tomcat/trunk/java/javax/el/BeanELResolver.java Modified: tomcat/trunk/java/javax/el/BeanELResolver.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/BeanELResolver.java?rev=1497895&r1=1497894&r2=1497895&view=diff == --- tomcat/trunk/java/javax/el/BeanELResolver.java (original) +++ tomcat/trunk/java/javax/el/BeanELResolver.java Fri Jun 28 19:13:07 2013 @@ -211,7 +211,7 @@ public class BeanELResolver extends ELRe return null; } -protected static final class BeanProperties { +static final class BeanProperties { private final Map properties; private final Class type; @@ -250,7 +250,7 @@ public class BeanELResolver extends ELRe } } -protected static final class BeanProperty { +static final class BeanProperty { private final Class type; private final Class owner; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1497896 - /tomcat/trunk/java/javax/el/BeanELResolver.java
Author: markt Date: Fri Jun 28 19:16:24 2013 New Revision: 1497896 URL: http://svn.apache.org/r1497896 Log: Re-order to make checking against EL Spec RI easier Modified: tomcat/trunk/java/javax/el/BeanELResolver.java Modified: tomcat/trunk/java/javax/el/BeanELResolver.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/BeanELResolver.java?rev=1497896&r1=1497895&r2=1497896&view=diff == --- tomcat/trunk/java/javax/el/BeanELResolver.java (original) +++ tomcat/trunk/java/javax/el/BeanELResolver.java Fri Jun 28 19:16:24 2013 @@ -72,6 +72,20 @@ public class BeanELResolver extends ELRe } @Override +public Class getType(ELContext context, Object base, Object property) +throws NullPointerException, PropertyNotFoundException, ELException { +if (context == null) { +throw new NullPointerException(); +} +if (base == null || property == null) { +return null; +} + +context.setPropertyResolved(true); +return this.property(context, base, property).getPropertyType(); +} + +@Override public Object getValue(ELContext context, Object base, Object property) throws NullPointerException, PropertyNotFoundException, ELException { if (context == null) { @@ -104,20 +118,6 @@ public class BeanELResolver extends ELRe } @Override -public Class getType(ELContext context, Object base, Object property) -throws NullPointerException, PropertyNotFoundException, ELException { -if (context == null) { -throw new NullPointerException(); -} -if (base == null || property == null) { -return null; -} - -context.setPropertyResolved(true); -return this.property(context, base, property).getPropertyType(); -} - -@Override public void setValue(ELContext context, Object base, Object property, Object value) throws NullPointerException, PropertyNotFoundException, PropertyNotWritableException, @@ -158,6 +158,113 @@ public class BeanELResolver extends ELRe } } +/** + * @since EL 2.2 + */ +@Override +public Object invoke(ELContext context, Object base, Object method, +Class[] paramTypes, Object[] params) { +if (context == null) { +throw new NullPointerException(); +} +if (base == null || method == null) { +return null; +} + +ExpressionFactory factory = ExpressionFactory.newInstance(); + +String methodName = (String) factory.coerceToType(method, String.class); + +// Find the matching method +Method matchingMethod = null; +Class clazz = base.getClass(); +if (paramTypes != null) { +try { +matchingMethod = +getMethod(clazz, clazz.getMethod(methodName, paramTypes)); +} catch (NoSuchMethodException e) { +throw new MethodNotFoundException(e); +} +} else { +int paramCount = 0; +if (params != null) { +paramCount = params.length; +} +Method[] methods = clazz.getMethods(); +for (Method m : methods) { +if (methodName.equals(m.getName())) { +if (m.getParameterTypes().length == paramCount) { +// Same number of parameters - use the first match +matchingMethod = getMethod(clazz, m); +break; +} +if (m.isVarArgs() +&& paramCount > m.getParameterTypes().length - 2) { +matchingMethod = getMethod(clazz, m); +} +} +} +if (matchingMethod == null) { +throw new MethodNotFoundException( +"Unable to find method [" + methodName + "] with [" ++ paramCount + "] parameters"); +} +} + +Class[] parameterTypes = matchingMethod.getParameterTypes(); +Object[] parameters = null; +if (parameterTypes.length > 0) { +parameters = new Object[parameterTypes.length]; +@SuppressWarnings("null") // params.length >= parameterTypes.length +int paramCount = params.length; +if (matchingMethod.isVarArgs()) { +int varArgIndex = parameterTypes.length - 1; +// First argCount-1 parameters are standard +for (int i = 0; (i < varArgIndex); i++) { +parameters[i] = factory.coerceToType(params[i], +parameterTypes[i]); +} +// Last parameter is the varargs +Class varArgClass = +
[Bug 55155] running tomcat tests cause terminal to repeatedly grab focus (on os x)
https://issues.apache.org/bugzilla/show_bug.cgi?id=55155 Mark Thomas changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|WORKSFORME |--- --- Comment #6 from Mark Thomas --- OK, I do see it with Java 6. It would have helped if you mentioned that in your original report. -- 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 55155] running tomcat tests cause terminal to repeatedly grab focus (on os x)
https://issues.apache.org/bugzilla/show_bug.cgi?id=55155 --- Comment #7 from Casey Lucas --- Sorry for not mentioning the jdk version originally. More digging revealed what I believe to be a better fix for the problem: https://developer.apple.com/library/mac/#documentation/Java/Reference/Java_PropertiesRef/Articles/JavaSystemProperties.html (See apple.awt.UIElement property.) Setting it to true allows awt calls but does not steal focus. I'll add a new patch. -- 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 55155] running tomcat tests cause terminal to repeatedly grab focus (on os x)
https://issues.apache.org/bugzilla/show_bug.cgi?id=55155 --- Comment #8 from Casey Lucas --- Created attachment 30497 --> https://issues.apache.org/bugzilla/attachment.cgi?id=30497&action=edit set apple.awt.UIElement=true -- 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
[Tomcat Wiki] Update of "TomcatVersions" by markt
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change notification. The "TomcatVersions" page has been changed by markt: https://wiki.apache.org/tomcat/TomcatVersions?action=diff&rev1=20&rev2=21 Comment: Add Tomcat 8 (mainly to test the wiki after an OS upgrade) It is anticipated that releases will be provided for a maximum of 3 major versions at any one time. The "Process" field in the following tables documents what development model is accepted by that project, either [[http://www.apache.org/foundation/glossary.html#ReviewThenCommit|Review-Then-Commit]] or [[http://www.apache.org/foundation/glossary.html#CommitThenReview|Commit-Then-Review]]. For RTC model the changes are first proposed in the `STATUS.txt` file in the root of the project and have to gain at least 3 "`+1`" votes before being applied. The project members have agreed on several [[#RTC_Exceptions|exceptions]] from the RTC rule (documented below). + + = Tomcat 8.0.x = + ||Spec versions: ||Servlet 3.1, JSP 2.3, EL 3.0, WebSocket 1.0 || + ||Stable: ||No || + ||Enhancements: ||Yes || + ||Bug Fixes: ||Yes || + ||Security Fixes: ||Yes || + ||Releases: ||Not yet || + ||Release Manager: ||TBD || + ||Process: ||CTR || + ||Listed on download pages: ||No || = Tomcat 7.0.x = ||Spec versions: ||Servlet 3.0, JSP 2.2, EL 2.2 || - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org