[ https://issues.apache.org/jira/browse/MAILBOX-48?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13015287#comment-13015287 ]
Eric Charles commented on MAILBOX-48: ------------------------------------- What to do if uid file is corrupted ? Manually remove it, so maildir will regenerate it ? Could the code remove the file (File.delete()) ? (after all, it is corrupted...) > Detect corrupted uid file and throw checked exception > ----------------------------------------------------- > > Key: MAILBOX-48 > URL: https://issues.apache.org/jira/browse/MAILBOX-48 > Project: James Mailbox > Issue Type: Improvement > Components: maildir mailbox > Reporter: Norman Maurer > Assignee: Norman Maurer > Fix For: 0.2 > > > At the moment we try to parse the uid file and split lines on "gaps" to read > the uid list. It happened to me that I had a corrupted line in the file > (don't know yet why) which raised a IndexOutOfBoundException later (because > the gap position was detected as -1). It would be nice if we throw an checked > exception in this cases which contains the file + linenumber which raised > this problems. > This was the exception: > INFO | jvm 1 | 2011/04/03 21:25:36 | > java.lang.StringIndexOutOfBoundsException: String index out of range: -1 > INFO | jvm 1 | 2011/04/03 21:25:36 | at > java.lang.String.substring(String.java:1949) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.mailbox.maildir.MaildirFolder.updateUidFile(MaildirFolder.java:508) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.mailbox.maildir.MaildirFolder.getUidMap(MaildirFolder.java:323) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.mailbox.maildir.mail.MaildirMessageMapper.searchMailbox(MaildirMessageMapper.java:403) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.mailbox.store.StoreMessageManager.search(StoreMessageManager.java:581) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.AbstractSelectionProcessor.createNewSelectedMailbox(AbstractSelectionProcessor.java:205) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.AbstractSelectionProcessor.selectMailbox(AbstractSelectionProcessor.java:188) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.AbstractSelectionProcessor.doProcess(AbstractSelectionProcessor.java:83) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.AbstractSelectionProcessor.doProcess(AbstractSelectionProcessor.java:50) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:95) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.AbstractMailboxProcessor.process(AbstractMailboxProcessor.java:81) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:74) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:54) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:51) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:53) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:53) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:53) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:53) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:53) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:53) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.apache.james.imapserver.netty.ImapChannelUpstreamHandler.messageReceived(ImapChannelUpstreamHandler.java:167) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:148) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:302) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:317) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:299) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:216) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:302) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:317) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:299) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:216) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.handler.timeout.IdleStateHandler.messageReceived(IdleStateHandler.java:276) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > org.jboss.netty.channel.socket.oio.OioWorker.run(OioWorker.java:90) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > INFO | jvm 1 | 2011/04/03 21:25:36 | at > java.lang.Thread.run(Thread.java:636) -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org