OSX mail counts always incorrect

The red badges on top of the mail icon, as well as the oval dark grey badges next to mailboxes are only very rarely correct. For example, at this moment the "Flagged" mailbox has a badge with the number 4. Clicking on it reveals that there are actually only three mails in that mailbox, and that furthermore none is flagged. So it is doubly wrong. There are similar issues with the "recent" mailbox, and the Dock icon. It is very annoying to see an unread mail badge, and not being able to find any unread mails. I am mainly using IMAP mail; perhaps the problem does not occur with iCloud mail.
This problem first appeared in OSX Leopard(!) years ago, and I have seen it on at least six different computers,  in all later versions of OSX, during many years. With every new version I am hoping that it is fixed, and with Yosemite once again I am disappointed. How hard can it be to count? Or is there perhaps something I can change to fix this problem once and for all?

Thanks Eric,
This has indeed solved the problem for now, but I did not award a green checkmark yet, because I want to wait and see if it comes back.
For anyone else trying this: a lot of patience is required, and the results may not seem correct at first. Re-indexing my 29412 messages took 25 minutes. After that, my "Flagged" mailbox was empty, even though I knew I had a flagged message. My "recent" mailbox contained only 2 of the about 100 messages it should contain. These problems eventually disappeared (I expected this because I had seen empty "recent" mailboxes before), but it took at least one additional hour before  both "Flagged" and "recent" were in their correct state.
Yes, I do have a huge number of messages, but it is well-organised in mailboxes, and my inbox has only 26 right now. It is disappointing that Mail.app has so much trouble with this.

