<!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="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>
