[ https://issues.apache.org/jira/browse/BOOKKEEPER-700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13809399#comment-13809399 ]
Sijie Guo commented on BOOKKEEPER-700: -------------------------------------- {quote} IMHO, one way to address this would be to create a common 'BookieThread' that all the threads must extend and every thread can define following properties: {quote} there is already a BookieThread doing this. you don't need to create a new class. But I don't think GarbageCollectorThread is critical enough to do this, as the garbage collector thread quits doesn't affect anything. > GarbageCollectorThread exsiting with ArrayIndexOutOfBoundsException > ------------------------------------------------------------------- > > Key: BOOKKEEPER-700 > URL: https://issues.apache.org/jira/browse/BOOKKEEPER-700 > Project: Bookkeeper > Issue Type: Bug > Components: bookkeeper-server > Reporter: Rakesh R > Assignee: Rakesh R > Fix For: 4.3.0 > > Attachments: 0001-BOOKKEEPER-700.patch, 0002-BOOKKEEPER-700.patch > > > After completing compaction, GarbageCollectorThread will do flush any > outstanding offsets. When there is no offset present, its throwing following > exception and exiting. > {code} > 2013-10-30 11:37:20,944 - ERROR - > [GarbageCollectorThread:NIOServerCnxnFactory$1@49] - Thread > Thread[GarbageCollectorThread,5,main] died > java.lang.ArrayIndexOutOfBoundsException: -1 > at java.util.ArrayList.get(ArrayList.java:324) > at > org.apache.bookkeeper.bookie.GarbageCollectorThread$CompactionScannerFactory.waitEntrylogFlushed(GarbageCollectorThread.java:151) > at > org.apache.bookkeeper.bookie.GarbageCollectorThread$CompactionScannerFactory.flush(GarbageCollectorThread.java:175) > at > org.apache.bookkeeper.bookie.GarbageCollectorThread.doCompactEntryLogs(GarbageCollectorThread.java:400) > at > org.apache.bookkeeper.bookie.GarbageCollectorThread.run(GarbageCollectorThread.java:309) > {code} -- This message was sent by Atlassian JIRA (v6.1#6144)