From mboxrd@z Thu Jan 1 00:00:00 1970 From: mark@klomp.org To: gcc-gnats@gcc.gnu.org Subject: libgcj/2357: HashMap does not handle initialCapacity=0 correctly Date: Fri, 23 Mar 2001 04:26:00 -0000 Message-id: <20010323121731.25071.qmail@sourceware.cygnus.com> X-SW-Source: 2001-03/msg00227.html List-Id: >Number: 2357 >Category: libgcj >Synopsis: HashMap does not handle initialCapacity=0 correctly >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri Mar 23 04:26:00 PST 2001 >Closed-Date: >Last-Modified: >Originator: mark@klomp.org >Release: gcc version 3.0 20010323 (prerelease) >Organization: >Environment: >Description: When the initialCapacity of a HashMap is zero then bucket.length will be zero and then you will get a ArithmetichException in the hash() method. import java.util.HashMap; public class HashMapTest { public static void main(String args[]) { HashMap map = new HashMap(0); map.get(new Object()); } } Exception in thread "main" java.lang.ArithmeticException: / by zero at 0x4016836d: _Jv_ThrowSignal (/usr/local/gcc/lib/libgcj.so.1) at 0x40168402: _Jv_ThrowSignal (/usr/local/gcc/lib/libgcj.so.1) at 0x401dc840: java.util.HashMap.hash(java.lang.Object) (/usr/local/gcc/lib/libgcj.so.1) at 0x401dc0a4: java.util.HashMap.get(java.lang.Object) (/usr/local/gcc/lib/libgcj.so.1) at 0x08048a82: HashMapTest.main(java.lang.String[]) (/tmp/HashMapTest.java:6) at 0x4017f0a5: gnu.gcj.runtime.FirstThread.run() (/usr/local/gcc/lib/libgcj.so.1) at 0x40189d92: java.lang.Thread.run_(java.lang.Object) (/usr/local/gcc/lib/libgcj.so.1) at 0x402a2e68: _Jv_ThreadSetPriority(_Jv_Thread_t, int) (/usr/local/gcc/lib/libgcj.so.1) at 0x4045653d: GC_start_routine (/usr/local/gcc/lib/libgcjgc.so.1) at 0x4046fc75: pthread_detach (/lib/libpthread.so.0) at 0x40559eba: __clone (/lib/libc.so.6) >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: