Hello,
This jira is from "second level support" forum. Please have a look at it. Thanks a lot.
Best regards,
Richard
This is regarding salesforce case
https://na2.salesforce.com/50040000003GY2H
https://na2.salesforce.com/50040000003GY4r is also related to the same case.
User is facing some synchronization problem. He is temporarily able to fix the issue with the some db4o code changes.
He made changes to file 'ClientObjectContainer.cs'
According to the user -
In the meantime I have implemented better fix than the one in this case. If you take a look at all references at the method ExpectedResponse in the ClientServerContainer module you can see that the method should never return null, because no calling function tests the result for null. The method returns null if you try to read a message, but no message has arrived yet or it is not the expected message. In my case the message has not yet arrived (I was able to debug this with some effort). I changed the method as follows to fix the problem:
internal Db4objects.Db4o.Internal.CS.Messages.Msg ExpectedResponse(Db4objects.Db4o.Internal.CS.Messages.Msg
expectedMessage)
{
//Db4objects.Db4o.Internal.CS.Messages.Msg message = GetResponse();
//if (expectedMessage.Equals(message))
//{
// return message;
//}
//return null;
Db4objects.Db4o.Internal.CS.Messages.Msg message;
while (true)
{
message = GetResponse();
if (expectedMessage.Equals(message))
{
break;
}
System.Threading.Thread.Sleep(100);
}
return message;
}
For me it is clear that here is a big bug in db4o that needs to be fixed very urgent, but I think the developers are aware of it. If you take a look in the 6.3 sources you can see that there are some comments and some debug code to track the bug, but the bug is still not fixed.
It has been fixed. Would you please verify ? Thanks!