[prev in list] [next in list] [prev in thread] [next in thread]
List: tomcat-dev
Subject: cvs commit: jakarta-tomcat-catalina/webapps/docs changelog.xml
From: remm () apache ! org
Date: 2005-03-31 10:31:54
Message-ID: 20050331103154.82003.qmail () minotaur ! apache ! org
[Download RAW message or body]
remm 2005/03/31 02:31:54
Modified: catalina/src/share/org/apache/catalina/session
ManagerBase.java FileStore.java StoreBase.java
StandardSession.java StandardManager.java
PersistentManagerBase.java JDBCStore.java
modules/cluster/src/share/org/apache/catalina/cluster/tcp
ReplicationValve.java
catalina/src/share/org/apache/catalina Session.java
catalina/src/share/org/apache/catalina/connector
Response.java Request.java
modules/cluster/src/share/org/apache/catalina/cluster/session
ReplicatedSession.java DeltaSession.java
SimpleTcpReplicationManager.java
JvmRouteBinderValve.java
catalina/src/share/org/apache/catalina/authenticator
FormAuthenticator.java
catalina/src/share/org/apache/catalina/valves
PersistentValve.java AccessLogValve.java
webapps/docs changelog.xml
Log:
- Add back Jan's getId ISE patch.
- Add new Session.getIdInternal method, so that getId remains a safe call for \
internal components.
Revision Changes Path
1.41 +3 -3 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/ManagerBase.java
Index: ManagerBase.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/ManagerBase.java,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- ManagerBase.java 15 Feb 2005 21:10:35 -0000 1.40
+++ ManagerBase.java 31 Mar 2005 10:31:53 -0000 1.41
@@ -706,7 +706,7 @@
public void add(Session session) {
synchronized (sessions) {
- sessions.put(session.getId(), session);
+ sessions.put(session.getIdInternal(), session);
if( sessions.size() > maxActive ) {
maxActive=sessions.size();
}
@@ -849,7 +849,7 @@
public void remove(Session session) {
synchronized (sessions) {
- sessions.remove(session.getId());
+ sessions.remove(session.getIdInternal());
}
}
1.7 +3 -3 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/FileStore.java \
Index: FileStore.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/FileStore.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- FileStore.java 17 Nov 2004 15:00:48 -0000 1.6
+++ FileStore.java 31 Mar 2005 10:31:53 -0000 1.7
@@ -343,13 +343,13 @@
public void save(Session session) throws IOException {
// Open an output stream to the specified pathname, if any
- File file = file(session.getId());
+ File file = file(session.getIdInternal());
if (file == null) {
return;
}
if (manager.getContainer().getLogger().isDebugEnabled()) {
manager.getContainer().getLogger().debug(sm.getString(getStoreName()+".saving",
- session.getId(), file.getAbsolutePath()));
+ session.getIdInternal(), file.getAbsolutePath()));
}
FileOutputStream fos = null;
ObjectOutputStream oos = null;
1.11 +2 -2 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StoreBase.java \
Index: StoreBase.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StoreBase.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- StoreBase.java 2 Nov 2004 19:07:51 -0000 1.10
+++ StoreBase.java 31 Mar 2005 10:31:53 -0000 1.11
@@ -208,7 +208,7 @@
// expire swapped out session
session.expire();
}
- remove(session.getId());
+ remove(session.getIdInternal());
} catch (Exception e) {
manager.getContainer().getLogger().error("Session: "+keys[i]+"; ", \
e); try {
1.57 +3 -3 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java
Index: StandardSession.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- StandardSession.java 30 Mar 2005 15:50:40 -0000 1.56
+++ StandardSession.java 31 Mar 2005 10:31:53 -0000 1.57
@@ -321,10 +321,10 @@
*/
public String getId() {
- /*if ( !isValid() ) {
+ if ( !isValid() ) {
throw new IllegalStateException
(sm.getString("standardSession.getId.ise"));
- }*/
+ }
return (this.id);
1.30 +2 -2 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java
Index: StandardManager.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- StandardManager.java 30 Mar 2005 15:50:40 -0000 1.29
+++ StandardManager.java 31 Mar 2005 10:31:53 -0000 1.30
@@ -392,7 +392,7 @@
StandardSession session = getNewSession();
session.readObjectData(ois);
session.setManager(this);
- sessions.put(session.getId(), session);
+ sessions.put(session.getIdInternal(), session);
session.activate();
session.endAccess();
}
1.26 +6 -6 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java
Index: PersistentManagerBase.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- PersistentManagerBase.java 22 Nov 2004 16:35:18 -0000 1.25
+++ PersistentManagerBase.java 31 Mar 2005 10:31:53 -0000 1.26
@@ -674,7 +674,7 @@
super.remove (session);
if (store != null){
- removeSession(session.getId());
+ removeSession(session.getIdInternal());
}
}
@@ -851,7 +851,7 @@
}
} catch (IOException e) {
log.error(sm.getString
- ("persistentManager.serializeError", session.getId(), e));
+ ("persistentManager.serializeError", session.getIdInternal(), e));
throw e;
}
@@ -1036,7 +1036,7 @@
if (log.isDebugEnabled())
log.debug(sm.getString
("persistentManager.swapMaxIdle",
- session.getId(), new Integer(timeIdle)));
+ session.getIdInternal(), new Integer(timeIdle)));
try {
swapOut(session);
} catch (IOException e) {
@@ -1078,7 +1078,7 @@
if(log.isDebugEnabled())
log.debug(sm.getString
("persistentManager.swapTooManyActive",
- sessions[i].getId(), new Integer(timeIdle)));
+ sessions[i].getIdInternal(), new Integer(timeIdle)));
try {
swapOut(sessions[i]);
} catch (IOException e) {
@@ -1114,7 +1114,7 @@
if (log.isDebugEnabled())
log.debug(sm.getString
("persistentManager.backupMaxIdle",
- session.getId(), new Integer(timeIdle)));
+ session.getIdInternal(), new Integer(timeIdle)));
try {
writeSession(session);
1.14 +4 -4 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/JDBCStore.java \
Index: JDBCStore.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/JDBCStore.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- JDBCStore.java 7 Jan 2005 15:09:37 -0000 1.13
+++ JDBCStore.java 31 Mar 2005 10:31:53 -0000 1.14
@@ -754,7 +754,7 @@
// If sessions already exist in DB, remove and insert again.
// TODO:
// * Check if ID exists in database and if so use UPDATE.
- remove(session.getId());
+ remove(session.getIdInternal());
try {
bos = new ByteArrayOutputStream();
@@ -778,7 +778,7 @@
preparedSaveSql = _conn.prepareStatement(saveSql);
}
- preparedSaveSql.setString(1, session.getId());
+ preparedSaveSql.setString(1, session.getIdInternal());
preparedSaveSql.setString(2, getName());
preparedSaveSql.setBinaryStream(3, in, size);
preparedSaveSql.setString(4, session.isValid() ? "1" : "0");
@@ -812,7 +812,7 @@
if (manager.getContainer().getLogger().isDebugEnabled()) {
manager.getContainer().getLogger().debug(sm.getString(getStoreName() + \
".saving",
- session.getId(), sessionTable));
+ session.getIdInternal(), sessionTable));
}
}
1.18 +3 -3 \
jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationValve.java
Index: ReplicationValve.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationValve.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- ReplicationValve.java 11 Feb 2005 19:45:18 -0000 1.17
+++ ReplicationValve.java 31 Mar 2005 10:31:53 -0000 1.18
@@ -148,7 +148,7 @@
try
{
long start = System.currentTimeMillis();
- HttpSession session = request.getSession(false);
+ Session session = request.getSessionInternal(false);
if (!( request.getContext().getManager() instanceof ClusterManager) ) \
return;
@@ -175,7 +175,7 @@
String id = null;
if ( session != null )
- id = session.getId();
+ id = session.getIdInternal();
else
return;
1.6 +7 -1 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Session.java
Index: Session.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Session.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Session.java 30 Mar 2005 15:50:40 -0000 1.5
+++ Session.java 31 Mar 2005 10:31:53 -0000 1.6
@@ -104,6 +104,12 @@
/**
+ * Return the session identifier for this session.
+ */
+ public String getIdInternal();
+
+
+ /**
* Set the session identifier for this session.
*
* @param id The new session identifier
1.11 +9 -11 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/Response.java
Index: Response.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/Response.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Response.java 22 Nov 2004 16:35:18 -0000 1.10
+++ Response.java 31 Mar 2005 10:31:53 -0000 1.11
@@ -35,11 +35,10 @@
import javax.servlet.ServletOutputStream;
import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
import org.apache.catalina.Context;
+import org.apache.catalina.Session;
import org.apache.catalina.Wrapper;
import org.apache.catalina.util.CharsetMapper;
import org.apache.catalina.util.DateTool;
@@ -1043,7 +1042,7 @@
public String encodeRedirectURL(String url) {
if (isEncodeable(toAbsolute(url))) {
- return (toEncoded(url, request.getSession().getId()));
+ return (toEncoded(url, request.getSessionInternal().getIdInternal()));
} else {
return (url);
}
@@ -1079,7 +1078,7 @@
if (url.equalsIgnoreCase("")){
url = absolute;
}
- return (toEncoded(url, request.getSession().getId()));
+ return (toEncoded(url, request.getSessionInternal().getIdInternal()));
} else {
return (url);
}
@@ -1343,8 +1342,8 @@
return (false);
// Are we in a valid session that is not using cookies?
- final HttpServletRequest hreq = request;
- final HttpSession session = hreq.getSession(false);
+ final Request hreq = request;
+ final Session session = hreq.getSessionInternal(false);
if (session == null)
return (false);
if (hreq.isRequestedSessionIdFromCookie())
@@ -1363,9 +1362,8 @@
}
}
- private boolean doIsEncodeable(HttpServletRequest hreq,
- HttpSession session,
- String location){
+ private boolean doIsEncodeable(Request hreq, Session session,
+ String location) {
// Is this a valid absolute URL?
URL url = null;
try {
@@ -1401,7 +1399,7 @@
String file = url.getFile();
if ((file == null) || !file.startsWith(contextPath))
return (false);
- if( file.indexOf(";jsessionid=" + session.getId()) >= 0 )
+ if( file.indexOf(";jsessionid=" + session.getIdInternal()) >= 0 )
return (false);
}
1.20 +2 -2 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/Request.java \
Index: Request.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/Request.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- Request.java 7 Feb 2005 21:56:32 -0000 1.19
+++ Request.java 31 Mar 2005 10:31:53 -0000 1.20
@@ -2210,7 +2210,7 @@
if ((session != null) && (getContext() != null)
&& getContext().getCookies()) {
Cookie cookie = new Cookie(Globals.SESSION_COOKIE_NAME,
- session.getId());
+ session.getIdInternal());
configureSessionCookie(cookie);
response.addCookie(cookie);
}
1.16 +3 -3 \
jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/ReplicatedSession.java
Index: ReplicatedSession.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/ReplicatedSession.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- ReplicatedSession.java 1 Jul 2004 09:44:26 -0000 1.15
+++ ReplicatedSession.java 31 Mar 2005 10:31:54 -0000 1.16
@@ -143,14 +143,14 @@
public void expire() {
SimpleTcpReplicationManager mgr \
=(SimpleTcpReplicationManager)getManager();
- mgr.sessionInvalidated(getId());
+ mgr.sessionInvalidated(getIdInternal());
setIsDirty(true);
super.expire();
}
public void invalidate() {
SimpleTcpReplicationManager mgr \
=(SimpleTcpReplicationManager)getManager();
- mgr.sessionInvalidated(getId());
+ mgr.sessionInvalidated(getIdInternal());
setIsDirty(true);
super.invalidate();
}
@@ -254,7 +254,7 @@
public String toString() {
StringBuffer buf = new StringBuffer("ReplicatedSession id=");
- buf.append(getId()).append(" ref=").append(super.toString()).append("\n");
+ buf.append(getIdInternal()).append(" \
ref=").append(super.toString()).append("\n"); java.util.Enumeration e = \
getAttributeNames(); while ( e.hasMoreElements() ) {
String name = (String)e.nextElement();
1.31 +17 -1 \
jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaSession.java
Index: DeltaSession.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaSession.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- DeltaSession.java 3 Mar 2005 14:06:36 -0000 1.30
+++ DeltaSession.java 31 Mar 2005 10:31:54 -0000 1.31
@@ -330,10 +330,26 @@
*/
public String getId() {
+ if ( !isValid() ) {
+ throw new IllegalStateException
+ (sm.getString("standardSession.getId.ise"));
+ }
+
return (this.id);
}
+
+ /**
+ * Return the session identifier for this session.
+ */
+ public String getIdInternal() {
+
+ return (this.id);
+
+ }
+
+
/**
* Set the session identifier for this session.
*
1.37 +4 -4 \
jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/SimpleTcpReplicationManager.java
Index: SimpleTcpReplicationManager.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/SimpleTcpReplicationManager.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- SimpleTcpReplicationManager.java 22 Nov 2004 14:51:18 -0000 1.36
+++ SimpleTcpReplicationManager.java 31 Mar 2005 10:31:54 -0000 1.37
@@ -289,8 +289,8 @@
SessionMessage msg = new SessionMessageImpl(name,
SessionMessage.EVT_SESSION_CREATED,
writeSession(session),
- session.getId(),
- session.getId());
+ session.getIdInternal(),
+ session.getIdInternal());
return msg;
} //end if
}//end if
@@ -360,7 +360,7 @@
if (session==null) {
session = createSession(false, false);
- sessions.remove(session.getId());
+ sessions.remove(session.getIdInternal());
}
@@ -523,7 +523,7 @@
oout.writeInt(sessions.length);
for (int i=0; i<sessions.length; i++){
ReplicatedSession ses = (ReplicatedSession)sessions[i];
- oout.writeUTF(ses.getId());
+ oout.writeUTF(ses.getIdInternal());
byte[] data = writeSession(ses);
oout.writeObject(data);
}//for
1.4 +2 -2 \
jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java
Index: JvmRouteBinderValve.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JvmRouteBinderValve.java 14 Mar 2005 21:21:08 -0000 1.3
+++ JvmRouteBinderValve.java 31 Mar 2005 10:31:54 -0000 1.4
@@ -208,7 +208,7 @@
* @param response
*/
protected void handlePossibleTurnover(Request request, Response response) {
- HttpSession session = request.getSession(false);
+ Session session = request.getSessionInternal(false);
if (session != null) {
long t1 = System.currentTimeMillis();
String jvmRoute = getLocalJvmRoute();
@@ -221,7 +221,7 @@
if (log.isDebugEnabled())
log.debug(sm.getString("jvmRoute.skipURLSessionIDs"));
} else {
- handleJvmRoute(session.getId(), jvmRoute, request, response);
+ handleJvmRoute(session.getIdInternal(), jvmRoute, request, \
response); }
if (log.isInfoEnabled()) {
long t2 = System.currentTimeMillis();
1.19 +3 -3 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/authenticator/FormAuthenticator.java
Index: FormAuthenticator.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/authenticator/FormAuthenticator.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- FormAuthenticator.java 23 Feb 2005 19:27:56 -0000 1.18
+++ FormAuthenticator.java 31 Mar 2005 10:31:54 -0000 1.19
@@ -187,7 +187,7 @@
if (matchRequest(request)) {
session = request.getSessionInternal(true);
if (log.isDebugEnabled())
- log.debug("Restore request from session '" + session.getId()
+ log.debug("Restore request from session '" + \
session.getIdInternal() + "'");
principal = (Principal)
session.getNote(Constants.FORM_PRINCIPAL_NOTE);
@@ -229,7 +229,7 @@
if (!loginAction) {
session = request.getSessionInternal(true);
if (log.isDebugEnabled())
- log.debug("Save request in session '" + session.getId() + "'");
+ log.debug("Save request in session '" + session.getIdInternal() + \
"'"); saveRequest(request, session);
RequestDispatcher disp =
context.getServletContext().getRequestDispatcher
1.10 +4 -5 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/valves/PersistentValve.java
Index: PersistentValve.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/valves/PersistentValve.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- PersistentValve.java 29 Aug 2004 16:46:14 -0000 1.9
+++ PersistentValve.java 31 Mar 2005 10:31:54 -0000 1.10
@@ -22,7 +22,6 @@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
import org.apache.catalina.Context;
import org.apache.catalina.Manager;
@@ -149,15 +148,15 @@
// Read the sessionid after the response.
// HttpSession hsess = hreq.getSession(false);
- HttpSession hsess;
+ Session hsess;
try {
- hsess = request.getSession();
+ hsess = request.getSessionInternal();
} catch (Exception ex) {
hsess = null;
}
String newsessionId = null;
if (hsess!=null)
- newsessionId = hsess.getId();
+ newsessionId = hsess.getIdInternal();
if (container.getLogger().isDebugEnabled())
container.getLogger().debug("newsessionId: " + newsessionId);
1.16 +2 -2 \
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java
Index: AccessLogValve.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- AccessLogValve.java 28 Mar 2005 19:06:38 -0000 1.15
+++ AccessLogValve.java 31 Mar 2005 10:31:54 -0000 1.16
@@ -854,7 +854,7 @@
} else if (pattern == 'S') {
if (request != null)
if (request.getSession(false) != null)
- value = request.getSession(false).getId();
+ value = request.getSessionInternal(false).getIdInternal();
else value = "-";
else
value = "-";
1.278 +16 -1 jakarta-tomcat-catalina/webapps/docs/changelog.xml
Index: changelog.xml
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/changelog.xml,v
retrieving revision 1.277
retrieving revision 1.278
diff -u -r1.277 -r1.278
--- changelog.xml 30 Mar 2005 17:23:23 -0000 1.277
+++ changelog.xml 31 Mar 2005 10:31:54 -0000 1.278
@@ -38,6 +38,7 @@
</update>
</changelog>
</subsection>
+
<subsection name="Catalina">
<changelog>
<fix>
@@ -48,12 +49,26 @@
<bug>34220</bug>: Provide better error message when server.xml can't be \
located. [Modified patch from Ralf Hauser] (yoavs)
</add>
+ <fix>
+ <bug>33743</bug>: Add additional synchronization in webapp classloader to \
avoid + possible race condition when defining a class (remm)
+ </fix>
+ <fix>
+ <bug>33711</bug>: Add events on passivate and activate to cleanup SSO, and \
recycle + session objects when removing them from a manager (so that anyone \
keeping references + to it would leak a minimal amount of memory) (remm)
+ </fix>
+ <update>
+ Readd patch causing Session.getId to throw an ISE, and make all internal \
components + use a safe getIdInternal method (remm)
+ </update>
</changelog>
</subsection>
+
<subsection name="Jasper">
<changelog>
<fix>
- <bug>18477</bug>: Allow symbolic links when precompiling JSPs.(markt)
+ <bug>18477</bug>: Allow symbolic links when precompiling JSPs (markt)
</fix>
</changelog>
</subsection>
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic