title: Attempt to invoke interface method 'java.lang.Object[] java.util.Collection.toArray()'
body: <p>The code gets JSON object from a webpage and makes it to a list..somewhere here an exception is arising..Please help me... </p>
  
  <pre><code>import android.content.Context;
  import android.app.Activity;
  import android.os.AsyncTask;
  import android.os.Bundle;
  import android.view.LayoutInflater;
  import android.view.Menu;
  import android.view.MenuItem;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.ArrayAdapter;
  import android.widget.ListView;
  import android.widget.TextView;
  
  import com.squareup.okhttp.OkHttpClient;
  import com.squareup.okhttp.Request;
  import com.squareup.okhttp.Response;
  
  import org.json.JSONArray;
  import org.json.JSONException;
  import org.json.JSONObject;
  
  import java.io.IOException;
  import java.util.ArrayList;
  
  
  public class FeedActivity extends Activity implements OnFeedListener{
  
  
  ListView listview;
  FeedAdapter adapter;
  ArrayList&lt;Post&gt; posts;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
  
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_feed);
  
      listview = (ListView)findViewById(R.id.listView);
  
  
      //Data -&gt;adapter -&gt; ListView
      adapter = new FeedAdapter(getApplicationContext(),R.layout.layout_feed_item);
  
  
      listview.setAdapter(adapter);
  
      FeedTask task = new FeedTask(this);
      task.execute("https://public-api.wordpress.com/rest/v1.1/sites/androsiv.wordpress.com/posts/");
  }
  
  @Override
  public void onFeed(JSONArray array) {
      int length = array.length();
      for(int i = 0; i&lt;length; i++)
      {
          JSONObject object = array.optJSONObject(i);
           Post post = new Post(object.optString("title"),object.optString("excerpt"),object.optString("featured_image"));
  
          posts = new ArrayList&lt;&gt;();
          posts.add(post);
      }
      adapter.addAll(posts);
      adapter.notifyDataSetChanged();
  }
  
  
  public class FeedTask extends AsyncTask&lt;String, Void, JSONArray&gt;
  {
      private OnFeedListener listener;
      public FeedTask(OnFeedListener listener)
      {
          this.listener = listener;
      }
  
  
      @Override
      protected JSONArray doInBackground(String... params) {
          String url = params[0];
  
          OkHttpClient client = new OkHttpClient();
          Request.Builder builder = new Request.Builder();
  
          Request request = builder.url(url).build();
  
          try {
              Response response = client.newCall(request).execute();
              String json = response.body().string();
              try {
                  JSONObject object = new JSONObject(json);
                  JSONArray array = object.optJSONArray("posts");
                  return array;
              }
              catch(JSONException e)
                  {
                      e.printStackTrace();
                  }
           } catch (IOException e) {
              e.printStackTrace();
          }
          return null;
      }
  
      @Override
      protected void onPostExecute(JSONArray array) {
          super.onPostExecute(array);
  
          if(null == array)
             return;
  
          if(null != listener)
              listener.onFeed(array);
      }
  }
  
  public class FeedAdapter extends ArrayAdapter&lt;Post&gt;
  {
      private int resource;
      public FeedAdapter(Context context, int resource) {
          super(context, resource);
          this.resource = resource;
      }
  
      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
          if(null == convertView)
          {
              LayoutInflater inflater = LayoutInflater.from(getContext());
              convertView = inflater.inflate(resource,null);
          }
          //Binding data
          Post post = getItem(position);
          TextView title = (TextView) convertView.findViewById(R.id.title);
          TextView desc = (TextView) convertView.findViewById(R.id.description);
  
          title.setText(post.title);
          desc.setText(post.description);
          return convertView;
      }
  
  }
  
  public class Post
  {
      public String title;
      public String description;
      public String thumbnail; //url
  
      public Post(String title, String desc, String thumbnail)
      {
          this.description=desc;
          this.thumbnail=thumbnail;
          this.title=title;
      }
  }
  }
  </code></pre>
  
  <p>The log cat of the above program is given below...nullpointer
  exception is encountered in the program...someone please help me.. In the previous similar question,i couldnt find explanation.. 
  Log cat:
  By changing the mentioned line i am getting the following EXCEPTION:</p>
  
  <pre><code> java.lang.RuntimeException: An error occured while executing doInBackground()
          at android.os.AsyncTask$3.done(AsyncTask.java:300)
  FATAL EXCEPTION: AbstractCallbackSender
  Process: jp.co.translimit.braindots, PID: 7444
  java.lang.RuntimeException: An error occured while executing doInBackground()
          at android.os.AsyncTask$3.done(AsyncTask.java:300)
   FATAL EXCEPTION: AsyncTask #5
  Process: jp.co.translimit.braindots, PID: 8498
  java.lang.RuntimeException: An error occured while executing doInBackground()
          at android.os.AsyncTask$3.done(AsyncTask.java:300)
   java.lang.RuntimeException: An error occured while executing doInBackground()
          at android.os.AsyncTask$3.done(AsyncTask.java:300)
  </code></pre>