1 Reply Latest reply on Feb 28, 2007 6:25 AM by grosvenors

    Trouble Converting java List to ArrayCollection

      I'm using RemoteObjects to connect to my backend. In one of my calls
      I'm trying to return a List of VO's I create after hitting my database.

      On the Flex side, my result event is firing properly, but when I try
      to convert the result to an ArrayCollection, instead of getting a
      proper ArrayCollection I get single element that displays the
      following when I output it in an alert: "obj is: '[object TestVO],
      [object TestVO], ... [object TestVO]'".

      If I return a single TestVO object directly instead of a List, I can
      properly cast the result to my ActionScript TestVO object and view the
      data properly. It's just returning the List that's giving me problems.

      Can anyone offer any suggestions please?

      My Flex result code is:

      public function result(evt:Object):void {
      if(evt.type && evt.type == ResultEvent.RESULT) {
      var re:ResultEvent = evt as ResultEvent;
      var col:ArrayCollection = new
      if(col) {
      Alert.show("obj is: '" + col.getItemAt(0) + "'");
      else Alert.show("Didn't cast properly!");

      My Java DAO code that returns the list is:

      public List getList() throws DAOException {
      List list = new ArrayList();
      Connection c = null;

      try {
      c = ConnectionHelper.getConnection();
      Statement s = c.createStatement();
      ResultSet rs = s.executeQuery("SELECT * FROM test");
      while(rs.next()) {
      TestVO vo = new TestVO();
      vo.id = rs.getInt("id");
      vo.data = rs.getString("data");
      } catch(Exception e) {
      throw new DAOException(e);
      } finally {
      return list;
        • 1. Re: Trouble Converting java List to ArrayCollection
          It looks to me like you may be trying to access your list in the result object a touch too high...
          It looks like the list is getting transferred to the client and recognized as TestVO objects on the client (that's good).

          When you access 'col.getItemAt(0)' it looks from the Alert that this is a reference to the entire List... not the first element in the List...

          Have you tried running in debug mode and putting just after you assign 'col' and seeing what structure you are actually getting?