title: "java.io.StreamCorruptedException: invalid type code: AC"- Error found while running the client code from the server-client java program
body: <p>Well, I am trying to read a .xml file from the XMLParser so basically I want to read the XML files and print it out from the server to the client, but while running the client code i am getting:</p>
  
  <pre><code>java.io.StreamCorruptedException: invalid type code: AC
  </code></pre>
  
  <p>The Client code is:</p>
  
  <pre><code>import java.awt.BorderLayout;
  import java.awt.Container;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  import java.io.IOException;
  import java.io.ObjectInputStream;
  import java.io.ObjectOutputStream;
  import java.net.InetAddress;
  import java.net.Socket;
  import java.net.UnknownHostException;
  import java.util.List;
  
  import javax.swing.JComboBox;
  import javax.swing.JFrame;
  
  import server.Video;
  import server.VideoFile;
  
  @SuppressWarnings("serial")
  public class Client extends JFrame{
      Container contentPane;
      @SuppressWarnings("rawtypes")
      JComboBox selectionBox;
  
      List&lt;Video&gt; video;
      List&lt;VideoFile&gt; videoFile;
  
      Socket serverSocket;
      String host = "127.0.0.1";
      int port = 1176;
      ObjectInputStream inputFromServer;
      ObjectOutputStream out;
  
      public Client() throws Exception {
          // line 41 below
              setupGUI();
  
          System.out.println("Reading the XML File");
          MyXMLReader reader = new MyXMLReader();
          //video = reader.getList("videoList.xml");
          System.out.println("Finished reading");
      }
  
      public void openSocket() throws UnknownHostException, IOException {
           /** Obtain an address object of the server */
          serverSocket = new Socket("localhost", port);
          System.out.println("Connected to localhost in port: " + port);
          out = new ObjectOutputStream(serverSocket.getOutputStream());
          //out.flush();
          inputFromServer = new ObjectInputStream(serverSocket.getInputStream());
  
      }
  
      @SuppressWarnings("unchecked")
      public void getListFromSocket() throws IOException, ClassNotFoundException {
          try{
          video = (List&lt;Video&gt;)inputFromServer.readObject();
          } catch (IOException e) {
              e.printStackTrace();
              System.exit(-1);
          }
          //serverSocket.close();
      }
      public void runClient() throws Exception {
  
              try {
                  openSocket();
                  getListFromSocket();
                  serverSocket.close();
                  setupGUI();
                  } catch (UnknownHostException e) {
                  System.out.println("Don't know about host : " + host);
                  System.exit(-1);
                  } catch (IOException e) {
                  e.printStackTrace();
                  System.out.println("Couldn't open I/O connection : " + host + ":" + port);
                  System.exit(-1);
                  } catch (ClassNotFoundException e) {
                  System.out.println("Class definition not found for incoming object.");
                  e.printStackTrace();
                  System.exit(-1);
              }
  
      }
  
      @SuppressWarnings({ "unchecked", "rawtypes" })
      private void setupGUI() throws Exception{
          setTitle("A Client");
          setSize(600, 400);
          setVisible(true);
          contentPane = getContentPane();
          contentPane.setLayout(new BorderLayout());
  
              runClient();
  
          // line 105 below
          String [] selectionListData = new String[video.size()];
          for (int i = 0; i &lt; video.size(); i++) {
          selectionListData[i] = video.get(i).getFilename();
          selectionListData[i] = video.get(i).getID();
          selectionListData[i] = video.get(i).getTitle();
          System.out.println(selectionListData);
          }
          selectionBox = new JComboBox(selectionListData);
          selectionBox.setSelectedIndex(0);
          add(selectionBox, BorderLayout.NORTH);
          selectionBox.addActionListener((ActionListener) this);
  
          validate();
      }
  
      public void actionPerformed(ActionEvent e) {
          @SuppressWarnings("rawtypes")
          JComboBox comboBox = (JComboBox)e.getSource();
          String selectedTitle = (String)comboBox.getSelectedItem();
          System.out.println("Selected title : " + selectedTitle);
          }
  
  
      public static void main(String[] args) throws IOException, Exception {
              // line 127 below
          new Client();
  
      }
  
  }
  </code></pre>
  
  <p>The full error is:</p>
  
  <pre><code>    Connected to localhost in port: 1176
      java.io.StreamCorruptedException: invalid type code: AC
      at java.io.ObjectInputStream.readObject0(Unknown Source)
      at java.io.ObjectInputStream.readObject(Unknown Source)
      at client.Client.getListFromSocket(Client.java:61)
      at client.Client.runClient(Client.java:72)
      at client.Client.&lt;init&gt;(Client.java:40)
      at client.Client.main(Client.java:124)
  </code></pre>
  
  <p>Can anyone give a fix to this, I am sure its something small but I can't figure it out though.</p>
  
  <p>Thanks</p>
  
  <p>EDIT: The server code is:</p>
  
  <pre><code>package server;
  
  import java.io.IOException;
  import java.io.ObjectOutputStream;
  import java.net.ServerSocket;
  import java.net.Socket;
  import java.util.List;
  import java.lang.*;
  
  @SuppressWarnings("unused")
  public class Server extends Thread implements Runnable{
      List&lt;Video&gt; video;
      static String TimeStamp;
      //Socket Declerations
      ServerSocket serverSocket;
      int port = 1176;
      //String host = "localhost";
      Socket clientSocket;
      ObjectOutputStream outputToClient;
  
  
  
      public Server() {
          Thread();
          System.out.println("Reading the XML File");
          MyXMLReader reader = new MyXMLReader();
          //video = reader.getList("videoList.xml");
          System.out.println("Finished reading");
      }
  
      public void openSockets() throws IOException {
          try {
              serverSocket = new ServerSocket(port);
              System.out.println("Socket Connection Established....");
          } catch (IOException e) {
              System.out.println("Could not listen on port : " + port);
              System.exit(-1);
          }
          TimeStamp = new java.util.Date().toString();
          System.out.println("Opened socket on : " + port + ", waiting for client. " + TimeStamp);
  
          try {
              clientSocket = serverSocket.accept();
              //System.out.println("Sending to Client.....");
              } catch (IOException e) {
              System.out.println("Could not accept client.");
              System.exit(-1);
              }
              outputToClient = new ObjectOutputStream(clientSocket.getOutputStream());
      }
      public void writeToSocket() throws IOException {
          outputToClient = new ObjectOutputStream(clientSocket.getOutputStream());
          outputToClient.writeObject(video);
          System.out.println(outputToClient);
      }
  
      public void Thread() {
          Thread socketThread;
          socketThread = new Thread("Socket") {
          public void run() {
              try {
                  openSockets();
                  writeToSocket();
                  clientSocket.close();
                  serverSocket.close();
              } catch (IOException e) {
                  System.out.println("Error on sockets connection.");
                  e.printStackTrace();
              }
          }
  };
  socketThread.start();
  }
  
      public static void main(String[] args) throws IOException {
          new Server();
          //new Thread();
  
  
      }
  
  }
  </code></pre>
  
  <p>EDIT: New error after deleting the duplicate entry:</p>
  
  <pre><code>Exception in thread "main" java.lang.NullPointerException
      at client.Client.setupGUI(Client.java:105)
      at client.Client.&lt;init&gt;(Client.java:41)
      at client.Client.main(Client.java:127)
  </code></pre>