2006-06-07 22:45:55 UTC
Hi,
It seems to me that the BinaryGenerator still tries to generate data for fields which are not required to be NOT NULL.
For instance, for a BLOB Oracle column which does not have the constraint NOT NULL this part of the table schema gets generated:
<column name="SIGNATURE" databaseDefault="false">
<generator type="pl.kernelpanic.dbmonster.generator.BinaryGenerator">
<property name="maxLength" value="4000"/>
<property name="nulls" value="10"/>
</generator>
</column>
In a debugger I can see that all other columns in the table are getting generated properly. Then a check is made whether this one is, it is not, and then another (!) attempt (in generate() in Column.java) is made to generate it. Because no external file is configured to feed the generation, an exception originates in
String filename = (String)fileList.get(getNextIndex());
which gets propagated to Table.java (tx.abort();).
The exception is:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:507)
at java.util.ArrayList.get(ArrayList.java:324)
at pl.kernelpanic.dbmonster.generator.BinaryGenerator.generate(BinaryGenerator.java:104)
at pl.kernelpanic.dbmonster.schema.Column.generate(Column.java:174)
at pl.kernelpanic.dbmonster.schema.Table.generate(Table.java:378)
at pl.kernelpanic.dbmonster.schema.Schema.generate(Schema.java:181)
at pl.kernelpanic.dbmonster.DBMonster.doTheJob(DBMonster.java:286)
at pl.kernelpanic.dbmonster.Launcher.run(Launcher.java:206)
at pl.kernelpanic.dbmonster.Launcher.main(Launcher.java:102)
Could you please look at that?
And a second question: Where is the configuration setting to set the filename to be used by the BinaryGenerator?
I have a complete environment setup with maven, maven-eclipse and Eclipse, so I am willing to assist following your hints.
Thanks.