<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>ASF: Reporting Bugs</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
</head>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the  "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
<body>
<div id="title">
<table class="HdrTitle">
<tbody>
<tr>
<th rowspan="2">
<a href="../index.html">
<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
</a>
</th>
<th text-align="center" width="75%">
<a href="index.html">Xalan XSL Transformer User's Guide</a>
</th>
</tr>
<tr>
<td valign="middle">Reporting Bugs</td>
</tr>
</tbody>
</table>
<table class="HdrButtons" align="center" border="1">
<tbody>
<tr>
<td>
<a href="http://www.apache.org">Apache Foundation</a>
</td>
<td>
<a href="http://xalan.apache.org">Xalan Project</a>
</td>
<td>
<a href="http://xerces.apache.org">Xerces Project</a>
</td>
<td>
<a href="http://www.w3.org/TR">Web Consortium</a>
</td>
<td>
<a href="http://www.oasis-open.org/standards">Oasis Open</a>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navLeft">
<ul>
<li>
<a href="resources.html">Resources</a>
<br />
</li>
<li>
<a href="http://xalan.apache.org/index.html">Home</a>
</li></ul><hr /><ul>
<li>
<a href="index.html">Xalan-J 2.7.2</a>
</li>
<li>
<a href="charter.html">Charter</a>
</li></ul><hr /><ul>
<li>
<a href="whatsnew.html">What's New</a>
</li>
<li>
<a href="readme.html">Release Notes</a>
</li></ul><hr /><ul>
<li>
<a href="overview.html">Overview</a>
</li>
<li>
<a href="downloads.html">Download/Build</a>
</li>
<li>
<a href="getstarted.html">Getting Started</a>
</li>
<li>
<a href="xsltc_usage.html">Using XSLTC</a>
</li></ul><hr /><ul>
<li>
<a href="faq.html">FAQs</a>
</li></ul><hr /><ul>
<li>
<a href="samples.html">Sample Apps</a>
</li>
<li>
<a href="commandline.html">Command Line</a>
</li></ul><hr /><ul>
<li>
<a href="features.html">Features</a>
</li>
<li>
<a href="trax.html">Transform API</a>
</li>
<li>
<a href="xpath_apis.html">XPath API</a>
</li>
<li>
<a href="usagepatterns.html">Usage Patterns</a>
</li></ul><hr /><ul>
<li>
<a href="apidocs/index.html">Xalan-J API</a>
</li>
<li>
<a href="public_apis.html">Public APIs</a>
</li>
<li>
<a href="dtm.html">DTM</a>
</li></ul><hr /><ul>
<li>
<a href="extensions.html">Extensions</a>
</li>
<li>
<a href="extensionslib.html">Extensions Library</a>
</li>
<li>
<a href="extensions_xsltc.html">XSLTC Exts</a>
</li></ul><hr /><ul>
<li>
<a href="design/design2_0_0.html">Xalan 2 Design</a>
</li>
<li>
<a href="xsltc/index.html">XSLTC Design</a>
</li></ul><hr /><ul>
<li>
<a href="builds.html">Building a release</a>
</li>
<li>
<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
</li>
<li>Bug Reporting<br />
</li></ul><hr /><ul>
<li>
<a href="contact_us.html">Contact us</a>
</li>
</ul>
</div>
<div id="content">
<h2>Reporting Bugs</h2>
  <p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Before you report a bug</h3>
  <p>Before you report a bug, please, <b>read</b> the following instructions:</p>
  <ul>
  <li>If doubt exists whether the behaviour in question is a bug or a feature, 
      please post a message to the 
      <a href="mailto:j-users@xalan.apache.org">j-users@xalan.apache.org</a>
      list for clarification.</li>
  <li>To help eliminate duplicate or invalid bug reports, please take a quick look at
      bugs in JIRA to see whether the bug has been already reported and/or fixed. 
      You can also download the 
      <a href="downloads.html">latest code</a>
      and check if you can reproduce the bug.</li>
  <li>Report bugs against the newest release.</li>
  </ul>
  <p>We strongly encourage you to write patches for problems you find and attach
     them to your JIRA issue. Being specific in the description of your bug report, and 
     providing enough information to reproduce the bug will improve the likelihood that 
     bugs, adding enhancements, and addressing outstanding design issues, we need your 
     active participation in the ongoing development of Xalan Java.</p>  
  
  
  <p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Bugzilla is not used</h3>
    <p>
      The old bug tracking system, 
      <a href="http://issues.apache.org/bugzilla/">bugzilla</a>,
      is still available but please only use it to look up old bugs.
      Bugzilla has been replaced by <a href="http://issues.apache.org/jira/browse/XALANJ">JIRA</a>
      and old bugzilla <b>bugs</b> have been migrated to JIRA as <b>issues</b>.
    </p>
  
  
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Report a bug</h3>  
  <p>After reading the instructions above, click 
     <a href="http://issues.apache.org/jira/browse/XALANJ">here</a> to submit a bug report using JIRA.
  </p>
  <p>
     Note that the functionality shown by the JIRA user interface changes depending on whether
     you <b>Log In</b> or not. In particular, to have the <b>CREATE NEW ISSUE</b> link 
     you will need to click the <b>Log In</b> in small font, in the top right corner
     of the page and log in.
  </p>
  <p>
     <table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">
       If you had a bugzilla account previously, and had used it with Xalan bugzilla bugs, 
       your account should be migrated to JIRA. In this case, do not create a new account, 
       but use the same e-mail account name and click on "Forgot Password" on the JIRA home page.
     </td>
</tr>
</table>
  </p>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
</div>
<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
</div>
</body>
</html>
