Frank,

To help myself out, i went through filter to look at what was actually sent to 
Google :

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"; 
xmlns:gd="http://schemas.google.com/g/2005";>
<gd:eventStatus value="http://schemas.google.com/g/2005#event.canceled"; />
<http://schemas.google.com/g/2005#:originalEvent 
href="http://www.google.com/calendar/feeds/[EMAIL 
PROTECTED]/private/full/b1baihhgq1maamg5lt4shiejck" 
id="b1baihhgq1maamg5lt4shiejck" 
xmlns:http://schemas.google.com/g/2005#="http://schemas.google.com/g/2005";>
<gd:when startTime="2007-10-08T08:00:00+05:30" 
endTime="2007-10-08T10:30:00+05:30" />
</http://schemas.google.com/g/2005#:originalEvent>
<category term="http://schemas.google.com/g/2005#event"; 
scheme="http://schemas.google.com/g/2005#kind"; />
</entry>


Now, you can see on your own what i have written above BOLD. there is a "/" 
infront of http.

Kindly correct the code.




----- Original Message ----
From: Kulvinder Singh <[EMAIL PROTECTED]>
To: [email protected]
Sent: Tuesday, October 9, 2007 2:29:24 PM
Subject: Re: 3rd Major bug in new Google API 1.1.0.0


Frank,
 
I reply appreciate the kind of efforts you are putting in over all this. Your 
response is really very timely and excellent.
 
Here is the code which creates an recurrence Exception to a already created 
Recurring event in Google, using .NET 1.1.0.0 library :
 
 
// fetch the recurring event (from google server) to which the exceptions have 
to be added
parentEvent = (EventEntry)GetRecurringEvent(eventId);
 
// Add a deleted exception
CalendarService calendarService = new CalendarService("TestApp");
calendarService.Credentials = new GDataCredentials(userName, password);
Uri postUri = new Uri("Calendar URL here");
 
EventEntry exceptionEntry = new EventEntry();
exceptionEntry.Status = EventEntry.EventStatus.CANCELED;
OriginalEvent originalEvent = new OriginalEvent();
originalEvent.OriginalStartTime = originalWhen;
originalEvent.Href = "parentEvent-Href here";
originalEvent.IdOriginal = "parentEvent-id here";
exceptionEntry.OriginalEvent = originalEvent;
 
calendarService.Insert(postUri, exceptionEntry);
 
 
Note that the same code was working fine when i was using .NET 1.0.9.9 API 
version.
 
Seems that there is something wrongly coded XML which the server is not 
accepting.
 
Keep up your kind efforts.
 
Thanks
Kulvinder Singh


----- Original Message ----
From: Frank Mantek <[EMAIL PROTECTED]>
To: [email protected]
Sent: Tuesday, October 9, 2007 2:05:21 PM
Subject: Re: 3rd Major bug in new Google API 1.1.0.0


Understand that we are trying our best to release the code as bug free as 
possible, but even we have limited resources. The whole extension system was 
rewritten, which is a major chunk of new code. This was the primary reason why 
i asked people to grab the code from subversion to give it a test spin, so that 
bugs could be reported. I have not seen bugs reported for 10 days... during 
that time i added more properties (picasa etc) and did run the limited tests i 
have available. They obviously do not match the complexity of your application, 
the tests are not even close to that. 


I am trying to fix those issues as fast as you report them. What you are 
finding are lacks in the functional tests for the .NET library. So if you are 
willing, please give me a code snippet that does the thing that produced the 
bug, and i add it to the unittests so that it does not happen again. 


And i have no idea what the cryptic error means. So i need that code snippet 
anyway to figure out what is going on there. 


Frank Mantek
Google

On Oct 9, 2007, at 9:16 AM, Kulvinder Singh wrote:


Afetr i corrected the problem, i tried to cretae a deleted recurrence exception 
and got the following error :
 

org.xml.sax.SAXParseException: Element type &quot;http:&quot; must be followed 
by either attribute specifications, &quot;&gt;&quot; or &quot;/&gt;&quot;.
 
Now what does that mean ?
 
I am using Google API 1.1.0.0 with no other modifications. Where is the problem 
now ?
 
Seems like that the new API release changes have not been tested properly.
 
I seem to be harsh but it seems to have shaken my trust on the credibility of 
the releases
 
Thanks
Kulvinder Singh

