You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/09/08 14:49:19 UTC
svn commit: r995034 -
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionState.java
Author: jukka
Date: Wed Sep 8 12:49:19 2010
New Revision: 995034
URL: http://svn.apache.org/viewvc?rev=995034&view=rev
Log:
JCR-2741: Improved logging for session operations
Postpone the SessionOperation.toString() calls to as late as possible.
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionState.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionState.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionState.java?rev=995034&r1=995033&r2=995034&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionState.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/session/SessionState.java Wed Sep 8 12:49:19 2010
@@ -124,9 +124,8 @@ public class SessionState {
public <T> T perform(SessionOperation<T> operation)
throws RepositoryException {
// Set MDC variables to reflect the current session and this operation
- LogState logState = new LogState(
- "jcr.session", context.toString(),
- "jcr.operation", operation.toString());
+ LogState logState =
+ new LogState("jcr.session", context, "jcr.operation", operation);
try {
// Acquire the exclusive lock for accessing session internals.
// No other session should be holding the lock, so we log a
@@ -191,9 +190,8 @@ public class SessionState {
* <code>false</code> if the session had already been closed
*/
public boolean close() {
- LogState logState = new LogState(
- "jcr.session", context.toString(),
- "jcr.operation", "close()");
+ LogState logState =
+ new LogState("jcr.session", context, "jcr.operation", "close()");
try {
if (!lock.tryLock()) {
log.warn("Attempt to close a session while another thread is"
@@ -226,13 +224,14 @@ public class SessionState {
*/
private static class LogState {
- private final String[] keyValuePairs;
+ private final Object[] keyValuePairs;
- public LogState(String... keyValuePairs) {
+ public LogState(Object... keyValuePairs) {
this.keyValuePairs = keyValuePairs;
for (int i = 0; i + 1 < keyValuePairs.length; i += 2) {
- if (MDC.get(keyValuePairs[i]) == null) {
- MDC.put(keyValuePairs[i], keyValuePairs[i + 1]);
+ String key = keyValuePairs[i].toString();
+ if (MDC.get(key) == null) {
+ MDC.put(key, keyValuePairs[i + 1].toString());
} else {
keyValuePairs[i + 1] = null;
}
@@ -242,7 +241,7 @@ public class SessionState {
public void reset() {
for (int i = 0; i + 1 < keyValuePairs.length; i += 2) {
if (keyValuePairs[i + 1] != null) {
- MDC.remove(keyValuePairs[i]);
+ MDC.remove(keyValuePairs[i].toString());
}
}
}