- 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 
   RandomAccessFilehas 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
   
- 
	 AWTis 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 archiveparameter 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 cabbasewithin
   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
	  
		 - It's old and looks it
		 
- The browser still implements version 1 of HTML and does
		 not have support for tables or frames.
		 
- No JIT capability is provided.
		 
- It's editor, when you find it, is basic and unusable.
		 
- the interface model centres on web browsing, not
	  application development.
		 
- It bears no similarity to existing visual development environments.		 
- Beta quality. A simple task of saving a file caused an exception
				that hung the hot java browser.