One of the things that comes up every so often is this question: "How do I report a Smalltalk bug to Cincom?" The best thing to not do is send us a vague email along the following lines: "Blah is broken; can you fix it?"
No one will be happy with how that goes, because we just don't get enough information that way. Instead, you should do the following:
- Provide a test case to us, showing the minimal amount of detail required to reproduce the problem. Ideally, that would be in the form of one or more SUnit tests, or a workspace script
- Provide a copy of the stack that results when you run into the problem
- If the above fails to lead to a solution, it might be necessary to get us access to a full image - although work in that direction may end up becoming a consulting/services issue.
Probably the most important thing you should do is debug the problem yourself as much as possible, just to ensure that it's not your code that's at fault - because if support ends up providing what amounts to training, then again - it may end up being a services thing.
By way of an example: let's say that I found a problem in BottomFeeder - one where I thought that the XML parser, for example, was running into trouble. First off, I'd be best off providing something like what's below:
On the left is a short workspace script that reproduces the problem, and to the right is the exception. Now, say that I was actually reporting this after verifying (as best as I can) that it's not my code that's at fault. The next step would be to press that lower "Copy Stack" button and send the resulting data (it'll be in the copy buffer) along with my bug report. It'll be long (quite possibly very long) - but the top will look something like this:
Unhandled exception: end of start tag expected, but not found
XML.DOM_SAXDriver(XML.SAXDriver)>>fatalError:
TolerantXML.TolerantParser(XML.XMLParser)>>malformed:
TolerantXML.TolerantParser>>malformed:
TolerantXML.TolerantParser(XML.XMLParser)>>expected:
TolerantXML.TolerantParser(XML.XMLParser)>>elementAtPosition:
TolerantXML.TolerantParser(XML.XMLParser)>>getElement
optimized [] in XML.XMLParser>>scanDocument
Now, in this case, the "bug" is in me trying to parse HTML with an XML parser. Ignoring that for the moment, ponder the stack - you'll want to scroll through it to find out where system code and your own code have a boundary (in order to verify where the problem resides). If you do think it's ours, send the whole stack along.
I'll do a screencast on this tomorrow to walk through some of the nuances - but that should cover the basics. Questions? Fire away via email or comment.
Technorati Tags:
bug report, exception, support