<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta charset="utf-8">
        <title>Report a bug | Apache Wicket</title>
        <meta name="viewport" content="width=device-width, initial-scale=1" />

        <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon" />
        <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
        <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />

		<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>

    </head>

    <body class="">
        <div class="header default">
    <div class="l-menu-container">
<nav class="mainmenu">
    <ul>
		<!-- /start/quickstart.html || /help/reportabug -->
    	<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
		<!-- /start/download.html || /help/reportabug -->
    	<li class=""><a href="/start/download.html">Download</a></li>
		<!-- /learn || /help/reportabug -->
    	<li class=""><a href="/learn">Documentation</a></li>
		<!-- /help || /help/reportabug -->
    	<li class=""><a href="/help">Support</a></li>
		<!-- /contribute || /help/reportabug -->
    	<li class=""><a href="/contribute">Contribute</a></li>
		<!-- /community || /help/reportabug -->
    	<li class=""><a href="/community">Community</a></li>
		<!-- /apache || /help/reportabug -->
    	<li class=""><a href="/apache">Apache</a></li>
    </ul>
</nav>
        <div class="logo">
    <a href="/"><img src="/img/logo-apachewicket.svg" alt="Apache Wicket"></a>
</div>
    </div>
</div>
<main>
    <div class="l-container">
        <header class="l-full preamble">
            <h1>Report a bug</h1>
        </header>
        <section class="l-one-third right">
            <div id="toc" class="toc"><div id="toc-title"><h2>Table of Contents</h2></div><ul><li class="toc--level-1 toc--section-1"><a href="#build-a-quickstart"><span class="toc-number">1</span> <span class="toc-text">Build a Quickstart</span></a></li><li class="toc--level-1 toc--section-2"><a href="#submit-a-patch"><span class="toc-number">2</span> <span class="toc-text">Submit a patch</span></a><ul><li class="toc--level-2 toc--section-3"><a href="#setting-up"><span class="toc-number">2.1</span> <span class="toc-text">Setting up</span></a></li><li class="toc--level-2 toc--section-4"><a href="#checking-out-wicket-from-subversion"><span class="toc-number">2.2</span> <span class="toc-text">Checking out Wicket from Subversion</span></a></li><li class="toc--level-2 toc--section-5"><a href="#kick-the-tires"><span class="toc-number">2.3</span> <span class="toc-text">Kick the tires</span></a></li><li class="toc--level-2 toc--section-6"><a href="#proving-a-bug-exists"><span class="toc-number">2.4</span> <span class="toc-text">Proving a bug exists</span></a></li><li class="toc--level-2 toc--section-7"><a href="#submitting-a-patch"><span class="toc-number">2.5</span> <span class="toc-text">Submitting a patch</span></a></li></ul></li></ul></div>
        </section>
        <section class="l-two-third left">
            <p>Wicket manages bug reports via the <a href="http://issues.apache.org/jira/browse/WICKET">Apache Jira site</a></p>
<p>It requires you to register with the site, to avoid spamming, and attribute
credit where its due. It’s relatively painless. Much harder is writing a
clear and concise bug report.</p>
<p>Etiquette for a bug report is:</p>
<ol>
  <li><strong>Always search for an existing bug report about the issue before adding 
your own.</strong> This can be tricky, but several duplicate bug reports just 
cause an administration headache for developers. If in doubt you can
always post the details of the bug to the <a href="email.html">mailing list</a>, and
wait to be asked to submit a bug report by a dev. But the jira search
functionality is pretty good, so do have go.</li>
  <li><strong>Be clear and concise in your language.</strong> Wording a short but useful 
summary, with a description that contains all the steps leading up to the
error plus any extra circumstantial evidence, is not always easy, but its
vital to getting the issue resolved, and really valuable.</li>
  <li><strong>Watch the bug.</strong> The developers may ask you for more information via the
issue comments, so its good practices to check in on the issue whilst its
still open.</li>
  <li><strong>Don’t be shy of maintaining the issue.</strong> If you find its a duplicate of
some other issue that was reported before yours, then mark it as a
duplicate, and watch the original. If you get more info on the bug, add it
as a comment. If it doesnt get noticed by a dev, try submitting a
quickstart or better still a patch. Ask for it to be reviewed via the
mailing list.</li>
</ol>
<p>You will be rewarded with <a href="https://issues.apache.org/jira/secure/ConfigureReport.jspa?versionId=-1&amp;issueStatus=all&amp;selectedProjectId=12310561&amp;reportKey=com.sourcelabs.jira.plugin.report.contributions%3Acontributionreport&amp;Next=Next">subtle kudos</a>
and the bug is much more likely to be fixed promptly.</p>
<h2 id="build-a-quickstart">Build a Quickstart</h2>
<p>See <a href="/start/quickstart.html">getting started</a> for a good introduction to
building a barebone Wicket project from one command. There is even a tool to
let you customise the command for your project.</p>
<p>Or you can watch Al Maw’s excellent
<a href="http://herebebeasties.com/2007-10-07/wicket-quickstart">screencast</a> covering
the whole process of installing and running Maven, and getting your Eclipse
workspace set up.</p>
<p>The Maven command provided there is the quickest way to get a working Wicket
project that you can use to clearly demonstrate a bug.</p>
<p>Once you have an example that shows the minimum conditions under which the
issue occurs, then you can zip up the project and attach it to the relevant
issue.</p>
<p>When a Wicket dev <a href="https://issues.apache.org/jira/browse/WICKET-497?focusedCommentId=12521870&amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12521870">asks you to submit a quickstart</a>,
that is what they mean.</p>
<p>That is far more useful than posting reams of your application code and
telling everyone it doesn’t work. The former will help diagnose the problem,
the latter will mainly get you abused on the mailing list.</p>
<h2 id="submit-a-patch">Submit a patch</h2>
<p>This is the most involved, but the most rewarding route ;-).
In a nutshell this involves:</p>
<ul>
  <li>Checking out the Wicket source code from the Subversion repository.</li>
  <li>Building it via mvn or IDE plugin.</li>
  <li>Proving the bug exists, either via a Quickstart, or writing a unit test.</li>
  <li>Submitting your fix as a Subversion patch file.</li>
