Not sure as to an answer to your question (I'm not that familiar with the internals), however, as a work-around you could probably do something like:
MyObject arr[] = new MyObject[list.size()]; serialize(arr); send(arr); ----- recv(arr) list.addAll(arr); Obviously abbreviated, and doesn't quite answer the question, but there's definitely ways to get the data from A to B differently... - Dan On Tue, Oct 13, 2009 at 3:32 PM, dsukhram <[email protected]> wrote: > > I can return an ArrayList of Strings just not an ArrayList of my Stop > object. And since this whole process works fine when I take android > out of the equation..this leads me to believe that serialization is > handled slightly differently in android. Anybody? > > On Oct 12, 6:28 pm, dsukhram <[email protected]> wrote: > > I am writing an android client app which sends a Hashtable to a remote > > servlet and recieves an ArrayList consisting of a custom Object which > > is serializable. This ran fine when I was just receiving the > > ArrayList from a java console app. So I know my objects are being > > serialized and deserialized properly. But when I port the same client > > code over to android I get an error when trying to read the ArrayList > > of my objects that is sent back from the servlet. > > > > Is there any differences in the way Android does serialization? I > > can't seem to find any documentation that says it does. The error I > > receive is: > > > > java.lang.IndexOutOfBoundsException: Invalid location > > > > at java.util.ArrayList.get(ArrayList.java:350) > > > > ============ My Android Client app is as > > follows================================= > > > > public class TTCPointService { > > private Logger logger; > > private FileHandler handler; > > > > public TTCPointService(){ > > > > try > > { > > logger = > Logger.getLogger(TTCPointService.class.getName()); > > handler = new FileHandler("ttcservice.log"); > > handler.setFormatter(new SimpleFormatter()); > > logger.addHandler(handler); > > } > > catch(IOException e) > > { > > logger.log(Level.SEVERE,e.toString()); > > } > > } > > > > public ArrayList<Stop> ConnectToServlet() > > { > > ArrayList<Stop> list = new ArrayList<Stop>(); > > > > Hashtable<String, String>obj = new Hashtable<String,String>(); > > obj.put("lat", "12.00"); > > obj.put("log", "-23.00"); > > > > try > > { > > URL servletURL = new URL("http://192.168.0.69:8080/ > > GTFSProcessor/TTCPoints"); > > HttpURLConnection servletConnection = (HttpURLConnection) > > servletURL.openConnection(); > > servletConnection.setDoOutput(true); > > servletConnection.setDoInput(true); > > servletConnection.setUseCaches(false); > > servletConnection.setDefaultUseCaches(false); > > > > servletConnection.setRequestProperty("Content- > > type","application/x-java-serialized-object"); > > servletConnection.setRequestMethod("POST"); > > logger.log(Level.INFO,"Connecting to Servlet"); > > > > //Send object to servlet > > OutputStream os = servletConnection.getOutputStream(); > > ObjectOutputStream oos = new ObjectOutputStream(os); > > oos.writeObject(obj); > > > > oos.flush(); > > oos.close(); > > logger.log(Level.INFO,"Hashtable sent to Servlet"); > > > > //Read from servlet > > InputStream is = servletConnection.getInputStream(); > > ObjectInputStream ois = new ObjectInputStream(is); > > > > list = (ArrayList<Stop>)ois.readObject(); > > logger.log(Level.INFO,"Reading Object from Servlet"); > > > > os.close(); > > > > } > > catch(IOException e) > > { > > logger.log(Level.SEVERE,e.toString()); > > } > > catch(ClassNotFoundException e) > > { > > logger.log(Level.SEVERE,e.toString()); > > } > > return(list); > > } > > > > } > > > > =============The code that raises the error > > is=================================== > > > > ArrayList<Stop> list = new ArrayList<Stop>(); > > TTCPointService service = new TTCPointService(); > > list = (ArrayList<Stop>)service.ConnectToServlet(); > > > > Toast.makeText(mapView.getContext(), "list contains: > > "+list.get(0).getName(), Toast.LENGTH_SHORT).show(); > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

