powered by Jive Software

Where to commit webchat-fastpath bugfixes?

I found and fixed some bugs in the webchat-fastpath project. The bug could prevent or destroy newly created chat sessions. Thus, in about 4% of newly created chat sessions, the agent was never notified of a waiting client. It’s a timer bug which I’ve fixed. The library workgroup.jar was the culprit. I managed to get the java sources of workgroup.jar, which seems to be a compiliation of the packages org.jivesoftware.smack(x) and two other external java libs. Both java packages were out-dated and even the newest versions (3.2.1) contained still the bug!

I’ve also upgraded the Ajax library (dwr) from 1.x to 2.0.6 and I’ve updated the webchat sources to be compatible with.

I wanted to share my bugfixes with the community, but how do I commit them?

You can attach your changes as diff/patch files here. I will try to file them in the bug tracker and maybe someone will commit them someday. Later you may get commit rights.

Ok, thank you. While diffing, I saw that my team has modified many other source code that I don’t want to publish before cleaned up.

So for now, I just attach you the primary bugfix I was speaking of above, preventing us to use webchat in production.

Fortunately this bug is not located in the workgroup.jar as I wrongly stated out yesterday, so I don’t need to commit the sources of the exploded workgroup.jar. However, I fixed some (potential) NPE’s in the source code of workgroup.jar which I’ll publish once cleaned up the project. The same applies to my changes due to the dwr upgrade.

Some words about the attached bugfix: new chat sessions could be killed because the ChatManager periodically executes removeStaleChats.

The problem with this was, that it could be executed just in the same milisecond when a new chat session was created. In this case, the chat session had not yet a chance to join a group or to execute lastCheck. Hence, the ChatManager thought it was stale and removed it.

The bugfix gives newly created chat sessions some time to get in place before they are considered to be stale.

For us, this modification was essential because our chat sessions join a group not upon creation but only after the client has sent a message, which will notify the agent only then. We did not want to notify the agent earlier because it may happen that a client opens a chat window without ever writing a message.

That being said, it points out that the original code will fail less often than our modified code without the bugfix. However, the original code may fail too without the bugfix when removeStaleChats is executed in the same milisecond a new chat session is created.

I don’t see how to attach a text file here (only image or video seems to be possible). So I pasted it here:http://pastie.org/3090402

Btw. I added in ChatSession.java just a final long createdTimestamp and its getter but the diff command was not able to outline it.

Hello,

Please consider creating a Jira account: http://issues.igniterealtime.org and let me know what it is. I can then give you privs to create tickets and attach patches. We certainly could use more svn committers, so please consider it

daryl

I have filed this as OF-505 and have attached your diff. Once you have your own account in JIRA, you will be able to attach more files or change this one if you need.

ok, thank you. I’ve created my JIRA account using the same name. Are JIRA account and forum account related? However, I don’t see yet where I can attach files. Do you need to enable it first?

That’s correct, you should be all set now…

No, I don’t see how to attach files. Is it here in the forum or in JIRA?

Btw. JIRA did not allow me to use the same user name since it does not allow uppercase letters.

In Jira, please try logging out of Jira and back in to see if that helps.

I logged in and out but I’m still not allowed to add files. Here is the message:

You do not have permission to create attachments for this issue.

It seems that you have tried to perform an operation which you are not permitted to perform.

Please try to log in or sign up for an account.

If you think this message is wrong, please contact your JIRA administrators.

I removed all cookies and logged in and out again. Now it works. Thanks!

…and Happy New Year!