Property changes on: . ___________________________________________________________________ Modified: svn:mergeinfo Merged /kernel/trunk:r121962 Index: kernel-impl/src/main/java/org/sakaiproject/tool/impl/SessionComponent.java =================================================================== --- kernel-impl/src/main/java/org/sakaiproject/tool/impl/SessionComponent.java (revision 125736) +++ kernel-impl/src/main/java/org/sakaiproject/tool/impl/SessionComponent.java (working copy) @@ -22,6 +22,7 @@ package org.sakaiproject.tool.impl; import java.io.UnsupportedEncodingException; +import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.Principal; @@ -255,7 +256,9 @@ } sha.update(salt); - sessionId = byteArrayToHexStr(sha.digest()); + // Encode to a sessionId using the base-36 representation (to fit 160 bits in < 36 chars) + BigInteger sessionDigest= new BigInteger(1,sha.digest()); + sessionId = sessionDigest.toString(36); } catch (NoSuchAlgorithmException e) { // Fallback to new uuid rather than a non-hashed id sessionId = idManager().createUuid(); @@ -568,18 +571,4 @@ this.sessionListener = sessionListener; } - private static String byteArrayToHexStr(byte[] data) - { - char[] chars = new char[data.length * 2]; - for (int i = 0; i < data.length; i++) - { - byte current = data[i]; - int hi = (current & 0xF0) >> 4; - int lo = current & 0x0F; - chars[2*i] = (char) (hi < 10 ? ('0' + hi) : ('A' + hi - 10)); - chars[2*i+1] = (char) (lo < 10 ? ('0' + lo) : ('A' + lo - 10)); - } - return new String(chars); - } - } Index: kernel-impl/src/main/java/org/sakaiproject/event/impl/UsageSessionServiceAdaptor.java =================================================================== --- kernel-impl/src/main/java/org/sakaiproject/event/impl/UsageSessionServiceAdaptor.java (revision 125736) +++ kernel-impl/src/main/java/org/sakaiproject/event/impl/UsageSessionServiceAdaptor.java (working copy) @@ -936,8 +936,8 @@ }); if (!ok) { - M_log.warn(".addSession(): dbWrite failed"); - return false; + //Perform an update instead + updateSessionServer(session); } return true;