IdHashShardingStrategy fails after 1.7M id is generated
-------------------------------------------------------
Key: HIBERNATE-101
URL:
https://jira.jboss.org/jira/browse/HIBERNATE-101
Project: Hibernate
Issue Type: Bug
Reporter: Rafal Glowacz
Assignee: Steve Ebersole
public class IdShardingStrategyTest extends TestCase
{
private IdHashShardingStrategy _defaultIdStrategy;
private IdShardingStrategy _idStrategy;
protected void setUp() throws Exception {
_idStrategy = new IdShardingStrategy();
_idStrategy.initialize(null, createDirectoryProviders());
_defaultIdStrategy = new IdHashShardingStrategy();
_defaultIdStrategy.initialize(null, createDirectoryProviders());
}
private DirectoryProvider[] createDirectoryProviders() {
return new DirectoryProvider[]{new MockDirectoryProvider(),
new MockDirectoryProvider(),
new MockDirectoryProvider()};
}
public void testIdSharding() {
long id = 1;
long limit = 1000 * 1000000 * 1000000L;
try {
while (id < limit) {
generateForAddition(_idStrategy, id);
generateForDeletion(_idStrategy, id);
id += 129653153;
}
} catch (Exception e) {
fail("Couldn't get directory for id " + id);
}
}
public void testIdHashSharding() {
long id = 1;
long limit = 1000 * 1000000 * 1000000L;
try {
while (id < limit) {
generateForAddition(_defaultIdStrategy, id);
generateForDeletion(_defaultIdStrategy, id);
id += 129653153;
}
fail("Should fail with ArrayIndexOutOfBoundsException for long
id");
} catch (Exception e) {
}
}
private MockDirectoryProvider generateForAddition(IndexShardingStrategy strategy, long
id) {
return (MockDirectoryProvider) strategy.getDirectoryProviderForAddition(null, id,
id + "", null);
}
private DirectoryProvider[] generateForDeletion(IndexShardingStrategy strategy, long
id) {
return strategy.getDirectoryProvidersForDeletion(null, id, id + "");
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira