I noticed that if you try to create two indexes with different names on the same column set that Derby silently ignores the command.
I can understand the rationale - it doesn't make sense to maintain two keys against the same columns - they're the same key. But it would be useful to say something that lets the user know that the index already exists, rather than silently succeeding.
FWIW, MySQL let's you create two indexes with different names on the same columns...
David W. Van Couvering