I am building a Gerrit site with multiple master java instances, for better availability and load balancing. I have shared rmdbs database, shared repo storage. Now I'm stuck in moving indexing service to Solr.
I use Gerrit 2.10.1 and Solr 4.3.1. Exceptions occurred with below messages when I do gerrit-reindex, `java -jar ./bin/gerrit.war reindex'.
Then I removed the exception handling code in Gerrit's Solr module. In this file: gerrit-solr/src/main/java/com/google/gerrit/solr/SolrChangeIndex.java
throws OrmException {
String name = values.getField().getName();
FieldType<?> type = values.getField().getType();
if (type == FieldType.INTEGER) {
for (Object value : values.getValues()) {
doc.addField(name, (Integer) value);
}
} else if (type == FieldType.LONG) {
for (Object value : values.getValues()) {
doc.addField(name, (Long) value);
}
} else if (type == FieldType.TIMESTAMP) {
@SuppressWarnings("deprecation")
boolean legacy = values.getField() == ChangeField.LEGACY_UPDATED;
if (legacy) {
for (Object value : values.getValues()) {
int t = queryBuilder.toIndexTimeInMinutes((Timestamp) value);
doc.addField(name, t);
}
} else {
for (Object value : values.getValues()) {
doc.addField(name, ((Timestamp) value).getTime());
}
}
} else if (type == FieldType.EXACT
|| type == FieldType.PREFIX
|| type == FieldType.FULL_TEXT) {
for (Object value : values.getValues()) {
doc.addField(name, (String) value);
}
} else {
throw QueryBuilder.badFieldType(type);
}
}
Just wonders if there is any side effects of ignoring this exception. Would appreciate any insight to this question or any better solution for the index issue. Thanks.