Jakarta Tapestry - Reporting Problems

So, you've hit a problem with Tapestry and you want help, what do you do? You may need help, and we (the Tapestry community) want to help you, but the first step is to make sure you really have a problem.

Things To Check First

Has your environment changed recently? Did you change JDKs, operating systems, application servers or change to a new version of Tapestry? The most common cause of problems is Java's special version of DLL hell: conflicting versions of the same JAR file on the classpath. Perhaps you upgraded to a new version of Tapestry and some of the old JAR files are still hanging around. Perhaps an innocuous change to your build file no longer builds your WAR files correctly. Take a moment to check the classpath.

Search For The Answer

New users often hit the same problems; likely, your problem has been reported and solved already. Check the online documentation: there's a Frequently Asked Questions list to check, and more information on the Wiki. A quick check at Google is also worthwhile (the mailing list discussions are mirrored in many places).

Post Your Question

Next, you want to learn how to ask questions properly. This is very important -- volunteers are taking time off from thier own jobs, or own spare time, to answer your question. You aren't owed anything. Questions get answered if they are easy or if they are interesting. Questions that are lacking in detail are easier to ignore than to work on. Questions that are antagonistic get ignored. Questions that have been covered to death in the documentation, the FAQ, the Wiki or The Book will likely be ignored.

Subscribe to the Tapestry user mailing list (tapestry-user@jakarta.apache.org) and post your message there and only there. Sending mail directly to a Tapestry developer will, at most, result in a curt reminder to use the user mailing list.

Tapestry provides a wealth of information when errors occur. Don't just say "it broke": cut and past the exception report into your message. If there's no error message or exception report, tell us exactly what behavior occured, and exactly what behavior you expected.

We'll need to know your environment:

  • Tapestry version
  • JDK version
  • Operating System
  • Application Server

Finally, for most non-trivial problems, we'll need to know what was in your HTML template and page (or component) specification, and probably your Java class as well. For the best, and fastest, response, post as much of this as possible.

Problem Resolution

In farily rare cases, you may have uncovered an actual problem. In other cases, we (the Tapestry developers) may discuss an improvement to the framework to address your situtation. In either case, it is incumbent upon you to add a bug or improvement request into the Bugzilla issue tracking system. If it doesn't go into Bugzilla, its very unlikely that anything further will happen. Think of this tiny effort as your payment for all the free software and support we've provided you with.

Submitting Patches

If you have a bug you want fixed, you may want to fix it yourself! This is an excellent opportunity to get more involved in Tapestry and the Tapestry community. Creating a patch and getting it applied are two different things, however.

Don't post your patch to the mailing list ... there's any number of reasons that attachments will be lost or deleted. Find (or create) a Bugzilla issue and add the patch as a Bugzilla attachment.

A patch is not an updated file: a patch is a difference file, usually generated with the cvs diff command. The easier you make it for us, the more likely it is that your patch will be applied.

  • A single patch (covering multiple files) is easier than a scattering of individual patches
  • A real patch (generated by CVS) is vastly preferable to attaching changed source files
  • A patch generated at the project root is preferable to lower-level patches (it takes the guesswork out of applying the patch).