Processing /target/tmp/mail.mbox
Exception in thread "main" java.lang.OutOfMemoryError
at java.base/java.lang.AbstractStringBuilder.hugeCapacity(AbstractStringBuilder.java:214)
at java.base/java.lang.AbstractStringBuilder.newCapacity(AbstractStringBuilder.java:206)
at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:173)
at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:538)
at java.base/java.lang.StringBuilder.append(StringBuilder.java:174)
at ca.queensu.cs.sail.mailboxmina2.common.MailboxParser.parseMessages(MailboxParser.java:103)
at ca.queensu.cs.sail.mailboxmina2.main.modules.InsertModule.storeInDatabase(InsertModule.java:121)
at ca.queensu.cs.sail.mailboxmina2.main.modules.InsertModule.run(InsertModule.java:88)
at ca.queensu.cs.sail.mailboxmina2.main.Main.main(Main.java:79)
The mbox file is 2.7GB. I've increased heap size to 12000M (see below, on a 16GB RAM macbook) but the error persists.
echo "Creating database ${DB_NAME}"
java -Xmx4096M -jar $CWD/mailboxmina2-0.0.1-SNAPSHOT.jar -connection $URL/ -username $USER -password $PASS -dbname $DB_NAME -module create -drop true
echo "Populating database ${DB_NAME}"
# -Djavax.activation.debug=true
java -Xmx12000M -jar $CWD/mailboxmina2-0.0.1-SNAPSHOT.jar -connection $URL/$DB_NAME -username $USER -password $PASS -module insert -debug -logfile ${BASE}-insert.log -verbosity 3 -path $TMP
rm -Rf $TMP
echo "Unifying duplicate email addresses in database ${DB_NAME}"
java -Xmx12000M -jar $CWD/mailboxmina2-0.0.1-SNAPSHOT.jar -connection $URL/$DB_NAME -username $USER -password $PASS -module persons -debug -logfile ${BASE}-persons.log -verbosity 3
echo "Recovering threads from database ${DB_NAME}"
java -Xmx12000M -jar $CWD/mailboxmina2-0.0.1-SNAPSHOT.jar -connection $URL/$DB_NAME -username $USER -password $PASS -module threads -debug -logfile ${BASE}-threads.log -verbosity 3