Cleanup linter warnings wherever possible and suppress all linter warnings from Jsch code

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5020 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/CMakeLists.txt b/java/CMakeLists.txt
index 86b9627..cf15c80 100644
--- a/java/CMakeLists.txt
+++ b/java/CMakeLists.txt
@@ -7,7 +7,7 @@
 
 find_package(Java)
 
-set(DEFAULT_JAVACFLAGS "-source 1.5 -target 1.5 -Xlint:all,-serial,-cast,-unchecked,-fallthrough,-dep-ann,-deprecation")
+set(DEFAULT_JAVACFLAGS "-source 1.5 -target 1.5 -Xlint:all,-serial,-cast,-fallthrough,-dep-ann,-deprecation")
 set(JAVACFLAGS ${DEFAULT_JAVACFLAGS} CACHE STRING
   "Java compiler flags (Default: ${DEFAULT_JAVACFLAGS})")
 message(STATUS "Java compiler flags = ${JAVACFLAGS}")
diff --git a/java/com/jcraft/jsch/Channel.java b/java/com/jcraft/jsch/Channel.java
index 669b575..73cc4db 100644
--- a/java/com/jcraft/jsch/Channel.java
+++ b/java/com/jcraft/jsch/Channel.java
@@ -35,7 +35,7 @@
 import java.io.OutputStream;
 import java.io.IOException;
 
