[
https://issues.apache.org/jira/browse/DERBY-4166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kathey Marsden updated DERBY-4166:
----------------------------------
Description:
When recently working with the mailjdbc system test
org.apache.derbyTesting.system.mailjdbc on DERBY-4152 I noticed some potential
improvements that might be good for the test. We should probably hold off on
these improvements however until the root cause of DERBY-4152 is established,
however, so we don't muddy the waters with that issue by changing the test.
1) DbTasks.moveToFolders may throw an IllegalArgumentException.
There is a line: message_id = Rn.nextInt(count - 1);
if count is 1 the argument to nextInt() might be 0 which is not allowed. I
hit this once but lost the stack trace, but it is apparent that when there is
only one row in the table this can occur.
2) Allow/implement multiple attachments per message and cleanup
DbTasks.insertMail() logic.
- Remove the attach_id column from INBOX to allow multiple attachments.
-Make the attachment insert part of the message for loop in insertMail.
Use getGeneratedKeys() to get the id of the inserted message.
When attachments are inserted, insert (1-4) attachments and give them a
corresponding attach_id from 1-4.
This will allow for removal of the select statements used to determine id and
attach_id. I'll file another issue for these improvements if folks agree that
they are sensible.
A detailed description of the current implementation of insertMail is described
at
https://issues.apache.org/jira/secure/attachment/12405685/insertMailSummary.txt
3) DbTasks.databaseSize calculation is wrong. It doesn't match du -sk. The
method does not recurse into subdirectories and includes the length() on
directory files which is undefined accourding to the file.length() javadoc.
was:
When recently working with the mailjdbc system test
org.apache.derbyTesting.system.mailjdbc on DERBY-4152 I noticed some potential
improvements that might be good for the test. We should probably hold off on
these improvements however until the root cause of DERBY-4152 is established,
however, so we don't muddy the waters with that issue by changing the test.
1) DbTasks.moveToFolders may throw an IllegalArgumentException.
There is a line: message_id = Rn.nextInt(count - 1);
if count is 1 the argument to nextInt() might be 0 which is not allowed. I
hit this once but lost the stack trace, but it is apparent that when there is
only one row in the table this can occur.
2) Allow/implement multiple attachments per message and cleanup
DbTasks.insertMail() logic.
- Remove the attach_id column from INBOX to allow multiple attachments.
-Make the attachment insert part of the message for loop in insertMail.
Use getGeneratedKeys() to get the id of the inserted message.
When attachments are inserted, insert (1-4) attachments and give them a
corresponding attach_id from 1-4.
This will allow for removal of the select statements used to determine id and
attach_id. I'll file another issue for these improvements if folks agree that
they are sensible.
A detailed description of the current implementation of insertMail is described
at
https://issues.apache.org/jira/secure/attachment/12405685/insertMailSummary.txt
> improvements to the mailjdbc test
> ---------------------------------
>
> Key: DERBY-4166
> URL: https://issues.apache.org/jira/browse/DERBY-4166
> Project: Derby
> Issue Type: Improvement
> Components: Test
> Affects Versions: 10.6.0.0
> Reporter: Kathey Marsden
> Priority: Minor
>
> When recently working with the mailjdbc system test
> org.apache.derbyTesting.system.mailjdbc on DERBY-4152 I noticed some
> potential improvements that might be good for the test. We should probably
> hold off on these improvements however until the root cause of DERBY-4152 is
> established, however, so we don't muddy the waters with that issue by
> changing the test.
> 1) DbTasks.moveToFolders may throw an IllegalArgumentException.
> There is a line: message_id = Rn.nextInt(count - 1);
> if count is 1 the argument to nextInt() might be 0 which is not allowed. I
> hit this once but lost the stack trace, but it is apparent that when there is
> only one row in the table this can occur.
>
> 2) Allow/implement multiple attachments per message and cleanup
> DbTasks.insertMail() logic.
> - Remove the attach_id column from INBOX to allow multiple attachments.
> -Make the attachment insert part of the message for loop in insertMail.
> Use getGeneratedKeys() to get the id of the inserted message.
> When attachments are inserted, insert (1-4) attachments and give them a
> corresponding attach_id from 1-4.
> This will allow for removal of the select statements used to determine id and
> attach_id. I'll file another issue for these improvements if folks agree
> that they are sensible.
> A detailed description of the current implementation of insertMail is
> described at
> https://issues.apache.org/jira/secure/attachment/12405685/insertMailSummary.txt
> 3) DbTasks.databaseSize calculation is wrong. It doesn't match du -sk. The
> method does not recurse into subdirectories and includes the length() on
> directory files which is undefined accourding to the file.length() javadoc.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.