Similar Messages

  • Mail count incorrect

    I see that once I've opened mail, the mail count is only correct for the first download. After that, the count just adds on to whatever it was before. This is for sent and received mail, and not sure if it makes a difference, but it's on a POP account.
    This worked fine in all previous versions.
    I can reset it by quitting out of mail, but that is counterproductive.
    Dave

    the result after quiting Mail.app is correct...

  • Bogus Unread Mail Count?

    Hi,
    I did a synch this morning and seem to have buggered the 'unread' mail count
    that badges the Phone Icon.
    I also upgraded to OSX 10.5.7...
    It asserts that there are 11 unread messages but I cannot find any...
    How can I clear the incorrect mail count?
    Thanks
    Jerry

    I figured it out...
    I think when I did the sync it added a new mail
    account that I had created on my mac for tracking
    my wifes medical correspondence...
    The badge count matched the number of unread mails in
    the new account.
    Jerry

  • Database Access in Java (Count field incorrect)

    Was given a stock tracking application to be edited for use as a Student/Admin login application which accesses a database and adds/deletes/edits student information. When I try to login, I get the following error: [Microsoft][OBDC Microsoft Access Driver]Count Field Incorrect
    The driver was set up in the Admin tools in Windows XP.
    The columns exist in the database.
    //makeDB.java
      import java.sql.*;
      import java.io.*;
      public class MakeDB
        public static void main(String[] args) throws Exception
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              String url = "jdbc:odbc:saad";
              Connection con = DriverManager.getConnection(url);
             Statement stmt = con.createStatement();
              // The following code deletes each index and table, if they exist.
              // If they do not exist, a message is displayed and execution continues.
              System.out.println("Dropping indexes & tables ...");
            try
                   stmt.executeUpdate("DROP INDEX PK_StudentUserBridge ON StudentUserBridge");
             catch (Exception e)
                   System.out.println("Could not drop primary key on saad table: "
                                     + e.getMessage());
            try
                     stmt.executeUpdate("DROP TABLE Student");
             catch (Exception e)
                   System.out.println("Could not drop Student table: "
                                     + e.getMessage());
            try
                     stmt.executeUpdate("DROP TABLE Users");
             catch (Exception e)
                   System.out.println("Could not drop Users table: "
                                     + e.getMessage());
            try
                     stmt.executeUpdate("DROP TABLE StudentUserBridge");
             catch (Exception e)
                   System.out.println("Could not drop StudentUserBridge table: "
                                     + e.getMessage());
              ///////// Create the database tables /////////////
              System.out.println("\nCreating tables ............");
              // Create Stocks table with primary key index
            try
                   System.out.println("Creating Student table with primary key index...");
                   stmt.executeUpdate("CREATE TABLE Student ("
                                     +"IDNumber TEXT(8) NOT NULL "
                                     +"CONSTRAINT PK_Student PRIMARY KEY, "
                                     +"FirstName TEXT(50), "
                                     +"LastName TEXT(50)"
                                     +")");
             catch (Exception e)
                   System.out.println("Exception creating Student table: "
                                     + e.getMessage());
              // Create Users table with primary key index
            try
                   System.out.println("Creating Users table with primary key index...");
                   stmt.executeUpdate("CREATE TABLE Users ("
                                     +"userID TEXT(20) NOT NULL "
                                    +"CONSTRAINT PK_Users PRIMARY KEY, "
                                    +"FirstName TEXT(30) NOT NULL, "
                                    +"LastName TEXT(30) NOT NULL, "
                                         +"pswd LONGBINARY, "
                                    +"email TEXT(30) NOT NULL, "
                                         +"admin BIT"
                                         +")");
             catch (Exception e)
                   System.out.println("Exception creating Users table: "
                                     + e.getMessage());
              // Create UserStocks table with foreign keys to Users and Stocks tables
            try
                   System.out.println("Creating StudentUserBridge table ...");
                   stmt.executeUpdate("CREATE TABLE StudentUserBridge ("
                                     +"userID TEXT(20) "
                                       +"CONSTRAINT FK1_StudentUserBridge REFERENCES Users (userID), "
                                          +"IDNumber TEXT(8), "
                                       +"CONSTRAINT FK2_StudentUserBridge FOREIGN KEY (IDNumber) "
                                       +"REFERENCES Student (IDNumber)"
                                       +")");
             catch (Exception e)
                   System.out.println("Exception creating StudentUserBridge table: "
                                     + e.getMessage());
              // Create UserStocks table primary key index
            try
                   System.out.println("Creating StudentUserBridge table primary key index...");
                   stmt.executeUpdate("CREATE UNIQUE INDEX PK_StudentUserBridge "
                                        +"ON StudentUserBridge (userID, IDNumber) "
                                        +"WITH PRIMARY DISALLOW NULL");
             catch (Exception e)
                   System.out.println("Exception creating StudentUserBridge index: "
                                     + e.getMessage());
              // Create one administrative user with password as initial data
              String userID = "admin01";
              String FirstName = "Default";
              String LastName = "Admin";
              String initialPswd = "admin01";
              String email = "[email protected]";
              Password pswd = new Password(initialPswd);
              boolean admin = true;
            PreparedStatement pStmt =
                       con.prepareStatement("INSERT INTO Users VALUES (?,?,?,?,?,?)");
            try
                 pStmt.setString(1, userID);
                  pStmt.setString(2, FirstName);
                  pStmt.setString(3, LastName);
                pStmt.setBytes(4, serializeObj(pswd));
                pStmt.setString(5, email);
                  pStmt.setBoolean(6, admin);
                  pStmt.executeUpdate();
              catch (Exception e)
                   System.out.println("Exception inserting user: "
                                     + e.getMessage());
            pStmt.close();
              // Read and display all User data in the database.
            ResultSet rs = stmt.executeQuery("SELECT * FROM Users");
            System.out.println("Database created.\n");
            System.out.println("Displaying data from database...\n");
            System.out.println("Users table contains:");
            Password pswdFromDB;
            byte[] buf = null;
            while(rs.next())
                   System.out.println("Logon ID         = "
                                     + rs.getString("userID"));
                 System.out.println("Last name        = "
                                   + rs.getString("FirstName"));
                 System.out.println("First name       = "+rs.getString("LastName"));
                 System.out.println("E-mail           = "+rs.getString("email"));
                 System.out.println("Administrative   = "+rs.getBoolean("admin"));
                 System.out.println("Initial password = "+initialPswd);
            // Do NOT use with JDK 1.2.2 using JDBC-ODBC bridge as
            // SQL NULL data value is not handled correctly.
                buf = rs.getBytes("pswd");
                if (buf != null)
                      System.out.println("Password Object  = "
                                      + (pswdFromDB=(Password)deserializeObj(buf)));
                      System.out.println("  AutoExpires    = "+ pswdFromDB.getAutoExpires());
                      System.out.println("  Expiring now   = "+ pswdFromDB.isExpiring());
                      System.out.println("  Remaining uses = "
                                        + pswdFromDB.getRemainingUses()+"\n");
                  else
                      System.out.println("Password Object  = NULL!");
            rs = stmt.executeQuery("SELECT * FROM Student");
            if(!rs.next())
                 System.out.println("Student table contains no records.");
              else
                 System.out.println("Student table still contains records!");
            rs = stmt.executeQuery("SELECT * FROM StudentUserBridge");
            if(!rs.next())
                 System.out.println("StudentUserBridge table contains no records.");
              else
                 System.out.println("StudentUserBridge table still contains records!");
             stmt.close(); // closing Statement also closes ResultSet
        } // end of main()
         // Method to write object to byte array and then insert into prepared statement
        public static byte[] serializeObj(Object obj)
                                  throws IOException
              ByteArrayOutputStream baOStream = new ByteArrayOutputStream();
            ObjectOutputStream objOStream = new ObjectOutputStream(baOStream);
            objOStream.writeObject(obj); // object must be Serializable
            objOStream.flush();
            objOStream.close();
            return baOStream.toByteArray(); // returns stream as byte array
         // Method to read bytes from result set into a byte array and then
         // create an input stream and read the data into an object
        public static Object deserializeObj(byte[] buf)
                                      throws IOException, ClassNotFoundException
             Object obj = null;
            if (buf != null)
              ObjectInputStream objIStream =
                new ObjectInputStream(new ByteArrayInputStream(buf));
              obj = objIStream.readObject(); // throws IOException, ClassNotFoundException
            return obj;
      } // end of class
    //STLogon.java
    import javax.swing.*;
    import javax.swing.border.TitledBorder;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.io.*;
    import java.sql.*;
    public class STLogon extends JFrame implements ActionListener, Activator
        StudentDB db;
        User user = null;
        String userID;
        String password;
        JTextField userIDField;
        JPasswordField passwordField;
        JButton jbtLogon;
        public STLogon()
            super("Stock Tracker"); // call super (JFrame) constructor
              int width = 300;
              int height = 100;
            try{
                 db = new StudentDB();
            catch(ClassNotFoundException ex){
                        JOptionPane.showMessageDialog(this,
                    ex.getMessage(),
                    "Class not found exception creating database object",
                    JOptionPane.ERROR_MESSAGE);
                           System.exit(0);
            catch(SQLException ex){
                        JOptionPane.showMessageDialog(this,
                    ex.getMessage(),
                    "SQL exception creating database object",
                    JOptionPane.ERROR_MESSAGE);
                           System.exit(0);
              // define GUI components
            JLabel label1 = new JLabel("User ID: ");
            userIDField = new JTextField(20);
            JLabel label2 = new JLabel("Password:   ");
            passwordField = new JPasswordField(20);
            passwordField.setEchoChar('*');
            jbtLogon = new JButton("Log on");
              // set up GUI
            JPanel userPanel= new JPanel(new BorderLayout());
            userPanel.add(label1,BorderLayout.CENTER);
            userPanel.add(userIDField,BorderLayout.EAST);
            JPanel pswdPanel= new JPanel(new BorderLayout());
            pswdPanel.add(label2,BorderLayout.CENTER);
            pswdPanel.add(passwordField,BorderLayout.EAST);
            JPanel buttonPanel= new JPanel(new FlowLayout());
            buttonPanel.add(jbtLogon);
            JPanel contentPanel= new JPanel(new BorderLayout());
            contentPanel.add(userPanel, BorderLayout.NORTH);
            contentPanel.add(pswdPanel, BorderLayout.CENTER);
            contentPanel.add(buttonPanel, BorderLayout.SOUTH);
             contentPanel.setBorder(new TitledBorder("Log on"));
            setContentPane(contentPanel);
            // add listeners
            jbtLogon.addActionListener(this);
            addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e)
                                       try {db.close();
                                    catch(Exception ex)
                                    System.exit(0);
              // Enable Enter key for each JButton
              InputMap map;
              map = jbtLogon.getInputMap();
              if (map != null){
                   map.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0,false), "pressed");
                   map.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0,true), "released");
            pack();
              if( width < getWidth())                    // prevent setting width too small
                 width = getWidth();
              if(height < getHeight())               // prevent setting height too small
                   height = getHeight();
              centerOnScreen(width, height);
           public void centerOnScreen(int width, int height)
             int top, left, x, y;
             // Get the screen dimension
             Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
             // Determine the location for the top left corner of the frame
             x = (screenSize.width - width)/2;
             y = (screenSize.height - height)/2;
             left = (x < 0) ? 0 : x;
             top = (y < 0) ? 0 : y;
             // Set the frame to the specified location & size
           this.setBounds(left, top, width, height);
         private boolean validUser(String userID,String password)
                        throws PasswordException,SQLException,IOException,ClassNotFoundException
              boolean userOK = false;
              user = db.getUser(userID); // get user object from DB for this ID
              if(user != null)
                   user.validate(password); // throws PasswordException
                   userOK = true;
                   if(user.pswdAutoExpires())     // if tracking uses
                        db.updUser(user);          // update DB for this use
             return userOK;
        private void doStockActivity()throws PasswordException,SQLException,
                                                      IOException,ClassNotFoundException
            StockTracker f = new StockTracker(user,this,db);
            f.pack();
            this.setVisible(false);
            f.setVisible(true);
        public void activate()
            this.setVisible(true);
            userIDField.setText("");
            userIDField.requestFocus();
            user = null;
        public void actionPerformed(ActionEvent e)
              try
                   userID = userIDField.getText();
                if(userID.equals(""))
                           JOptionPane.showMessageDialog(this,
                            "Please enter a valid user ID.",
                           "Missing User ID.",
                           JOptionPane.ERROR_MESSAGE);
                       userIDField.requestFocus();
                   else
                        password = new String(passwordField.getPassword());
                     if(password.equals(""))
                                JOptionPane.showMessageDialog(this,
                                 "Please enter a valid password.",
                                "Missing Password.",
                                JOptionPane.ERROR_MESSAGE);
                            passwordField.requestFocus();
                        else
                             try
                                  // See if userID exists and validate password
                                  if(validUser(userID,password))
                                   if(user.pswdIsExpiring())
                                              JOptionPane.showMessageDialog(this,
                                                             user.getUserID()+" logon successful; "
                                                +user.getPswdUses()+" use(s) remaining.");
                                    if(e.getSource() == jbtLogon)
                                               doStockActivity();
                               else
                                    JOptionPane.showMessageDialog(this, "Invalid user.");
                             catch (PasswordExpiredException ex)
                                  JPasswordField pf1 = new JPasswordField();
                                  JPasswordField pf2 = new JPasswordField();
                                  Object[] message1 = new Object[]
                                            {"Password has expired. Please enter a new password.", pf1};
                                  Object[] options = new String[] {"OK", "Cancel"};
                                  JOptionPane op1 = new JOptionPane(message1,
                                                                     JOptionPane.WARNING_MESSAGE,
                                                              JOptionPane.OK_CANCEL_OPTION, null, options);
                                  JDialog dialog1 = op1.createDialog(null, "Change Password");
                                  dialog1.show();
                                  if(op1.getValue() != null && options[0].equals(op1.getValue()))
                                       String pswd1 = new String(pf1.getPassword());
                                       if(pswd1 != null)
                                           Object[] message2 = new Object[]
                                                               {"Please verify new password.", pf2};
                                            JOptionPane op2 = new JOptionPane(message2,
                                                                               JOptionPane.WARNING_MESSAGE,
                                                                       JOptionPane.OK_CANCEL_OPTION,
                                                                       null, options);
                                            JDialog dialog2 = op2.createDialog(null, "Verify Password");
                                            dialog2.show();
                                            if(op2.getValue() != null && options[0].equals(op2.getValue()))
                                                 String pswd2 = new String(pf2.getPassword());
                                                 if(pswd2 != null)
                                                      if(pswd1.equals(pswd2))
                                                        user.changePassword(password, pswd1);
                                                           db.updUser(user);
                                                           doStockActivity();
                                                      else
                                                           JOptionPane.showMessageDialog(this,
                                                          "Both passwords are not identical.",
                                                         "Password not changed",
                                                         JOptionPane.ERROR_MESSAGE);
                 userIDField.setText("");
                passwordField.setText("");
                userIDField.requestFocus();
            }// end of try
            catch (PasswordUsedException ex)
                JOptionPane.showMessageDialog(this,
                    ex.getMessage(),
                    "Password Previously Used. Try again.",
                    JOptionPane.ERROR_MESSAGE);
            catch (PasswordSizeException ex)
                JOptionPane.showMessageDialog(this,
                    ex.getMessage(),
                    "Invalid password size. Try again.",
                    JOptionPane.ERROR_MESSAGE);
            catch (PasswordInvalidFormatException ex)
                if(ex.getCount() > 2) // allows only 3 tries, then exits program
                     System.exit(0);
                else
                     JOptionPane.showMessageDialog(this,ex.getMessage()+", count:"+ex.getCount(),
                                                        "Invalid password format. Try again.",
                                                              JOptionPane.ERROR_MESSAGE);
            catch (PasswordInvalidException ex)
                if(ex.getCount() > 2) // allows only 3 tries, then exits program
                     System.exit(0);
                else
                     JOptionPane.showMessageDialog(this,ex.getMessage()+", count:"+ex.getCount(),
                                                        "Invalid password. Try again.",
                                                              JOptionPane.ERROR_MESSAGE);
            catch (PasswordException ex)
                JOptionPane.showMessageDialog(this,
                    ex.getMessage(),
                    "PasswordException.",
                    JOptionPane.ERROR_MESSAGE);
            catch (IOException ex)
                JOptionPane.showMessageDialog(this,
                    ex.getMessage(),
                    "IOException.",
                    JOptionPane.ERROR_MESSAGE);
            catch (SQLException ex)
                JOptionPane.showMessageDialog(this,
                    ex.getMessage(),
                    "SQLException.",
                    JOptionPane.ERROR_MESSAGE);
            catch (ClassNotFoundException ex)
                JOptionPane.showMessageDialog(this,
                    ex.getMessage(),
                    "ClassNotFoundException.",
                    JOptionPane.ERROR_MESSAGE);
        public static void main(String[] argv)
              final STLogon f = new STLogon();
              f.setVisible(true);
    //StudentDB.java
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    public class StudentDB
         private Connection con = null;
         // Constructor; makes database connection
        public StudentDB() throws ClassNotFoundException,SQLException
              if(con == null)
                   String url = "jdbc:odbc:saad";
                 try
                      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                   catch(ClassNotFoundException ex)
                        throw new ClassNotFoundException(ex.getMessage() +
                                  "\nCannot locate sun.jdbc.odbc.JdbcOdbcDriver");
                 try
                        con = DriverManager.getConnection(url);
                   catch(SQLException ex)
                        throw new SQLException(ex.getMessage()+
                                  "\nCannot open database connection for "+url);
         // Close makes database connection; null reference to connection
         public void close() throws SQLException,IOException,ClassNotFoundException
              con.close();
               con = null;
         // Method to serialize object to byte array
        private byte[] serializeObj(Object obj) throws IOException
              ByteArrayOutputStream baOStream = new ByteArrayOutputStream();
            ObjectOutputStream objOStream = new ObjectOutputStream(baOStream);
            objOStream.writeObject(obj); // object must be Serializable
            objOStream.flush();
            objOStream.close();
            return baOStream.toByteArray(); // returns stream as byte array
         // Method to deserialize bytes from a byte array into an object
        private Object deserializeObj(byte[] buf)
                             throws IOException, ClassNotFoundException
             Object obj = null;
            if (buf != null)
                   ObjectInputStream objIStream =
                      new ObjectInputStream(new ByteArrayInputStream(buf));
                obj = objIStream.readObject(); //IOException, ClassNotFoundException
            return obj;
         // Methods for adding a record to a table
        // add to the Student Table
         public void addStudent(String IDNumber, String FirstName, String LastName)
                     throws SQLException, IOException, ClassNotFoundException
              Statement stmt = con.createStatement();
               stmt.executeUpdate("INSERT INTO Student VALUES ('"
                                 +IDNumber+"'"+",'"+FirstName+"'"+",'"+LastName+"')");
               stmt.close();
         // add to the Users table
         public boolean addUser(User user) throws SQLException,IOException,
                                                  ClassNotFoundException
           boolean result = false;
          String dbUserID;
          String dbLastName;
          String dbFirstName;
          Password dbPswd;
          String dbemail;
          boolean isAdmin;
          dbUserID = user.getUserID();
          if(getUser(dbUserID) == null)
                dbLastName = user.getFirstName();
                dbFirstName = user.getLastName();
              Password pswd = user.getPassword();
    //          dbemail = user.getEmail();
                isAdmin = user.isAdmin();
              PreparedStatement pStmt = con.prepareStatement(
                  "INSERT INTO Users VALUES (?,?,?,?,?,?)");
              pStmt.setString(1, dbUserID);
              pStmt.setString(2, dbFirstName);
              pStmt.setString(3, dbLastName);
              pStmt.setBytes(4, serializeObj(pswd));
    //          pStmt.setString(5, dbemail);
              pStmt.setBoolean(5, isAdmin);
              pStmt.executeUpdate();
              pStmt.close();
              result = true;
           else
                throw new IOException("User exists - cannot add.");
           return result;
         // add to the UserStocks table
         public void addStudentUserBridge(String userID, String IDNumber)
                     throws SQLException,IOException,ClassNotFoundException
              Statement stmt = con.createStatement();
               stmt.executeUpdate("INSERT INTO StudentUserBridge VALUES ('"
                                 +userID+"'"
                                 +",'"+IDNumber+"')");
               stmt.close();
         // Methods for updating a record in a table
        // updating the Users Table
         public boolean updUser(User user) throws SQLException,IOException,
                                                  ClassNotFoundException
           boolean result = false;
             String dbUserID;
          String dbLastName;
          String dbFirstName;
          Password dbPswd;
          String dbemail;
          boolean isAdmin;
          dbUserID = user.getUserID();
          if(getUser(dbUserID) != null)
                dbLastName = user.getFirstName();
                dbFirstName = user.getLastName();
              Password pswd = user.getPassword();
    //          dbemail = user.getEmail();
                isAdmin = user.isAdmin();
              PreparedStatement pStmt = con.prepareStatement("UPDATE Users SET FirstName = ?,"
                                           +" LastName = ?, pswd = ?, email = ?, admin = ? WHERE userID = ?");
              pStmt.setString(1, dbFirstName);
              pStmt.setString(2, dbLastName);
              pStmt.setBytes(3, serializeObj(pswd));
    //          pStmt.setString(4, dbemail);
              pStmt.setBoolean(4, isAdmin);
              pStmt.setString(5, dbUserID);
              pStmt.executeUpdate();
              pStmt.close();
              result = true;
           else
                throw new IOException("User does not exist - cannot update.");
           return result;
         // Methods for deleting a record from a table
        // delete a record from the Student Table
         private void delStudent(String IDNumber)
                      throws SQLException,IOException,ClassNotFoundException
              Statement stmt = con.createStatement();
               stmt.executeUpdate("DELETE FROM Student WHERE "
                                 +"IDNumber = '"+IDNumber+"'");
            stmt.close();
        // delete a record from the Users Table
         public void delUser(User user) throws SQLException,IOException,
                                                  ClassNotFoundException
               String dbUserID;
            String stockSymbol;
              Statement stmt = con.createStatement();
              try {
                   con.setAutoCommit(false);
                   dbUserID = user.getUserID();
                   if(getUser(dbUserID) != null)  // verify user exists in database
                         ResultSet rs1 = stmt.executeQuery("SELECT userID, IDNumber "
                                           +"FROM StudentUserBridge WHERE userID = '"+dbUserID+"'");
                         while(rs1.next())
                         try
                             stockSymbol = rs1.getString("IDNumber");
                                  delUserStocks(dbUserID, stockSymbol);
                            catch(SQLException ex)
                                  throw new SQLException("Deletion of user student failed: "
                                                        +ex.getMessage());
                          } // end of loop thru UserStocks
                    try
                    {  // holdings deleted, now delete user
                             stmt.executeUpdate("DELETE FROM Users WHERE "
                                           +"userID = '"+dbUserID+"'");
                       catch(SQLException ex)
                             throw new SQLException("User deletion failed: "+ex.getMessage());
                     else
                          throw new IOException("User not found in database - cannot delete.");
                   try
                      con.commit();
                    catch(SQLException ex)
                        throw new SQLException("Transaction commit failed: "+ex.getMessage());
              catch (SQLException ex)
                   try
                        con.rollback();
                   catch (SQLException sqx)
                        throw new SQLException("Transaction failed then rollback failed: "
                                              +sqx.getMessage());
                   // Transaction failed, was rolled back
                   throw new SQLException("Transaction failed; was rolled back: "
                                         +ex.getMessage());
            stmt.close();
        // delete a record from the StudentUserBridge Table
         public void delUserStocks(String userID, String stockSymbol)
                     throws SQLException,IOException,ClassNotFoundException
              Statement stmt = con.createStatement();
             ResultSet rs;
               stmt.executeUpdate("DELETE FROM StudentUserBridge WHERE "
                                 +"userID = '"+userID+"'"
                                 +"AND IDNumber = '"+stockSymbol+"'");
               rs = stmt.executeQuery("SELECT IDNumber FROM StudentUserBridge "
                                     +"WHERE IDNumber = '"+stockSymbol+"'");
                 if(!rs.next()) // no users have this stock
    //               delStock(stockSymbol);
               stmt.close();
         // Methods for listing record data from a table
         // Ordered by:
         //           methods that obtain individual field(s),
         //           methods that obtain a complete record, and
         //           methods that obtain multiple records
         // Methods to access one or more individual fields
        // get a stock description from the Stocks Table
         public String getStockDesc(String stockSymbol)
                       throws SQLException, IOException, ClassNotFoundException
              Statement stmt = con.createStatement();
                String stockDesc = null;
               ResultSet rs = stmt.executeQuery("SELECT IDNumber, name FROM Student "
                                               +"WHERE IDNumber = '"+stockSymbol+"'");
               if(rs.next())
                   stockDesc = rs.getString("IDNumber");
               rs.close();
               stmt.close();
                return stockDesc;
         // Methods to access a complete record
        // get User data from the Users Table
         public User getUser(String UserID) throws SQLException, IOException,
                                                   ClassNotFoundException
           Statement stmt = con.createStatement();
             String dbUserID;
          String dbLastName;
          String dbFirstName;
          Password dbPswd;
          String dbemail;
          boolean isAdmin;
          byte[] buf = null;
          User user = null;
          ResultSet rs = stmt.executeQuery("SELECT * FROM Users WHERE userID = '"
                                          +UserID+"'");
          if(rs.next())
                dbUserID = rs.getString("userID");
                 dbFirstName = rs.getString("FirstName");
                 dbLastName = rs.getString("LastName");
                 dbemail = rs.getString("email");
            // Do NOT use with JDK 1.2.2 using JDBC-ODBC bridge as
            // SQL NULL data value is not handled correctly.
              buf = rs.getBytes("pswd");
                 dbPswd = (Password)deserializeObj(buf);
                 isAdmin = rs.getBoolean("admin");
                user = new User(dbUserID,dbFirstName,dbLastName,dbPswd,isAdmin);
          rs.close();
          stmt.close();
           return user; // User object created for userID
         // Methods to access a list of records
        // get list of selected fields for all records from the Users Table
         public ArrayList listUsers() throws SQLException,IOException,
                                             ClassNotFoundException
          ArrayList aList = new ArrayList();
           Statement stmt = con.createStatement();
          ResultSet rs = stmt.executeQuery("SELECT userID, FirstName, LastName, admin "
                                          +"FROM Users ORDER BY userID");
          while(rs.next())
                aList.add(rs.getString("userID"));
                  aList.add(rs.getString("FirstName"));
                  aList.add(rs.getString("LastName"));
                  aList.add(new Boolean(rs.getBoolean("admin")));
          rs.close();
          stmt.close();
          return aList;
        // get all fields in all records for a given user from the Userstocks Table
         public ArrayList listUserStocks(String userID) throws SQLException,IOException,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

    saaddani wrote:
    No information popped up in the console window before, during, or after the error was given. The program compiled and ran and therefore no error information was provided in the complier window either.
    If I am missing what you are asking then please provide instructions as to how to find this error information. You are posting the error message for the exception but not printing the stack trace.
    Far as I can tell you are printing more information with each exception (for example "Exception creating Users table") but you did not post what that was, that info would localize the problem.
    As a guess the problem is when you extract the fields via the query. You are using named values rather than indexes and you use "select *" rather than specifically naming the columns. Some databases (for example Oracle), require that using names must be in exactly the same order as the query returns them. You have no idea what that order is because you use "select *"
    Finally it would be a LOT easier if you wrote classes that did nothing but the database operations. NO GUI CODE. You then test that code to make sure it works. Once that code works then you write gui code which uses those classes. Besides making it easier to understand you are also more likely to get assistance since there is less code to look at.

  • TS3899 After updating to ISO6, my email sending get extremely slow or dispeard. on the botton line of mail page always indicate "sending # of 9", however I do not know where to check or delete these unsent items. Please help! It has consumed lots of data.

    After updating to ISO6, my email sending get extremely slow or dispeard. on the botton line of mail page always indicate "sending # of 9", however I do not know where to check or delete these unsent items. Please help! It has consumed lots of data.
    I use @me.com and @hotmail.com

    Hi,
    >>A CHAR datatype and VARCHAR2 datatype are stored identically (eg: the word 'WORD' stored in a CHAR(4) and a varchar2(4) consume exactly the same amount of space on disk, both have leading byte counts).
    Ok, but on the other hands:
    SGMS@ORACLE10> create table x (name char(10), name2 varchar2(10));
    Table created.
    SGMS@ORACLE10> insert into  x values ('hello','hello');
    1 row created.
    SGMS@ORACLE10> commit;
    Commit complete.
    SGMS@ORACLE10> select vsize(name),vsize(name2) from x;
    VSIZE(NAME) VSIZE(NAME2)
             10            5
    SGMS@ORACLE10> select dump(name),dump(name2) from x;
    DUMP(NAME)                                         DUMP(NAME2)
    Typ=96 Len=10: 104,101,108,108,111,32,32,32,32,32  Typ=1 Len=5: 104,101,108,108,111Cheers

  • Attachment in OSX Mail are placed in random areas within e-mail

    Why is it when I add an attachment to Mail in OSX mail, it places the attachement in random places within my typed e-mail? Why doesn't it just attach blow in a designate spot? Instead I could type out a long e-mail and then when I place the attachment it puts it in some random spot within the e-mail, breaking up the formatting of the e-mail and making it look very unprofessional. I am working with OSX Lion but this also happens on non Lion Machines. Most of the files are Word 2011 files, some others are Excel, while also occuring with JPEG, and MPEG. Fix this please.

    Being users like yourself, we cannot really fix anything.
    But...
    As far as I can tell, the attachment always gets inserted where your cursor is currently located.
    You can, of course, move the attachment to any place you want, e.g., the end of the message, by dragging.
    charlie

  • How can I resolve Exception : "Count Field Incorrect" error

    Hi all,
    I am experiencing with "Count Field incorrect" error. What's wrong with it? How can I resolve it?
    This error is occured at UPDATE function of SQL. My JSP page is to update the old record.
    Sometimes, "Update statement error" message appear. These two problems I always confusing.
    What are the possible point of these error in my Java file and JSP page? I use package import to JSP Page.
    Pls help me.
    With thanks,

    Thanks,
    Your URLs help me exectly. But after I have changed my code, the error is changed to "Too Few Parameters : Expected 35". What's wrong with it? The following is my code.
    try {                                                                                                                                                                                                                
    String DRIVER = ("sun.jdbc.odbc.JdbcOdbcDriver");               
    String URL = "jdbc:odbc:Industrial_One_DSN";
    String sql = "UPDATE BusinessRegistration " +
    "SET [Date] = ?, ISIC = ?, BizName = ?, BizAddress = ?, " +
    "OwnerName = ?, OwnerNRC = ?, Investment = ?, EstablishedYear = ?, " +
    "L_Male = ?, L_Female = ?, F_Male = ?, F_Female = ?, " +
    "OwnershipType = ?, Remarks = ?, IndustialZoneName = ?, Unit = ?, " +
    "Fuel = ?, FactoryType = ?, FactoryName = ?, Township = ? " +
    "MainProductName = ?, MainProductCountType = ?, " +
    "MainProductQuantity = ?, MainProductValue = ?, RMName = ?, " +
    "RMCountType = ?, RMQuantity = ?, RMValue = ?, EnergyName = ?, " +
    "MachinePower = ?, AmountGallon = ?, StateDiv = ?, BizSize = ?  " +
    "WHERE RegistrationID = ?";
    Class.forName(DRIVER);
    Connection con = DriverManager.getConnection(URL);
    PreparedStatement pstmt = con.prepareStatement(sql);
    int ilmale = Integer.parseInt(lmale);
    int ilfemale = Integer.parseInt(lfemale);
    int ifmale = Integer.parseInt(fmale);
    int iffemale = Integer.parseInt(ffemale);
    int impq = Integer.parseInt(mpq);
    int impv = Integer.parseInt(mpv);
    int irmq = Integer.parseInt(rmq);
    int irmv = Integer.parseInt(rmv);
    int iamountgallon = Integer.parseInt(amountgallon);
    pstmt.setString(1, date);
    pstmt.setString(2, isic);
    pstmt.setString(3, bizname);
    pstmt.setString(4, bizaddress);
    pstmt.setString(5, ownername);
    pstmt.setString(6, ownernrc);
    pstmt.setString(7, investment);
    pstmt.setString(8, eyear);
    pstmt.setInt(9, ilmale);
    pstmt.setInt(10, ilfemale);
    pstmt.setInt(11, ifmale);
    pstmt.setInt(12, iffemale);
    pstmt.setString(13, ownershiptype);
    pstmt.setString(14, remark);
    pstmt.setString(15, izn);
    pstmt.setString(16, unit);
    pstmt.setString(17, fuel);
    pstmt.setString(18, ft);
    pstmt.setString(19, fname);
    pstmt.setString(20, township);
    pstmt.setString(21, mpn);
    pstmt.setString(22, mpct);
    pstmt.setInt(23, impq);               
    pstmt.setInt(24, impv);
    pstmt.setString(25, rmname);
    pstmt.setString(26, rmct);
    pstmt.setInt(27, irmq);
    pstmt.setInt(28, irmv);
    pstmt.setString(29, ename);
    pstmt.setString(30, mpower);
    pstmt.setInt(31, iamountgallon);
    pstmt.setString(32, statediv);
    pstmt.setString(33, bizsize);
    pstmt.setInt(34, Integer.parseInt(rid));
    pstmt.executeUpdate();
    }I have got 35 fields in my db. But i wanna edit 34 fields only. I have no primary key in my table. Is't alright?
    pls keep on helping me.
    With thanks,
    WTDAHL

  • E-mail counter for POP3 account has gone negative

    When all e-mails are read the e-mail counter shows "-1/0".  Anyone else have this problem?  Is there a fix?

    Yeah it's just an annoyance really.  It now says "-2/0", while my empty deleted items folder has a 2 next to it.  Weird.  I noticed an e-mail dated Dec 31,1969 just before it went to -2.  I always delete everything anyway since all messages are saved at home, so I suppose I could delete the account and set it up again.

  • When I hit reply on the .Mac Mail site, an incorrect address is generatedW

    When I'm using the mail program on the Internet .mac site, and hit reply to respond to a letter I received, inevitably the automatic address generated by the program won't function. The reply button puts the person's name and then e-mail address in brackets on the address line. When I hit the command to send, I receive a message that the address is not a valid e-mail address. Then I have to go back and erase the name and remove the brackets-then I am able to send the e-mail. Is everyone having this problem with mail on the .Mac site? I mean I am not typing in the e-mail address incorrectly. The program generates the return e-mail address when I hit reply and it is always incorrect because it puts the person's name as part of the e-mail. Am I doing something wrong?
    Thanks
    Jim Lindsey

    Hi,
    This happens to me when the person's name you are
    replying to contains a comma and webmail tries to
    send it to two people.
    eg if a mail comes from SURNAME, FORENAME
    <[email protected]> then I will get an
    error as the program thinks that SURNAME is an
    invalid address
    but I get an error message every time. It brings up the person's name followed by the email address in brackets. Then when I try to send, I get the message that this is not a valid address. Is this happening with everyone on .Mac site? Surely not or they would fix it.

  • Since upgrading to OS 10.8.5 login keychain corrupted keeps asking for password for OSX, mail and Safari. Solutions?

    Ever since upgrading to OS 10.8.5 login keychain corrupted; keeps asking for pasword tor OSX, mail and Safari. Help!

    Have you tried opening Keychain Access and running Keychain First Aid (under the Keychain Access menu) on the login keychain?

  • Mail hang with multiple pop accounts and invalid new mail counter

    All
    More than a year ago, I migrated all email accounts from Outlook to Apple Mail using O2M application. I have 2 pop accounts and gmail account. Everything worked fine for a few month but then Mail started to hang during message receiving. It did so very often (4/5 times). When it does, nothing will revive it except a "force quit".
    I tried to fetch email from each account individually, that worked well every time. After I was sure that it has to do with getting new mail simultaneously, I tried everything to fix it. I tried to reconstruct all the mail boxes, I tried using only 2 boxes with all combinations (1 pop 1 gmail, 2 pop, etc) but nothing worked.
    I even tried to export all my mail boxes, then delete everything from Mail then reimport them with no luck.
    In addition, a couple of months later, my "Inbox" new mail counter started to sometimes displaying the wrong new mail count. It displays 2-4 new messages while there is none. In order to be sure, I created a smart mail box to have only new mail and it had none. By simply switching to any other folder then returning back to Inbox solves the problem.
    Can any one help?

    Make absolutely sure that your email addresses and configuration are correct. In nearly every case I've encountered, this is the problem.
    If you've confirmed this, make sure you're configured properly on your webmail account, if you have one. Webmail is something like ATT, the source of your internet.
    If you're still flummoxed, play hardball. Make sure you have all your current account info and passwords, and delete them in Mail/Preferences/Accounts. Then, reenter them one by one until they're perfect. This makes sure your settings are consistent and correct.

  • Dear support @Apple,  I have tried to log in App Store with my Apple ID 3 times but never possible.  I have tried to change password 2 times. It was successful.But soon after change of my password, I could not log in App store.  It says always incorrect u

    Dear support @Apple,
    I have tried to log in App Store with my Apple ID 3 times but never possible.
    I have tried to change password 2 times.
    It was successful.But soon after change of my password, I could not log in App store.
    It says always incorrect user name or password. But I input correct ! Because just I successfully changed my password through secret question.
    Third time when I tried to change password, the page did not open!
    So I checked my connection by netstat , and I trace the IP address ; 17.154.66.17 this is apple IP, but when I trace , it did not show the route. I will copy
    Traceroute has started…
    traceroute to 17.154.66.17 (17.154.66.17), 64 hops max, 72 byte packets
    1  220.224.141.129 (220.224.141.129)  490.517 ms  64.527 ms  94.524 ms
    2  115.255.239.97 (115.255.239.97)  65.157 ms  89.128 ms  89.806 ms
    3  124.124.251.241 (124.124.251.241)  104.972 ms  79.051 ms  96.948 ms
    4  * * *
    5  62.216.147.137 (62.216.147.137)  102.266 ms  85.581 ms  88.352 ms
    6  xe-0-0-0.0.pjr04.ldn001.flagtel.com (85.95.25.186)  221.939 ms  225.223 ms  236.605 ms
    7  xe-11-0-0.edge5.london1.level3.net (212.187.138.53)  231.629 ms  232.045 ms  233.673 ms
    8  ae-52-52.csw2.london1.level3.net (4.69.139.120)  373.798 ms  390.412 ms  383.277 ms
    9  ae-57-222.ebr2.london1.level3.net (4.69.153.133)  382.653 ms  382.558 ms  376.740 ms
    10  ae-43-43.ebr1.newyork1.level3.net (4.69.137.74)  405.088 ms  377.679 ms  386.527 ms
    11  ae-91-91.csw4.newyork1.level3.net (4.69.134.78)  378.499 ms  389.733 ms  396.375 ms
    12  ae-92-92.ebr2.newyork1.level3.net (4.69.148.45)  391.706 ms  389.605 ms
        ae-82-82.ebr2.newyork1.level3.net (4.69.148.41)  381.615 ms
    13  4.69.135.185 (4.69.135.185)  380.183 ms  414.398 ms  387.054 ms
    14  ae-91-91.csw4.sanjose1.level3.net (4.69.153.14)  384.980 ms  381.375 ms  386.453 ms
    15  ae-4-90.edge2.sanjose3.level3.net (4.69.152.209)  377.304 ms  365.457 ms  373.281 ms
    16  * * *
    17  * * *
    18  * * *
    19  * * *
    20  * * *
    21  * * *
    22  * * *
    23  * * *
    24  * * *
    25  * * *
    26  * * *
    27  * * *
    28  * * *
    29  * * *
    30  * * *
    31  * * *
    32  * * *
    33  * * *
    34  * * *
    35  * * *
    36  * * *
    37  * * *
    38  * * *
    39  * * *
    40  * * *
    41  * * *
    42  * * *
    43  * * *
    44  * * *
    45  * * *
    46  * * *
    47  * * *
    48  * * *
    49  * * *
    50  * * *
    51  * * *
    52  * * *
    53  * * *
    54  * * *
    55  * * *
    56  * * *
    57  * * *
    58  * * *
    59  * * *
    60  * * *
    61  * * *
    62  * * *
    63  * * *
    64  * * *
    What it means??
    Please help !!
    To post this question, I tried thierd time to change password, and before I tried to log in to App store, I logged in this community, and I could !
    Then I could finally log in App store also.
    But still I feel something is wrong with my connection.
    Why the trace route does not show to the apple site ?

    This is a user to user forum. Apple is not here. Apple does not answer questions here.
    iTunes Support -
    http://www.apple.com/support/itunes/
    Mac App Store Support -
    http://www.apple.com/support/mac/app-store/

  • HTML emails are blank in OSX Mail - but they show up fine in Entourage!

    I send emails to a subscriber list through a third-party system.
    The problem is what OSX Mail does with my HTML emails! OSX Mail users get emails that appear to be totally blank. On further inspection, though, the emails are not blank at all—all the information is there if you go to View>Message>Previous Alternative. In "Raw Text", the entire message shows up, including the plain text alternative which was sent along with the HTML, and which was SUPPOSED to show up if the HTML did not.
    Notably, I've tested these same messages using Entourage to receive them on my Mac, and the messages show up exactly as they should. Is Apple aware of this problem????

    Since in general OS X Mail receives html just, there must be something about the format used by your 3rd party sender which it does not like. To make Apple aware of the problem, use the feedback channel and send them the raw source which does not display.
    http://www.apple.com/macosx/feedback/

  • Ios 7 flagged mail count is 25695 but there are no messages in flagged mailbox

    There are no messages in this iPhone in any of the mailboxes (including trash) yet the flagged mail count is over 25000, and  the mail app is using over 2.6GB

    Check or Empty your trash folders.

  • TS3276 OSX Mavericks Mail : I configured Yahoo! id in OSX mail, I noticed that sent mails are stored on Mac and not getting stored on Yahoo! sent (server) although I gave the option to store on server in preferences, is there any solution?

    I configured Yahoo! id in OSX mail, I noticed that sent mails are stored on Mac and not getting stored on Yahoo! sent (server) although I gave the option to store on server in preferences, is there any solution?

    Found solution of forum...

Maybe you are looking for

  • Caching initial contexts

    I have read the posts about caching initial context lookups and have implemented the solution and seen some benefits. I am dealing with a third party application that I cannot change. When I put my InitialContextFactory in the architecture I also log

  • How to create an API java with Netbeans???

    can you please help me on creating an api with netbeans and explaine me how can i make it communicate with existing platforms.thank's

  • Change display to avl grid in standard program

    Hi, My requirment is to modify the standard report for Creditors outstanding (monthly ageing - S_ALR_87012085), the output of this report is in hierarchical ALV, but I want to display it in Grid format. In the standard program there is call to subrou

  • Chess: java swing help need

    Hi, I have just learn java swing and now creating a chess game. I have sucessfully create a board and able to display chess pieces on the board. By using JLayeredPane, I am able to use drag and drop for the piece. However, there is a problem which is

  • Personal Oracle 11g on Windows XP, Database home page...

    Hi, I have installed Personal Oracle 11g on my my machine. The operating systems is Windows XP. I can log into SQL*Plus, I can write and execute code and sql statements. However, When I tried to go to dbconsole using "https://hostname:portnumber/em",