realrolfje/anonimatron

Could not generate a Roman name which was not generated before

Closed this issue · 2 comments

./anonimatron.sh -config ./config.xml
Logs, screenshots

AnonymException in thread "main" java.lang.RuntimeException: java.lang.UnsupportedOperationException: Could not generate a Roman name which was not generated before and fits within the given column size of 255.
	at com.rolfje.anonimatron.jdbc.JdbcAnonymizerService.processTableColumns(JdbcAnonymizerService.java:221)
	at com.rolfje.anonimatron.jdbc.JdbcAnonymizerService.anonymizeTableInPlace(JdbcAnonymizerService.java:128)
	at com.rolfje.anonimatron.jdbc.JdbcAnonymizerService.anonymize(JdbcAnonymizerService.java:81)
	at com.rolfje.anonimatron.Anonimatron.anonymize(Anonimatron.java:94)
	at com.rolfje.anonimatron.Anonimatron.main(Anonimatron.java:48)
Caused by: java.lang.UnsupportedOperationException: Could not generate a Roman name which was not generated before and fits within the given column size of 255.
	at com.rolfje.anonimatron.anonymizer.AbstractNameGenerator.getName(AbstractNameGenerator.java:417)
	at com.rolfje.anonimatron.anonymizer.AbstractNameGenerator.anonymize(AbstractNameGenerator.java:402)
	at com.rolfje.anonimatron.anonymizer.Anonymizer.anonymize(Anonymizer.java:57)
	at com.rolfje.anonimatron.anonymizer.AnonymizerService.anonymize(AnonymizerService.java:92)
	at com.rolfje.anonimatron.jdbc.JdbcAnonymizerService.lambda$anonymizeTableInPlace$2(JdbcAnonymizerService.java:115)
	at com.rolfje.anonimatron.jdbc.JdbcAnonymizerService.processTableColumns(JdbcAnonymizerService.java:192)
	... 4 more
Anonymizing table 'abc', total progress  [27%, ETA 9:40:54 AM]/anonimatron-1.14

config.xml

<table name="abc">
 	<column name="first_name" type="ROMAN_NAME" />
 	<column name="last_name" type="ROMAN_NAME" />
 </table>

Hello

Try to use ELEVEN_NAME instead of ROMAN_NAME. Your data will be large that's the reason it is not able to generate. Max limit for ROMAN_NAME is 1 million i think and for ELEVEN_NAME is 11 million.

Correct, the name generators have a limited set of unique names.
ROMAN_NAME can generate approx. 897,046 unique names.
ELVEN_NAME can generate well over 1 million unique names.

For a practically unlimited set of strings, use the StringAnonymizer (although that will not generate nice names).