Author: tv Date: Sun Oct 30 18:04:54 2011 New Revision: 1195199 URL: http://svn.apache.org/viewvc?rev=1195199&view=rev Log: Change DB type of column CREATE_TIME to TIMESTAMP, Rename column CREATE_TIME_SECONDS to UPDATE_TIME_SECONDS. Fixes JCS-84
Modified: commons/proper/jcs/trunk/src/changes/changes.xml commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/jdbc/JDBCDiskCache.java commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/disk/jdbc/HsqlSetupTableUtil.java Modified: commons/proper/jcs/trunk/src/changes/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/changes/changes.xml?rev=1195199&r1=1195198&r2=1195199&view=diff ============================================================================== --- commons/proper/jcs/trunk/src/changes/changes.xml (original) +++ commons/proper/jcs/trunk/src/changes/changes.xml Sun Oct 30 18:04:54 2011 @@ -20,6 +20,10 @@ </properties> <body> <release version="2.0" date="unreleased" description="JDK 1.5 based major release"> + <action dev="tv" type="fix" issue="JCS-84" due-to="Aleksandar Ivanisevic"> + Increase precision of CREATE_TIME, fix name of UPDATE_TIME_SECONDS + column. + </action> <action dev="tv" type="update"> Update IndexDisk and BlockDisk to use NIO in an attempt to fix a timing-dependent test failure. Modified: commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/jdbc/JDBCDiskCache.java URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/jdbc/JDBCDiskCache.java?rev=1195199&r1=1195198&r2=1195199&view=diff ============================================================================== --- commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/jdbc/JDBCDiskCache.java (original) +++ commons/proper/jcs/trunk/src/java/org/apache/jcs/auxiliary/disk/jdbc/JDBCDiskCache.java Sun Oct 30 18:04:54 2011 @@ -22,7 +22,7 @@ package org.apache.jcs.auxiliary.disk.jd import java.io.IOException; import java.io.Serializable; import java.sql.Connection; -import java.sql.Date; +import java.sql.Timestamp; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -62,8 +62,8 @@ import org.apache.jcs.utils.serializatio * CACHE_KEY VARCHAR(250) NOT NULL, * REGION VARCHAR(250) NOT NULL, * ELEMENT BLOB, - * CREATE_TIME DATE, - * CREATE_TIME_SECONDS BIGINT, + * CREATE_TIME TIMESTAMP, + * UPDATE_TIME_SECONDS BIGINT, * MAX_LIFE_SECONDS BIGINT, * SYSTEM_EXPIRE_TIME_SECONDS BIGINT, * IS_ETERNAL CHAR(1), @@ -328,7 +328,7 @@ public class JDBCDiskCache { String sqlI = "insert into " + getJdbcDiskCacheAttributes().getTableName() - + " (CACHE_KEY, REGION, ELEMENT, MAX_LIFE_SECONDS, IS_ETERNAL, CREATE_TIME, CREATE_TIME_SECONDS, SYSTEM_EXPIRE_TIME_SECONDS) " + + " (CACHE_KEY, REGION, ELEMENT, MAX_LIFE_SECONDS, IS_ETERNAL, CREATE_TIME, UPDATE_TIME_SECONDS, SYSTEM_EXPIRE_TIME_SECONDS) " + " values (?, ?, ?, ?, ?, ?, ?, ?)"; PreparedStatement psInsert = con.prepareStatement( sqlI ); @@ -344,8 +344,8 @@ public class JDBCDiskCache { psInsert.setString( 5, "F" ); } - Date createTime = new Date( ce.getElementAttributes().getCreateTime() ); - psInsert.setDate( 6, createTime ); + Timestamp createTime = new Timestamp( ce.getElementAttributes().getCreateTime() ); + psInsert.setTimestamp( 6, createTime ); long now = System.currentTimeMillis() / 1000; psInsert.setLong( 7, now ); @@ -392,13 +392,13 @@ public class JDBCDiskCache try { sqlU = "update " + getJdbcDiskCacheAttributes().getTableName() - + " set ELEMENT = ?, CREATE_TIME = ?, CREATE_TIME_SECONDS = ?, " + " SYSTEM_EXPIRE_TIME_SECONDS = ? " + + " set ELEMENT = ?, CREATE_TIME = ?, UPDATE_TIME_SECONDS = ?, " + " SYSTEM_EXPIRE_TIME_SECONDS = ? " + " where CACHE_KEY = ? and REGION = ?"; PreparedStatement psUpdate = con.prepareStatement( sqlU ); psUpdate.setBytes( 1, element ); - Date createTime = new Date( ce.getElementAttributes().getCreateTime() ); - psUpdate.setDate( 2, createTime ); + Timestamp createTime = new Timestamp( ce.getElementAttributes().getCreateTime() ); + psUpdate.setTimestamp( 2, createTime ); long now = System.currentTimeMillis() / 1000; psUpdate.setLong( 3, now ); @@ -876,7 +876,7 @@ public class JDBCDiskCache // String sql = "delete from " + // getJdbcDiskCacheAttributes().getTableName() + " where REGION = '" // + this.getCacheName() + "' and IS_ETERNAL = 'F' and (" + now - // + " - CREATE_TIME_SECONDS) > MAX_LIFE_SECONDS"; + // + " - UPDATE_TIME_SECONDS) > MAX_LIFE_SECONDS"; String sql = "delete from " + getJdbcDiskCacheAttributes().getTableName() + " where IS_ETERNAL = ? and REGION = ? and ? > SYSTEM_EXPIRE_TIME_SECONDS"; Modified: commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/disk/jdbc/HsqlSetupTableUtil.java URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/disk/jdbc/HsqlSetupTableUtil.java?rev=1195199&r1=1195198&r2=1195199&view=diff ============================================================================== --- commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/disk/jdbc/HsqlSetupTableUtil.java (original) +++ commons/proper/jcs/trunk/src/test/org/apache/jcs/auxiliary/disk/jdbc/HsqlSetupTableUtil.java Sun Oct 30 18:04:54 2011 @@ -11,7 +11,7 @@ public class HsqlSetupTableUtil * SETUP a TABLE FOR CACHE testing * <p> * @param cConn - * @param tableName + * @param tableName */ public static void setupTABLE( Connection cConn, String tableName ) { @@ -23,8 +23,8 @@ public class HsqlSetupTableUtil createSql.append( "CACHE_KEY VARCHAR(250) NOT NULL, " ); createSql.append( "REGION VARCHAR(250) NOT NULL, " ); createSql.append( "ELEMENT BINARY, " ); - createSql.append( "CREATE_TIME DATE, " ); - createSql.append( "CREATE_TIME_SECONDS BIGINT, " ); + createSql.append( "CREATE_TIME TIMESTAMP, " ); + createSql.append( "UPDATE_TIME_SECONDS BIGINT, " ); createSql.append( "MAX_LIFE_SECONDS BIGINT, " ); createSql.append( "SYSTEM_EXPIRE_TIME_SECONDS BIGINT, " ); createSql.append( "IS_ETERNAL CHAR(1), " );