Oh I see...So robot doesn't get the whole wavelet with all of the blips, but
the blip of the related event and it's parent.
Ok, but if I would like to access to the rootblip, and I get its id with
wavelet.getRootBlipId(), how can I request its content
(getDoucment().getText())? (wavelet.getRootBlip().getDocument().getText()
also throws null exception in these cases, so I don't have any idea how to
achieve this)

Thanks for your guidance!

On Fri, Oct 23, 2009 at 2:56 AM, Austin Chau (Google employee) <
api.aus...@google.com> wrote:

> Hi,
> To get the root blip id in your scenario -
>
> wave.appendBlip().getDocument().append(wavelet.getRootBlipId());
>
> This would work because it does not require "context" of a grandparent
> blip.  The reason that you are getting exception is because the context
> associated with an event callback only goes back its immediate parent.  So
> in your case if the triggering event is resulted from a grandchild blip away
> from root, it will no longer has context to recreate the root blip when you
> invoked wavelet.getRootBlip() - thus you will get a null reference.
>
> Hope it helps,
> Austin
>
> 2009/10/22 Bálint Kriván <bal...@google.com>
>
> Reply to myself and others: I think this is related to
>> http://code.google.com/p/google-wave-resources/issues/detail?id=200 .
>>
>> 2009/10/22 Bálint Kriván <bal...@krivan.info>
>>
>> Hi!
>>> I have this little chunk of code:
>>>
>>>  public void debug(RobotMessageBundle bundle, String msg)
>>>
>>>  {
>>>
>>>  List<String> list = new ArrayList();
>>>
>>>  list.add("<myaddress in google wave>");
>>>
>>>  Wavelet wave = bundle.createWavelet(list);
>>>
>>>   wave.appendBlip().getDocument().append(msg);
>>>
>>>  }
>>>
>>>   @Override
>>>
>>>  public void processEvents(RobotMessageBundle robotMessageBundle) {
>>>
>>>  Wavelet wavelet = robotMessageBundle.getWavelet();
>>>
>>>  for (Event event : robotMessageBundle.getEvents()) {
>>>
>>>  Blip currentBlip = event.getBlip();
>>>
>>>  switch (event.getType()) {
>>>
>>>  case BLIP_SUBMITTED:
>>>
>>>  debug(robotMessageBundle,
>>>> String.valueOf(wavelet.getRootBlip().getBlipId())); // line 46!
>>>
>>>  }
>>>
>>>  }
>>>
>>>  }
>>>
>>>
>>> So when I add a blip to the wavelet where the robot is, it should open a
>>> new wave with me and send the id of the root blip (The top blip in the
>>> wavelet).
>>> But if this blip isn't right after the root blip (so the very first Reply
>>> button) then I've got a NullPointerException:
>>>
>>> java.lang.NullPointerException
>>>
>>>   at com.google.wave.api.impl.BlipImpl.getBlipId(BlipImpl.java:56)
>>>
>>>   at robot.MainServlet.processEvents(MainServlet.java:46)
>>>
>>>   at
>>>> com.google.wave.api.AbstractRobotServlet.doPost(AbstractRobotServlet.java:89)
>>>
>>>   [...]
>>>
>>>
>>> What is the recommended way to access the very first blip (which is I
>>> guess the RootBlip)?
>>>
>>> Thanks for your help!
>>>
>>> --
>>> Üdv,
>>> Kriván Bálint
>>>
>>
>>
>>
>> --
>> Üdv,
>> Kriván Bálint
>>
>>
>>
>
> >
>


-- 
Üdv,
Kriván Bálint

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Wave API" group.
To post to this group, send email to google-wave-api@googlegroups.com
To unsubscribe from this group, send email to 
google-wave-api+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-wave-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to