-
+@SuppressWarnings({"rawtypes","unchecked"})
 public abstract class Channel implements Runnable{
 
   static final int SSH_MSG_CHANNEL_OPEN_CONFIRMATION=      91;
diff --git a/java/com/jcraft/jsch/ChannelAgentForwarding.java b/java/com/jcraft/jsch/ChannelAgentForwarding.java
index 9788d90..52e2db1 100644
--- a/java/com/jcraft/jsch/ChannelAgentForwarding.java
+++ b/java/com/jcraft/jsch/ChannelAgentForwarding.java
@@ -32,6 +32,7 @@
 import java.net.*;
 import java.util.Vector;
 
+@SuppressWarnings({"rawtypes"})
 class ChannelAgentForwarding extends Channel{
 
   static private final int LOCAL_WINDOW_SIZE_MAX=0x20000;
diff --git a/java/com/jcraft/jsch/ChannelForwardedTCPIP.java b/java/com/jcraft/jsch/ChannelForwardedTCPIP.java
index 912f1d8..39972e1 100644
--- a/java/com/jcraft/jsch/ChannelForwardedTCPIP.java
+++ b/java/com/jcraft/jsch/ChannelForwardedTCPIP.java
@@ -32,6 +32,7 @@
 import java.net.*;
 import java.io.*;
 
+@SuppressWarnings({"rawtypes","unchecked"})
 public class ChannelForwardedTCPIP extends Channel{
 
   static java.util.Vector pool=new java.util.Vector();
diff --git a/java/com/jcraft/jsch/ChannelSession.java b/java/com/jcraft/jsch/ChannelSession.java
index ffe217a..70dea2d 100644
--- a/java/com/jcraft/jsch/ChannelSession.java
+++ b/java/com/jcraft/jsch/ChannelSession.java
@@ -31,6 +31,7 @@
 
 import java.util.*;
 
+@SuppressWarnings({"rawtypes","unchecked"})
 class ChannelSession extends Channel{
   private static byte[] _session=Util.str2byte("session");
 
diff --git a/java/com/jcraft/jsch/ChannelSftp.java b/java/com/jcraft/jsch/ChannelSftp.java
index 66aec55..a278ed6 100644
--- a/java/com/jcraft/jsch/ChannelSftp.java
+++ b/java/com/jcraft/jsch/ChannelSftp.java
@@ -33,6 +33,7 @@
 
 import java.util.Vector;
 
+@SuppressWarnings({"rawtypes","unchecked"})
 public class ChannelSftp extends ChannelSession{
 
   static private final int LOCAL_MAXIMUM_PACKET_SIZE=32*1024;
diff --git a/java/com/jcraft/jsch/ChannelX11.java b/java/com/jcraft/jsch/ChannelX11.java
index 393728c..eb66bb6 100644
--- a/java/com/jcraft/jsch/ChannelX11.java
+++ b/java/com/jcraft/jsch/ChannelX11.java
@@ -31,6 +31,7 @@
 
 import java.net.*;
 
+@SuppressWarnings({"rawtypes","unchecked"})
 class ChannelX11 extends Channel{
 
   static private final int LOCAL_WINDOW_SIZE_MAX=0x20000;
diff --git a/java/com/jcraft/jsch/DHG1.java b/java/com/jcraft/jsch/DHG1.java
index 9b9a860..655c196 100644
--- a/java/com/jcraft/jsch/DHG1.java
+++ b/java/com/jcraft/jsch/DHG1.java
@@ -29,6 +29,7 @@
 
 package com.jcraft.jsch;
 
+@SuppressWarnings({"rawtypes"})
 public class DHG1 extends KeyExchange{
 
   static final byte[] g={ 2 };
diff --git a/java/com/jcraft/jsch/DHG14.java b/java/com/jcraft/jsch/DHG14.java
index 8ef5fb7..e46fb6f 100644
--- a/java/com/jcraft/jsch/DHG14.java
+++ b/java/com/jcraft/jsch/DHG14.java
@@ -29,6 +29,7 @@
 
 package com.jcraft.jsch;
 
+@SuppressWarnings({"rawtypes"})
 public class DHG14 extends KeyExchange{
 
   static final byte[] g={ 2 };
diff --git a/java/com/jcraft/jsch/DHGEX.java b/java/com/jcraft/jsch/DHGEX.java
index 23fa9eb..0f0da10 100644
--- a/java/com/jcraft/jsch/DHGEX.java
+++ b/java/com/jcraft/jsch/DHGEX.java
@@ -29,6 +29,7 @@
 
 package com.jcraft.jsch;
 
+@SuppressWarnings({"rawtypes"})
 public class DHGEX extends KeyExchange{
 
   private static final int SSH_MSG_KEX_DH_GEX_GROUP=               31;
diff --git a/java/com/jcraft/jsch/HostKey.java b/java/com/jcraft/jsch/HostKey.java
index 6401ad2..6ed420a 100644
--- a/java/com/jcraft/jsch/HostKey.java
+++ b/java/com/jcraft/jsch/HostKey.java
@@ -29,6 +29,7 @@
 
 package com.jcraft.jsch;
 
+@SuppressWarnings({"rawtypes","static"})
 public class HostKey{
   private static final byte[] sshdss=Util.str2byte("ssh-dss");
   private static final byte[] sshrsa=Util.str2byte("ssh-rsa");
diff --git a/java/com/jcraft/jsch/IdentityFile.java b/java/com/jcraft/jsch/IdentityFile.java
index 0427dab..cc66dfe 100644
--- a/java/com/jcraft/jsch/IdentityFile.java
+++ b/java/com/jcraft/jsch/IdentityFile.java
@@ -31,6 +31,7 @@
 
 import java.io.*;
 
+@SuppressWarnings({"rawtypes","static"})
 class IdentityFile implements Identity{
   String identity;
   byte[] key;
diff --git a/java/com/jcraft/jsch/IdentityRepository.java b/java/com/jcraft/jsch/IdentityRepository.java
index 1f75a01..c6b60d1 100644
--- a/java/com/jcraft/jsch/IdentityRepository.java
+++ b/java/com/jcraft/jsch/IdentityRepository.java
@@ -31,6 +31,7 @@
 
 import java.util.Vector;
 
+@SuppressWarnings({"rawtypes"})
 public interface IdentityRepository {
   public Vector getIdentities();
   public boolean add(byte[] identity);
diff --git a/java/com/jcraft/jsch/JSch.java b/java/com/jcraft/jsch/JSch.java
index 20c39e5..47fa29a 100644
--- a/java/com/jcraft/jsch/JSch.java
+++ b/java/com/jcraft/jsch/JSch.java
@@ -32,6 +32,7 @@
 import java.io.InputStream;
 import java.util.Vector;
 
+@SuppressWarnings({"rawtypes","unchecked"})
 public class JSch{
   public static final String VERSION  = "0.1.46";
 
diff --git a/java/com/jcraft/jsch/KeyExchange.java b/java/com/jcraft/jsch/KeyExchange.java
index ef089ba..77e7b83 100644
--- a/java/com/jcraft/jsch/KeyExchange.java
+++ b/java/com/jcraft/jsch/KeyExchange.java
@@ -29,6 +29,7 @@
 
 package com.jcraft.jsch;
 
+@SuppressWarnings({"rawtypes"})
 public abstract class KeyExchange{
 
   static final int PROPOSAL_KEX_ALGS=0;
diff --git a/java/com/jcraft/jsch/KnownHosts.java b/java/com/jcraft/jsch/KnownHosts.java
index ac76477..342d774 100644
--- a/java/com/jcraft/jsch/KnownHosts.java
+++ b/java/com/jcraft/jsch/KnownHosts.java
@@ -31,6 +31,7 @@
 
 import java.io.*;
 
+@SuppressWarnings({"rawtypes","unchecked","static"})
 public
 class KnownHosts implements HostKeyRepository{
   private static final String _known_hosts="known_hosts";
diff --git a/java/com/jcraft/jsch/LocalIdentityRepository.java b/java/com/jcraft/jsch/LocalIdentityRepository.java
index be81415..7dde42e 100644
--- a/java/com/jcraft/jsch/LocalIdentityRepository.java
+++ b/java/com/jcraft/jsch/LocalIdentityRepository.java
@@ -31,6 +31,7 @@
 
 import java.util.Vector;
 
+@SuppressWarnings({"rawtypes","unchecked"})
 class LocalIdentityRepository implements IdentityRepository {
 
   private Vector identities = new Vector();
diff --git a/java/com/jcraft/jsch/PortWatcher.java b/java/com/jcraft/jsch/PortWatcher.java
index 508e16b..b5fc37b 100644
--- a/java/com/jcraft/jsch/PortWatcher.java
+++ b/java/com/jcraft/jsch/PortWatcher.java
@@ -32,6 +32,7 @@
 import java.net.*;
 import java.io.*;
 
+@SuppressWarnings({"rawtypes","unchecked"})
 class PortWatcher implements Runnable{
   private static java.util.Vector pool=new java.util.Vector();
   private static InetAddress anyLocalAddress=null;
diff --git a/java/com/jcraft/jsch/Session.java b/java/com/jcraft/jsch/Session.java
index 962f52f..900d96d 100644
--- a/java/com/jcraft/jsch/Session.java
+++ b/java/com/jcraft/jsch/Session.java
@@ -32,6 +32,7 @@
 import java.io.*;
 import java.net.*;
 
+@SuppressWarnings({"rawtypes","static","unchecked"})
 public class Session implements Runnable{
 
   // http://ietf.org/internet-drafts/draft-ietf-secsh-assignednumbers-01.txt
diff --git a/java/com/jcraft/jsch/UserAuthPublicKey.java b/java/com/jcraft/jsch/UserAuthPublicKey.java
index 64e8e72..234ad0a 100644
--- a/java/com/jcraft/jsch/UserAuthPublicKey.java
+++ b/java/com/jcraft/jsch/UserAuthPublicKey.java
@@ -31,6 +31,7 @@
 
 import java.util.Vector;
 
+@SuppressWarnings({"rawtypes"})
 class UserAuthPublicKey extends UserAuth{
 
   public boolean start(Session session) throws Exception{
diff --git a/java/com/jcraft/jsch/Util.java b/java/com/jcraft/jsch/Util.java
index df51b2d..8d51fc6 100644
--- a/java/com/jcraft/jsch/Util.java
+++ b/java/com/jcraft/jsch/Util.java
@@ -30,6 +30,7 @@
 package com.jcraft.jsch;
 import java.net.Socket;
 
+@SuppressWarnings({"rawtypes","unchecked"})
 class Util{
 
   private static final byte[] b64 =Util.str2byte("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=");
diff --git a/java/com/jcraft/jsch/jcraft/Compression.java b/java/com/jcraft/jsch/jcraft/Compression.java
index dddcaed..cb1f317 100644
--- a/java/com/jcraft/jsch/jcraft/Compression.java
+++ b/java/com/jcraft/jsch/jcraft/Compression.java
@@ -31,6 +31,7 @@
 import com.jcraft.jzlib.*;
 import com.jcraft.jsch.*;
 
+@SuppressWarnings({"deprecation"})
 public class Compression implements com.jcraft.jsch.Compression {
   static private final int BUF_SIZE=4096;
   private final int buffer_margin=32+20; // AES256 + HMACSHA1
diff --git a/java/com/tigervnc/network/TcpListener.java b/java/com/tigervnc/network/TcpListener.java
index b7dc438..d56cd06 100644
--- a/java/com/tigervnc/network/TcpListener.java
+++ b/java/com/tigervnc/network/TcpListener.java
@@ -98,8 +98,8 @@
     // Accept an incoming connection
     try {
       if (selector.select(0) > 0) {
-        Set keys = selector.selectedKeys();
-        Iterator iter = keys.iterator();
+        Set<SelectionKey> keys = selector.selectedKeys();
+        Iterator<SelectionKey> iter = keys.iterator();
         while (iter.hasNext()) {
           SelectionKey key = (SelectionKey)iter.next();
           iter.remove();
diff --git a/java/com/tigervnc/rfb/CConnection.java b/java/com/tigervnc/rfb/CConnection.java
index 959f813..a923028 100644
--- a/java/com/tigervnc/rfb/CConnection.java
+++ b/java/com/tigervnc/rfb/CConnection.java
@@ -122,7 +122,7 @@
         throwConnFailedException();
 
       } else if (secType == Security.secTypeNone || secType == Security.secTypeVncAuth) {
-        Iterator i;
+        Iterator<Integer> i;
         for (i = secTypes.iterator(); i.hasNext(); ) {
           int refType = (Integer)i.next();
           if (refType == secType) {
@@ -146,7 +146,7 @@
       if (nServerSecTypes == 0)
         throwConnFailedException();
 
-      Iterator j;
+      Iterator<Integer> j;
 
       for (int i = 0; i < nServerSecTypes; i++) {
         int serverSecType = is.readU8();
diff --git a/java/com/tigervnc/rfb/CMsgWriterV3.java b/java/com/tigervnc/rfb/CMsgWriterV3.java
index 1ac583b..a730698 100644
--- a/java/com/tigervnc/rfb/CMsgWriterV3.java
+++ b/java/com/tigervnc/rfb/CMsgWriterV3.java
@@ -55,7 +55,7 @@
 	  os.writeU8(layout.num_screens());
 	  os.pad(1);
 	
-    for (Iterator iter = layout.screens.iterator(); iter.hasNext(); ) {
+    for (Iterator<Screen> iter = layout.screens.iterator(); iter.hasNext(); ) {
       Screen refScreen = (Screen)iter.next();
 	    os.writeU32(refScreen.id);
 	    os.writeU16(refScreen.dimensions.tl.x);
diff --git a/java/com/tigervnc/rfb/CSecurityVeNCrypt.java b/java/com/tigervnc/rfb/CSecurityVeNCrypt.java
index a1f2231..528158c 100644
--- a/java/com/tigervnc/rfb/CSecurityVeNCrypt.java
+++ b/java/com/tigervnc/rfb/CSecurityVeNCrypt.java
@@ -131,7 +131,7 @@
         if (!haveChosenType) {
           chosenType = Security.secTypeInvalid;
           int i;
-          Iterator j;
+          Iterator<Integer> j;
           List<Integer> secTypes = new ArrayList<Integer>();
 
           secTypes = Security.GetEnabledExtSecTypes();
diff --git a/java/com/tigervnc/rfb/Configuration.java b/java/com/tigervnc/rfb/Configuration.java
index aca8b53..fb635c7 100644
--- a/java/com/tigervnc/rfb/Configuration.java
+++ b/java/com/tigervnc/rfb/Configuration.java
@@ -285,7 +285,7 @@
       return;
     }
 
-    for (Iterator i = props.stringPropertyNames().iterator(); i.hasNext();) {
+    for (Iterator<String> i = props.stringPropertyNames().iterator(); i.hasNext();) {
       String name = (String)i.next();
       if (name.startsWith("[")) {
         // skip the section delimiters
diff --git a/java/com/tigervnc/rfb/ScreenSet.java b/java/com/tigervnc/rfb/ScreenSet.java
index b848b13..d20374f 100644
--- a/java/com/tigervnc/rfb/ScreenSet.java
+++ b/java/com/tigervnc/rfb/ScreenSet.java
@@ -35,7 +35,7 @@
 
   public final void add_screen(Screen screen) { screens.add(screen); }
   public final void remove_screen(int id) { 
-    for (Iterator iter = screens.iterator(); iter.hasNext(); ) {
+    for (Iterator<Screen> iter = screens.iterator(); iter.hasNext(); ) {
       Screen refScreen = (Screen)iter.next();
       if (refScreen.id == id)
         iter.remove();
@@ -53,7 +53,7 @@
 
       fb_rect.setXYWH(0, 0, fb_width, fb_height);
 
-      for (Iterator iter = screens.iterator(); iter.hasNext(); ) {
+      for (Iterator<Screen> iter = screens.iterator(); iter.hasNext(); ) {
         Screen refScreen = (Screen)iter.next();
         if (refScreen.dimensions.is_empty())
           return false;
@@ -68,7 +68,7 @@
   }
 
   public final void debug_print() {
-    for (Iterator iter = screens.iterator(); iter.hasNext(); ) {
+    for (Iterator<Screen> iter = screens.iterator(); iter.hasNext(); ) {
       Screen refScreen = (Screen)iter.next();
       vlog.error("    "+refScreen.id+" (0x"+refScreen.id+"): "+
                 refScreen.dimensions.width()+"x"+refScreen.dimensions.height()+
diff --git a/java/com/tigervnc/rfb/Security.java b/java/com/tigervnc/rfb/Security.java
index 6d52ede..9df4995 100644
--- a/java/com/tigervnc/rfb/Security.java
+++ b/java/com/tigervnc/rfb/Security.java
@@ -77,7 +77,7 @@
     List<Integer> result = new ArrayList<Integer>();
 
     result.add(secTypeVeNCrypt);
-    for (Iterator i = enabledSecTypes.iterator(); i.hasNext(); ) {
+    for (Iterator<Integer> i = enabledSecTypes.iterator(); i.hasNext(); ) {
       int refType = (Integer)i.next();
       if (refType < 0x100)
         result.add(refType);
@@ -90,7 +90,7 @@
   {
     List<Integer> result = new ArrayList<Integer>();
 
-    for (Iterator i = enabledSecTypes.iterator(); i.hasNext(); ) {
+    for (Iterator<Integer> i = enabledSecTypes.iterator(); i.hasNext(); ) {
       int refType = (Integer)i.next();
       if (refType != secTypeVeNCrypt) /* Do not include VeNCrypt to avoid loops */
         result.add(refType);
@@ -102,7 +102,7 @@
   public static final void EnableSecType(int secType)
   {
 
-    for (Iterator i = enabledSecTypes.iterator(); i.hasNext(); )
+    for (Iterator<Integer> i = enabledSecTypes.iterator(); i.hasNext(); )
       if ((Integer)i.next() == secType)
         return;
 
@@ -111,7 +111,7 @@
 
   public boolean IsSupported(int secType)
   {
-    Iterator i;
+    Iterator<Integer> i;
   
     for (i = enabledSecTypes.iterator(); i.hasNext(); )
      if ((Integer)i.next() == secType)
diff --git a/java/com/tigervnc/vncviewer/CConn.java b/java/com/tigervnc/vncviewer/CConn.java
index 9adb967..e51cb44 100644
--- a/java/com/tigervnc/vncviewer/CConn.java
+++ b/java/com/tigervnc/vncviewer/CConn.java
@@ -297,7 +297,7 @@
       setServerPort(port);
       sock = new TcpSocket(host, port);
       vlog.info("Redirected to "+host+":"+port);
-      viewer.newViewer(viewer, sock, true);
+      VncViewer.newViewer(viewer, sock, true);
     } catch (java.lang.Exception e) {
       throw new Exception(e.toString());
     }
@@ -355,7 +355,7 @@
         else if (layout.num_screens() != 1) {
 
           while (true) {
-            Iterator iter = layout.screens.iterator(); 
+            Iterator<Screen> iter = layout.screens.iterator(); 
             Screen screen = (Screen)iter.next();
         
             if (!iter.hasNext())
@@ -831,7 +831,7 @@
       /* Process non-VeNCrypt sectypes */
       java.util.List<Integer> secTypes = new ArrayList<Integer>();
       secTypes = Security.GetEnabledSecTypes();
-      for (Iterator i = secTypes.iterator(); i.hasNext();) {
+      for (Iterator<Integer> i = secTypes.iterator(); i.hasNext();) {
         switch ((Integer)i.next()) {
         case Security.secTypeVeNCrypt:
           options.secVeNCrypt.setSelected(UserPreferences.getBool("viewer", "secVeNCrypt", true));
@@ -851,7 +851,7 @@
       if (options.secVeNCrypt.isSelected()) {
         java.util.List<Integer> secTypesExt = new ArrayList<Integer>();
         secTypesExt = Security.GetEnabledExtSecTypes();
-        for (Iterator iext = secTypesExt.iterator(); iext.hasNext();) {
+        for (Iterator<Integer> iext = secTypesExt.iterator(); iext.hasNext();) {
           switch ((Integer)iext.next()) {
           case Security.secTypePlain:
             options.encNone.setSelected(UserPreferences.getBool("viewer", "encNone", true));
diff --git a/java/com/tigervnc/vncviewer/MenuKey.java b/java/com/tigervnc/vncviewer/MenuKey.java
index 0a24014..4967708 100644
--- a/java/com/tigervnc/vncviewer/MenuKey.java
+++ b/java/com/tigervnc/vncviewer/MenuKey.java
@@ -78,10 +78,10 @@
   }
   
   static int getMenuKeyCode() {
-    String menuKeyStr;
     int menuKeyCode = KeyEvent.VK_F8;
   
-    menuKeyStr = 
+    @SuppressWarnings({"static"})
+    String menuKeyStr = 
       Configuration.global().getParam("menuKey").getValueStr();
     for(int i = 0; i < getMenuKeySymbolCount(); i++)
       if (menuSymbols[i].name.equals(menuKeyStr))
diff --git a/java/com/tigervnc/vncviewer/OptionsDialog.java b/java/com/tigervnc/vncviewer/OptionsDialog.java
index 80d9f40..cd21341 100644
--- a/java/com/tigervnc/vncviewer/OptionsDialog.java
+++ b/java/com/tigervnc/vncviewer/OptionsDialog.java
@@ -39,6 +39,7 @@
   OptionsDialogCallback cb;
   JPanel FormatPanel, InputsPanel, MiscPanel, DefaultsPanel, SecPanel;
   JCheckBox autoSelect, customCompressLevel, noJpeg;
+  @SuppressWarnings({"rawtypes"})
   JComboBox menuKey, compressLevel, qualityLevel, scalingFactor;
   ButtonGroup encodingGroup, colourGroup;
   JRadioButton zrle, hextile, tight, raw;
@@ -51,6 +52,7 @@
   JButton ca, crl;
   JButton cfLoadButton, cfSaveAsButton, defSaveButton, defReloadButton, defClearButton;
 
+  @SuppressWarnings({"rawtypes","unchecked"})
   public OptionsDialog(OptionsDialogCallback cb_) { 
     super(true);
     cb = cb_;
diff --git a/java/com/tigervnc/vncviewer/ServerDialog.java b/java/com/tigervnc/vncviewer/ServerDialog.java
index 976dc7f..a134585 100644
--- a/java/com/tigervnc/vncviewer/ServerDialog.java
+++ b/java/com/tigervnc/vncviewer/ServerDialog.java
@@ -33,6 +33,7 @@
                            ItemListener
 {
 
+  @SuppressWarnings({"unchecked","rawtypes"})
   public ServerDialog(OptionsDialog options_,
                       String defaultServerName, CConn cc_) {
     
@@ -41,10 +42,10 @@
     setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
     setResizable(false);
     setSize(new Dimension(340, 135));
-    setTitle("VNC Viewer : Connection Details");
+    setTitle("VNC Viewer: Connection Details");
     addWindowListener(new WindowAdapter() {
       public void windowClosing(WindowEvent e) {
-        if (cc.viewer.nViewers == 1) {
+        if (VncViewer.nViewers == 1) {
           cc.viewer.exit(1);
         } else {
           ret = false;
@@ -120,13 +121,14 @@
     return;
   }
 
+  @SuppressWarnings({"unchecked","rawtypes"})
   public void actionPerformed(ActionEvent e) {
     Object s = e.getSource();
     if (s instanceof JButton && (JButton)s == okButton) {
       commit();
       endDialog();
     } else if (s instanceof JButton && (JButton)s == cancelButton) {
-      if (cc.viewer.nViewers == 1)
+      if (VncViewer.nViewers == 1)
         cc.viewer.exit(1);
       ret = false;
       endDialog();
@@ -148,7 +150,7 @@
     String serverName = (String)server.getSelectedItem();
     if (serverName == null || serverName.equals("")) {
       vlog.error("Invalid servername specified");
-      if (cc.viewer.nViewers == 1)
+      if (VncViewer.nViewers == 1)
         cc.viewer.exit(1);
       ret = false;
       endDialog();
@@ -177,6 +179,7 @@
   }
 
   CConn cc;
+  @SuppressWarnings("rawtypes")
   JComboBox server;
   ComboBoxEditor editor;
   JButton aboutButton, optionsButton, okButton, cancelButton;
diff --git a/java/com/tigervnc/vncviewer/Viewport.java b/java/com/tigervnc/vncviewer/Viewport.java
index c148416..95489fa 100644
--- a/java/com/tigervnc/vncviewer/Viewport.java
+++ b/java/com/tigervnc/vncviewer/Viewport.java
@@ -53,7 +53,7 @@
     });
     addWindowListener(new WindowAdapter() {
       public void windowClosing(WindowEvent e) {
-        if (cc.viewer.nViewers == 1) {
+        if (VncViewer.nViewers == 1) {
           cc.viewer.exit(1);
         } else {
           cc.close();
diff --git a/java/com/tigervnc/vncviewer/VncViewer.java b/java/com/tigervnc/vncviewer/VncViewer.java
index 8cc9fc6..cf38760 100644
--- a/java/com/tigervnc/vncviewer/VncViewer.java
+++ b/java/com/tigervnc/vncviewer/VncViewer.java
@@ -40,8 +40,7 @@
 import java.lang.Character;
 import java.util.jar.Attributes;
 import java.util.jar.Manifest;
-import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.*;
 import javax.swing.*;
 import javax.swing.plaf.FontUIResource;
 import javax.swing.UIManager.*;
@@ -80,7 +79,7 @@
       UIManager.put("TitledBorder.titleColor",Color.blue);
       if (UIManager.getLookAndFeel().getName().equals("Metal")) {
         UIManager.put("swing.boldMetal", Boolean.FALSE);
-        java.util.Enumeration keys = UIManager.getDefaults().keys();
+        Enumeration<Object> keys = UIManager.getDefaults().keys();
         while (keys.hasMoreElements()) {
           Object key = keys.nextElement();
           Object value = UIManager.get(key);
diff --git a/java/com/tigervnc/vncviewer/tunnel.java b/java/com/tigervnc/vncviewer/tunnel.java
index 23da0a9..a66d83a 100644
--- a/java/com/tigervnc/vncviewer/tunnel.java
+++ b/java/com/tigervnc/vncviewer/tunnel.java
@@ -287,7 +287,7 @@
       ArrayList<File> privateKeys = new ArrayList<File>();
       privateKeys.add(new File(homeDir+"/.ssh/id_rsa"));
       privateKeys.add(new File(homeDir+"/.ssh/id_dsa"));
-      for (Iterator i = privateKeys.iterator(); i.hasNext();) {
+      for (Iterator<File> i = privateKeys.iterator(); i.hasNext();) {
         File privateKey = (File)i.next();
         if (privateKey.exists() && privateKey.canRead())
 	        jsch.addIdentity(privateKey.getAbsolutePath());