Habarisoft announces a preview release of the next generation of madxnet, a cloud-based bug report management system for users of the madExcept exception handler for Delphi.
Features:
- Cloud based bug report database (but also runs in Intranets)
- Automatic detection of duplicates
- Automatic creation of screen shot thumbnails
- REST API to retrieve and manage bug reports
- JSON based data serialization
How it works
The madExcept exception handler for Delphi can be configured to send bug reports by HTTP POST requests to a web server, including detailed information and a screenshot (for a complete code example see below).
The madxnet server will store the bugreport and can also return a HTTP redirect, which causes madExcept to automatically launch the web browser to display a ThankYou page with information about the new report.
Online Resources
Bug Reports
The bug report will be accessible (in JSON format) as a REST resource:
{
"bugreport":{
"bugreportTxt":null,
"callstackCRC":"$8eafc433",
"content":"date/time : 2011-03-31, 09:59:03, 730ms\r\ncomputer name : MJ-PC\r\nuser name : mj\r\nregistered owner : mj / HP...,
"dateTime":"2011-03-31T10:07:12Z",
"exceptionClass":"EOutOfMemory",
"exceptionMessage":"Out of memory.",
"executable":"MadXSender.exe",
"id":"79001",
"mailBody":"please find the bug report attached",
"mailFrom":"sender@example.com",
"mailSubject":"bug report",
"mailTo":"to@example.com",
"received":"2011-03-31T08:07:17.033Z",
"screenshot":null,
"screenshotBytes":"",
"stack":"0051293a +11e MadXSender.exe MainFrm 115 +27 TMainForm.DoRaise\r\n005132ad +031 MadXSender.exe MainFrm 234 +6 TMainForm.BtnRaiseClick\r\n004a3167 +06f MadXSender.exe Controls TControl.Click",
"thumbnail":null,
"thumbnailBytes":""
}
}
Browse all Bug Reports
The URL http://madxnet2.appspot.com/resources/bugreports will return a JSON object with the first page of all bug reports in the database.
The URL http://madxnet2.appspot.com/resources/bugreports?page=3 will return the bug reports for the given page number.
Executables List
The URL http://madxnet2.appspot.com/resources/executables returns the list of all executables with their report count. Example:
{
"page":"0",
"total":"2",
"executables":[
{
"exeName":"MadXSender.exe",
"id":"18001",
"reportCount":"1096"
},
{
"exeName":"TestApp.exe",
"id":"83001",
"reportCount":"10"
}
]
}
Exceptions List
The URL http://madxnet2.appspot.com/resources/exceptions returns the list of all exceptions with their report count. Example:
{
"page":"0",
"total":"11",
"exceptionClass":[
{
"className":"EConvertError",
"id":"20001",
"reportCount":"118"
},
{
"className":"EDivByZero",
"id":"22001",
"reportCount":"112"
},
{
"className":"EAbstractError",
"id":"24001",
"reportCount":"111"
},
{
"className":"EInvalidCast",
"id":"25002",
"reportCount":"111"
},
{
"className":"EOSError",
"id":"32001",
"reportCount":"111"
},
{
"className":"EInOutError",
"id":"26002",
"reportCount":"110"
},
{
"className":"EOutOfMemory",
"id":"10002",
"reportCount":"109"
},
{
"className":"EAccessViolation",
"id":"26001",
"reportCount":"109"
},
{
"className":"EProgrammerNotFound",
"id":"30001",
"reportCount":"109"
},
{
"className":"EStringListError",
"id":"36001",
"reportCount":"109"
},
{
"className":"EInvalidCast",
"id":"28001",
"reportCount":"1"
}
]
}
Duplicate Detection
Every incoming bug report will be compared with existing reports to find if it is a duplicate of an existing report. This comparision is performed based on the bug report CRC checksums. If an older bugreport with the same CRC checksums is found in the database, its ID is stored as a reference in the new report.
What’s next?
It depends on your feedback – let me know what you think about this web service.