----- Original Message ----
From: Kulvinder Singh <[EMAIL PROTECTED]>
To: Google API <[email protected]>
Sent: Tuesday, October 9, 2007 12:36:35 PM
Subject: 3rd Major bug in new Google API 1.1.0.0


Hi,
 
In the series of bugs in new calendar .NET API 1.1.0.0, there is another bug 
and i found it through the following :
 
I am trying to add an exception in a Google Event as follows :
 
OriginalEvent originalEvent = new OriginalEvent();
originalEvent.OriginalStartTime = originalWhen;
originalEvent.Href = selfURIContent;
originalEvent.IdOriginal = Common.GetGcalEventSubID(selfURIContent);
gCalExceptionEvent.OriginalEvent = originalEvent;
 

As soon as i executed my code, it threw an exception at : 
originalEvent.OriginalStartTime
 

which is
 

//////////////////////////////////////////////////////////////////////
/// <summary>accessor method public original Start Time</summary>
/// <returns> </returns>
//////////////////////////////////////////////////////////////////////
public When OriginalStartTime
{
get
{
return FindExtension(GDataParserNameTable.XmlWhenElement,
BaseNameTable.gNamespace) as When;
}
set
{
ReplaceExtension(GDataParserNameTable.XmlWhenElement,
BaseNameTable.gNamespace, value);
}
}
 

and
 

public void ReplaceExtension(string localName, string ns, Object obj)
{
DeleteExtensions(localName, ns);
this.ExtensionElements.Add(obj);
}
 

 

/// <summary>
/// Delete's all Extensions from the Extension list that match
/// a localName and a Namespace.
/// </summary>
/// <param name="localName">the local name to find</param>
/// <param name="ns">the namespace to match, if null, ns is ignored</param>
/// <returns>int - the number of deleted extensions</returns>
public int DeleteExtensions(string localName, string ns)
{
// Find them first
ArrayList arr = FindExtensions(localName, ns);
foreach (object ob in arr)
{
this.extensions.Remove(ob);
}
return arr.Count;
}
 

 

basically, the erros is being thrown by FindExtensiosn method since it uses 
this.extensions which is null
 

/// <summary>
/// Finds all ExtensionElement based on it's local name
/// and it's namespace. If namespace is NULL, allwhere
/// the localname matches is found. If there are extensionelements that do
/// not implment ExtensionElementFactory, they will not be taken into account
/// Primary use of this is to find XML nodes
/// </summary>
/// <param name="localName">the xml local name of the element to find</param>
/// <param name="ns">the namespace of the elementToPersist</param>
/// <returns>none</returns>
public ArrayList FindExtensions(string localName, string ns)
{
return Utilities.FindExtensions(this.extensions, localName, ns, new 
ArrayList());
}
 

I think that instead of using this.extensions directly, it should have been :
 

//////////////////////////////////////////////////////////////////////
/// <summary>the list of extensions for this container
/// the elements in that list MUST implement IExtensionElementFactory
/// and IExtensionElement</summary>
/// <returns> </returns>
//////////////////////////////////////////////////////////////////////
public ArrayList ExtensionElements
{
get
{
if (this.extensions == null)
{
this.extensions = new ArrayList();
}
return this.extensions;
}
set { this.extensions = value; }
}
 

so that the function FindExtensions look like :
 



/// <summary>
/// Finds all ExtensionElement based on it's local name
/// and it's namespace. If namespace is NULL, allwhere
/// the localname matches is found. If there are extensionelements that do
/// not implment ExtensionElementFactory, they will not be taken into account
/// Primary use of this is to find XML nodes
/// </summary>
/// <param name="localName">the xml local name of the element to find</param>
/// <param name="ns">the namespace of the elementToPersist</param>
/// <returns>none</returns>
public ArrayList FindExtensions(string localName, string ns)
{
return Utilities.FindExtensions(ExtensionElements, localName, ns, new 
ArrayList());
}
 

 

Please correct me if i am wrong somewhere.
 

Thanks
Kulvinder Singh



Don't let your dream ride pass you by. Make it a reality with Yahoo! Autos. 






Be a better Heartthrob. Get better relationship answers from someone who knows.
Yahoo! Answers - Check it out. 












Be a better Globetrotter. Get better travel answers from someone who knows.
Yahoo! Answers - Check it out. 


       
____________________________________________________________________________________
Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for 
today's economy) at Yahoo! Games.
http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow  
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Calendar Data 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-calendar-help-dataapi?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to