Changed 'version' column from TINYINT to SMALLINT

- Tables are 'alf_prop_root' and 'alf_audit_app'
 - Added property test to update past the SMALLINT rollover to test reversion to 0
 - To modify your tables (not absolutely necessary)
   alter table alf_audit_app modify version SMALLINT NOT NULL;
   alter table alf_prop_root modify version SMALLINT NOT NULL;


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16320 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2009-09-16 16:55:37 +00:00
parent 0c183b7141
commit 95bfde2d56
5 changed files with 35 additions and 6 deletions

View File

@@ -26,9 +26,11 @@ package org.alfresco.repo.domain.propval;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Random;
@@ -587,6 +589,29 @@ public class PropertyValueDAOTest extends TestCase
assertEquals(list, entityValueCheck);
}
public void testProperty_UpdateToVersionRollover() throws Exception
{
final List<String> list = Collections.emptyList();
final Long propId = runPropertyTest((Serializable)list);
// Do 1000 updates to a property
RetryingTransactionCallback<Void> updateThousandsCallback = new RetryingTransactionCallback<Void>()
{
public Void execute() throws Throwable
{
for (int i = 0; i < 1000; i++)
{
propertyValueDAO.updateProperty(propId, (Serializable)list);
}
return null;
}
};
for (int i = 0; i < (Short.MAX_VALUE / 1000 + 1); i++)
{
txnHelper.doInTransaction(updateThousandsCallback, false);
}
}
public void testProperty_Delete() throws Exception
{
final ArrayList<String> list = new ArrayList<String>(20);