Thanks for the help!Now I've found a little workaround for the current issue
(I store the needed data in a DataDocument on a wavelet, which is written
when the first blip is created, and the robot can access it all the time),
but I'm tuned for the updates!

On Fri, Oct 23, 2009 at 8:55 AM, Austin Chau (Google employee) <
[email protected]> wrote:

> So yes, when a blip is out of context you would have no way to retrieve its
> document content from the event callback alone.  What can you do now is
> maintain the context on your own with a datastore backend.  Essentially
> keeping track of all wavelet and blip ids for lookup.
> We know that this is not ideal and we are working on this as speak to
> remove the limited context on callback.  Stay tuned for updates.
>
> Austin
>
> 2009/10/22 Bálint Kriván <[email protected]>
>
>> 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) <
>> [email protected]> 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 <[email protected]>
>>>
>>> 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 <[email protected]>
>>>>
>>>> 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
>>
>>
>>
>
> >
>


-- 
Ü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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-wave-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to