<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!-- Content Stylesheet for Site -->

        
<!-- start the processing -->
    <html>
    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

                      <meta name="author" value="Conor MacNeill">
  <meta name="email" value="">
                <meta name="author" value="Chuck Murcko">
  <meta name="email" value="chuck@topsail.org">
      
      <title>Jakarta BSF - Having Problems?</title>
    </head>

    <body bgcolor="#ffffff" text="#000000" link="#525D76">
      <table border="0" width="100%" cellspacing="0">
        <!-- TOP IMAGE -->
        <tr>
                <td align="left">
    <a href="http://jakarta.apache.org"><img src="images/jakarta-logo.gif" border="0"/></a>
    </td>
    <td align="right">
              <a href="http://jakarta.apache.org/bsf/"><img src="./images/bsf_logo.jpg" alt="Jakarta BSF" border="0"/></a>
        </td>
          </tr>
      </table>
      <table border="0" width="100%" cellspacing="4">
        <tr><td colspan="2">
          <hr noshade="" size="1"/>
        </td></tr>

        <tr>
          <!-- LEFT SIDE NAVIGATION -->
          <td valign="top" nowrap="true">
                <p><strong>BSF Essentials</strong></p>
    <ul>
          <li>      <a href="./index.html">Front Page</a>
  </li>
          <li>      <a href="./bsfnews.html">News</a>
  </li>
          <li>      <a href="./manual.html">Documentation</a>
  </li>
          <li>      <a href="./projects.html">Related Projects</a>
  </li>
          <li>      <a href="./resources.html">Resources</a>
  </li>
          <li>      <a href="./faq.html">BSF FAQ</a>
  </li>
          <li>      <a href="./problems.html">Having Problems?</a>
  </li>
        </ul>
      <p><strong>Download</strong></p>
    <ul>
          <li>      <a href="http://jakarta.apache.org/site/binindex.html">Binaries</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/sourceindex.html">Source Code</a>
  </li>
        </ul>
      <p><strong>Jakarta</strong></p>
    <ul>
          <li>      <a href="http://jakarta.apache.org/site/news.html">News & Status</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/mission.html">Mission</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/guidelines.html">Guidelines Notes</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/faqs.html">FAQs</a>
  </li>
        </ul>
      <p><strong>Get Involved</strong></p>
    <ul>
          <li>      <a href="http://jakarta.apache.org/site/getinvolved.html">Overview</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/cvsindex.html">Source Repositories</a>
  </li>
          <li>      <a href="http://www.faqs.org/rfcs/rfc1855.html">Netiquette</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/library.html">Reference Library</a>
  </li>
          <li>      <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=BSF">Bug Database</a>
  </li>
          <li>      <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=BSF&bug_severity=Enhancement">Enhancement Requests</a>
  </li>
          <li>      <a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=BSF&short_desc=%5BPATCH%5D&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&order=Reuse+same+sort+as+last+time">Patch Queue</a>
  </li>
        </ul>
            </td>
          <td align="left" valign="top">
        <table border="0" cellspacing="0" cellpadding="2" width="100%">
    <tr><td bgcolor="#525D76">
      <font color="#ffffff" face="arial,helvetica,sanserif">
        <a name="Having Problems?"><strong>Having Problems?</strong></a>
      </font>
    </td></tr>
    <tr><td>
      <blockquote>
                        <p>
           This page details some steps you can take to try and resolve
           any problems you may be having with BSF. If you find you can't
           resolve the problem, then this page will help you collect some of
           the relevant information to provide in a bug report. This information
           will help the BSF developers understand and resolve the problem.
           Of course, not all the steps here will make sense for every problem
           you may encounter - these are just some suggestions to point
           you in the right direction.
        </p>
                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
    <tr><td bgcolor="#828DA6">
      <font color="#ffffff" face="arial,helvetica,sanserif">
        <a name="Read the Manual"><strong>Read the Manual</strong></a>
      </font>
    </td></tr>
    <tr><td>
      <blockquote>
                        <p>
            The first step to take when you have a problem with BSF is to read
            the <a href="manual.html">manual</a> entry for the task or
            concept that is giving you trouble. In particular, check the
            meaning of a task's attributes and nested elements. Perhaps an
            attribute is available that would provide the behavior you require.
            If you have problems with the manual itself, you can submit a
            documentation bug report (see below) to help us improve the BSF
            documentation.
         </p>
                    </blockquote>
    </td></tr>
  </table>
                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
    <tr><td bgcolor="#828DA6">
      <font color="#ffffff" face="arial,helvetica,sanserif">
        <a name="Examine Trace Output"><strong>Examine Trace Output</strong></a>
      </font>
    </td></tr>
    <tr><td>
      <blockquote>
                        <p>
            If you're still having a problem, the next step is to try and
            gather additional information about what BSF is doing.
           </p>
                                <p>
           The trace output from a BSF run is helpful in determining
           causes of failure, and is useful in bug reports.
           </p>
                    </blockquote>
    </td></tr>
  </table>
                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
    <tr><td bgcolor="#828DA6">
      <font color="#ffffff" face="arial,helvetica,sanserif">
        <a name="Has It Been Fixed?"><strong>Has It Been Fixed?</strong></a>
      </font>
    </td></tr>
    <tr><td>
      <blockquote>
                        <p>
            After examining the debug output, if you still believe that the
            problem you are having is caused by BSF, chances are that someone
            else may have already encountered this problem, and perhaps it has
            been fixed. The next step, therefore, may be to try a nightly build
            of BSF to see if the problem has been fixed. Nightly builds for BSF
            are available from the
            <a href="http://www.apache.org/dist/jakarta/jakarta-bsf/nightly/">
            Jakarta web site</a>. While BSF nightly builds are typically quite
            stable and are used by
            <a href="http://www.apache.org/dist/jakarta/gump/latest/">Gump</a>
            to build many other Jakarta projects, these builds should
            nonetheless be treated as experimental. Note that nightly builds
            do not build many of the optional tasks the come with BSF.
            A snapshot of these optional tasks is occasionally uploaded to
            the nightly download
            <a href="http://www.apache.org/dist/jakarta/jakarta-bsf/nightly/optional/">
            area</a>. However, even this snapshot does not contain every
            optional task.
        </p>
                    </blockquote>
    </td></tr>
  </table>
                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
    <tr><td bgcolor="#828DA6">
      <font color="#ffffff" face="arial,helvetica,sanserif">
        <a name="Has It Been Reported?"><strong>Has It Been Reported?</strong></a>
      </font>
    </td></tr>
    <tr><td>
      <blockquote>
                        <p>
            If the current nightly build doesn't resolve your problem, it is
            possible that someone else has reported the issue. It is time to
            look at the <a href="http://issues.apache.org/bugzilla/">
            Apache Bug Database</a>.  This system is easy to use, and it will
            let you search the <a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=BSF&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_id">
            currently open</a> and resolved bugs to see if your problem has
            already been reported. If your problem has been reported, you can
            see whether any of the developers have commented, suggesting
            workarounds, or the reason for the bug, etc. Or you may have
            information to add (see about creating and modifying bug reports
            below), in which case, go right ahead and add the information.
            If you don't have any additional information, you may just want
            to vote for this bug, and perhaps
            add yourself to the <code>CC</code> list to follow the progress
            of this bug.
         </p>
                    </blockquote>
    </td></tr>
  </table>
                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
    <tr><td bgcolor="#828DA6">
      <font color="#ffffff" face="arial,helvetica,sanserif">
        <a name="Filing a Bug Report"><strong>Filing a Bug Report</strong></a>
      </font>
    </td></tr>
    <tr><td>
      <blockquote>
                        <p>
            By this time, you may have decided that there is an unreported
            bug in BSF. You have a few choices at this point. You can send
            an email to the <nobr><code>bsf-user</code></nobr> mailing list
            to see if
            others have encountered your issue and find out how they may
            have worked around it. If after some discussion, you feel it
            is time to create
            a bug report, this is a simple operation in the bug database.
            Please try to provide as much information as possible in order
            to assist the developers in resolving the bug. Please try to enter
            correct values for the various inputs when creating the bug, such
            as which version of BSF you are running, and on which platform,
            etc. Once the bug is created, you can also add attachments to
            the bug report.
         </p>
                                <p>
            What information should you include in your bug report? The
            easiest bugs to fix are those that are most easily reproducible,
            so it is really helpful if you can produce a small test case that
            exhibits the problem. In this case, you would attach the build file
            and any other files necessary to reproduce the problem, probably
            packed together in an archive. If you can't produce a test case,
            you should try to include a snippet from your build file and the
            relevant sections from the verbose or debug output from BSF. Try
            to include the header information where BSF states the version,
            the OS and VM information, etc. As debug output is likely to be
            very large, it's best to remove any output that is not
            relevant. Once the bug is entered into the bug database, you
            will be kept informed by email about progress on the bug. If
            you receive email asking for further information, please try to
            respond, as it will aid in the resolution of your bug.
         </p>
                    </blockquote>
    </td></tr>
  </table>
                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
    <tr><td bgcolor="#828DA6">
      <font color="#ffffff" face="arial,helvetica,sanserif">
        <a name="Asking for an Enhancement"><strong>Asking for an Enhancement</strong></a>
      </font>
    </td></tr>
    <tr><td>
      <blockquote>
                        <p>
            Sometimes, you may find that BSF just doesn't do what you need it
            to. It isn't a bug, as such, since BSF is working the way it is
            supposed to work. Perhaps it is some additional functionality for
            a task that hasn't been thought of yet, or maybe a completely new
            task. For these situations, you will
            want to raise an <i>enhancement request</i>. Enhancement requests
            are managed using the same Apache Bug Database described above.
            These are just a different type of bug report. If you look in the
            bug database, you will see that one of the severity settings for
            a bug is "Enhancement". Just fill the bug report in,
            set the severity of the bug to "Enhancement", and
            state in the description how you would like to have BSF enhanced.
            Again, you should first check whether there are any existing
            enhancment requests that cover your needs. If so, just add your
            vote to these.
         </p>
                    </blockquote>
    </td></tr>
  </table>
                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
    <tr><td bgcolor="#828DA6">
      <font color="#ffffff" face="arial,helvetica,sanserif">
        <a name="Fixing the Bug"><strong>Fixing the Bug</strong></a>
      </font>
    </td></tr>
    <tr><td>
      <blockquote>
                        <p>
            If you aren't satisfied with just filing a bug report, you can
            try to find the cause of the problem and provide a fix yourself.
            The best way to do that is by working with the latest code from CVS.
            Alternatively, you can work with the source code available from the
            <a href="http://jakarta.apache.org/builds/jakarta-bsf/release/v2.4/src/">
            source distributions</a>. If you
            are going to tackle the problem at this level, you may want to
            discuss some details first on the <nobr><code>bsf-dev</code></nobr>
            mailing list. Once you have a fix for the problem, you may submit
            the fix as a <i>patch</i> to either the
            <nobr><code>bsf-dev</code></nobr> mailing
            list, or enter the bug database as described above and attach the
            patch to the bug report. Using the bug database has the advantage
            of being able to track the progress of your patch.
         </p>
                                <p>
            If you have a patch to submit and are sending it to the
            <nobr><code>bsf-dev</code></nobr> mailing list,
            prefix "[PATCH]"
            to your message subject. Please include any relevant bug numbers.
            Patch files should be created with the <nobr><code>-u</code></nobr>
            option of the
            <code>diff</code> or <code>cvs diff</code> command. For
            example:<br /><br />
            <font face="verdana" size="-1">
            diff -u Javac.java.orig Javac.java &gt; javac.diffs<br /><br />
            </font>
            or, if you have source from CVS:<br /><br />
            <font face="verdana" size="-1">
            cvs diff -u Javac.java &gt; javac.diffs<br /><br />
            </font>

           Note: You should give your patch files meaningful names.
           This makes it easier for developers who need to apply a number
           of different patch files.
        </p>
                    </blockquote>
    </td></tr>
  </table>
                    </blockquote>
    </td></tr>
  </table>
              </td>
        </tr>

        <!-- FOOTER -->
        <tr><td colspan="2">
          <hr noshade="" size="1"/>
        </td></tr>
        <tr><td colspan="2">
          <div align="center"><font color="#525D76" size="-1"><em>
          Copyright &#169; 2002-2006, Apache Software Foundation
          </em></font></div>
        </td></tr>
      </table>
    </body>
  </html>
<!-- end the processing -->