</ul>
<p>This guide will outline how to do it with Eclipse + Subclipse + m2eclipse.
If you prefer the command line, then start here: <a href="/contribute/build.html">building from source</a>
If you can provide a walk through for your IDE of choice then please do add it.</p>
<h3 id="setting-up">Setting up</h3>
<p>Using an Eclipse 3.4.x flavour of your choice add install the following plugins</p>
<ul>
  <li><a href="http://subclipse.tigris.org/">Subclipse for accessing Subversion</a> - Eclipse update site URL http://subclipse.tigris.org/update_1.6.x</li>
  <li><a href="http://m2eclipse.sonatype.org/">m2eclipse for maven support</a> - Eclipse update site: http://m2eclipse.sonatype.org/update/</li>
</ul>
<p>I usually install the entire Subclipse plugin, and all of m2eclipse except the Project configurators unless I am using a J2EE version of Eclipse.
I had a spurious error when adding the m2eclipse update site, “No repository found at http://www.md.pp.ru/~eu/12/” but it didn’t cause any problems with the install.</p>
<h3 id="checking-out-wicket-from-subversion">Checking out Wicket from Subversion</h3>
<ul>
  <li>
    <p><strong>Add the Wicket Subversion repository</strong> - Navigate to Window &gt; Show
Perspective &gt; Other… &gt; SVN Repository Exploring (eclipse uses the term
perspective to mean a collection of views, and a view is one single panel
with some specific function like the navigator view or the editor view) In
the SVN Repositories tab on the left, right click &gt; New &gt; Repository
Location… and paste in the repository url:
http://svn.apache.org/repos/asf/wicket</p>
  </li>
  <li><strong>Checkout the code</strong> - Click on the new Repository and navigate to: trunk
    <blockquote>
      <p>right click &gt; checkout as maven project. Some serious churning will now
occur as you download of Wicket source, and then maven crawls the internet
for all the required libraries. Seriously, go for a stroll in the sunshine;
the checkout and build took about 6minutes on my machine, and thats without
maven needing to download anything.</p>
    </blockquote>
  </li>
  <li><strong>Building Wicket</strong> - All that waiting wasn’t in vain, as you should now
have a fully checked out, dependency managed, built, possibly working,
Wicket code base.</li>
</ul>
<h3 id="kick-the-tires">Kick the tires</h3>
<ul>
  <li>Create a Quickstart via the wicket-archetype-quickstart</li>
  <li>Navigate to the pom.xml in your Quickstart project.</li>
  <li>Set version element to the same value as the one found in the Wicket project pom.xml (e.g. 1.4-SNAPSHOT)</li>
  <li>The plugin should automagically resolve the quickstart’s Wicket dependency from the project rather than a .jar</li>
  <li>Find WicketApplication.java</li>
  <li>Click through to WebApplication class from the extends section of the class definition.</li>
  <li>If all is well, you should be taken to the Wicket project .java version of WebApplication rather than a .class file from a .jar</li>
</ul>
<h3 id="proving-a-bug-exists">Proving a bug exists</h3>
<ul>
  <li><strong>Writing a unit test with WicketTester</strong></li>
</ul>
<h3 id="submitting-a-patch">Submitting a patch</h3>
<ul>
  <li>
    <p><strong>Extract your changeset into a patch file</strong> - As we don’t all have commit
access to the svn repository, we need some other way of getting our changes
to the developers. This is done by making an svn patch file, essentially a
plain text diff, with some subversion specific formatting. With the
Subclipse plug-in creating a patch file is as simple as:</p>
    <ol>
      <li>Right click on the project root (e.g. wicket)</li>
      <li>
        <blockquote>
          <p>Team &gt; Create Patch…</p>
        </blockquote>
      </li>
      <li>Save In File System (and provide a filename, of the form <strong>WICKET-&lt;bug id number&gt;-fix.patch</strong>)</li>
      <li>
        <blockquote>
          <p>Next &gt;</p>
        </blockquote>
      </li>
      <li>Patch Root: Project</li>
      <li>Finish, you now have your patch file where you chose to put it in step 3</li>
      <li>Attach it to the relevant bug report with any further information you have</li>
    </ol>
  </li>
</ul>
        </section>
    </div>
</main>
        <footer class="l-container">
            <div class="l-full">
   	<img src="/img/asf_logo_url.svg" style="height:90px; float:left; margin-right:10px;">
    <div style="margin-top:12px;">Copyright © 2020 — The Apache Software Foundation. Apache Wicket, Wicket, Apache, the Apache feather logo, and the Apache Wicket project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
</div>
        </footer>
    </body>

</html>
