in indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java [336:368]
public Document readDocument() throws IOException {
int fieldCount;
try {
fieldCount = dis.readInt();
} catch (EOFException ex) {
return null; // no more documents
}
Document doc = new Document();
for (int i = 0; i < fieldCount; i++) {
doc.add(readField());
}
// Fix up UINFO field wrt MINDEXER-41
final Field uinfoField = (Field) doc.getField(ArtifactInfo.UINFO);
final String info = doc.get(ArtifactInfo.INFO);
if (uinfoField != null && info != null && !info.isEmpty()) {
String uinfoString = uinfoField.stringValue();
if (uinfoString.endsWith(ArtifactInfo.FS + ArtifactInfo.NA)) {
int elem = 0;
for (int i = -1; (i = info.indexOf(ArtifactInfo.FS, i + 1)) != -1; ) {
if (++elem == 6) { // extension is field 6
String extension = info.substring(i + 1);
uinfoField.setStringValue(uinfoString + ArtifactInfo.FS + ArtifactInfo.nvl(extension));
break;
}
}
}
}
return doc;
}