Java Bugs

Problems associated with the JDK version 1.02 and browser implementations.
Compiler
The compiler gets confused about the files that have to be compiled and you end up with mish mash of old and new class files. Delete old class files before recompiling to ensure everything is built.

CardLayout
Unreliable in Sunos versions of netscape navigators.

FontMetrics
Height returned is twice the actual height on Sunos versions of netscape navigators.

minimimSize preferredSize
Unless this method is provided by your component, the documented behaviour is to return the current size! If you write a layout manager, it can not rely upon minimumSize() to actually return the minimum size of the component and must ignore it.

List
repainting of background behing pull down lists broken in appletviewer for NT

createImage
Not guaranteed to return meaningful object until a peer has been created, i.e. after component has been added to a container. As a result offscreen images must be created in the addNotify() method.

Threads
on fast proceessor machines, threads don't sleep for as long as they should. In fact Threads are hopeless.

CropImageFilter
Extremely slow on unix. Can take 1.5 seconds per crop. Quicker to copy an entire bitmap, after setting the clipping rectangle rather than crop.

Reading from alien files
Depending on the endianness of the machine that wrote the file, the order of the bytes could be really mucked up. Problem is that RandomAccessFile has no facility for swapping bytes as they are read and you can't modify behaviour of the read functions in subclasses as they are all final methods. Check my comms section for a workaround

No sets, binary trees or sorting
Essential in any serious development language, but missing in Java

Architecture independence
OK, so this is more of a gripe rather than a bug, theres not enough publically available ports of the java JDK to allow it to be called independant of architecture, the Sun implementation of Java runs only on Solaris and WindowsNT.

On the other hand, using an undocumented feature of the browser by Netscape, you can compile java on virtually any operating system

Inadequate graphics
AWT is hardly what I would call graphics. Still you can do simple things with it, but not much more without hitting performance problems. Sun are rumoured to be working on the graphics for a future release of the JDK.

Microsoft® Internet Explorer
Does not support the archive parameter to the <applet> tag.

The archive parameter specifies the name of a zip file that contains class files. the zip archive must not use any compression or the applet will not work.

<applet archive=myarchive.zip name=myclass.class .... >

Netscape Navigator
Does not support the parameter name cabbase within an <applet> tag.

The cabbase parameter specifies the name of a cab file that contains class files. the cab archive is the Microsoft® Cabinet format and is compressed.

<applet name=myclass.class .... >
<param name="cabbase" value="mycabfile.cab" >

Development environment
Java workshop makes use of Suns own Hot java browser, which is entirely written in java. there are some problems with this