public static List<? extends Object> readObjects(InputStream is){
		ObjectInputStream ois = null;
		try{
			LinkedList<Object> list = new LinkedList<Object>();
			ois = new ObjectInputStream(is);
			try{
				Object o = ois.readObject();
				while(o != null){
					list.add(o);
					o = ois.readObject();
				}
			}
			catch(EOFException e){
			}
			return list;
		}
		catch(ClassNotFoundException cnfe){
			cnfe.printStackTrace();
			return null;
		}
		catch(SecurityException se){
			se.printStackTrace();
			return null;
		}
		catch(IOException ioe){
			ioe.printStackTrace();
			return null;
		}
		finally{
			if(ois != null){
				try{
					ois.close();
				}
				catch(IOException e){
					e.printStackTrace();
					return null;
				}
			}
		}
	}