<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pentagrid AG (Einträge über Fuzzing)</title><link>https://www.pentagrid.ch/</link><description></description><atom:link href="https://www.pentagrid.ch/de/categories/cat_fuzzing.xml" rel="self" type="application/rss+xml"></atom:link><language>de</language><copyright>Contents © 2026 Pentagrid AG </copyright><lastBuildDate>Wed, 17 Jun 2026 19:14:53 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>5# AFL++ suite Docker images</title><link>https://www.pentagrid.ch/de/blog/pentagrid-aflplusplus-suite-docker-images/</link><dc:creator>Pentagrid AG</dc:creator><description>&lt;figure&gt;&lt;img src="https://www.pentagrid.ch/images/default_preview_image.jpeg"&gt;&lt;/figure&gt; &lt;p&gt;This blog post is about Docker images for a very specific fuzzer and its sister projects, the American Fuzzy Lop (AFL). If you need a short introduction to the idea of fuzzing or you want to find general information for AFL, check out &lt;a class="reference external" href="https://www.pentagrid.ch/en/blog/fuzzing_java_with_jqf/"&gt;our last blog post "Fuzzing Java with JQF"&lt;/a&gt; (that will then go on and explain how to fuzz Java code) which has pointers to other ressources on the web.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;p&gt;The various sub-topics of fuzzing with AFL and AFL-derived projects can be arbitrarily complex in practice. The automation of being able to detect behavior and especially highlight insecure behavior is called instrumentation. Fuzzing for memory corruptions is so successful because it has become more easy to do the instrumentation and highlight the insecure behavior (such as SEGFAULTs or ASAN aborts). One of the steps that improved the state of the art is AFL. At the beginning it was designed to be very simple and to have only a couple of command line options. And those command line options worked and still work for many use cases. However, as said before the sub-topics of fuzzing can be arbitrarily complex. A lot of fundamental question came up over time on the afl-users mailing list and there was often more than one answer and usually the answers relied on more assumptions. Here are some very common examples:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Q: "AFL only supports target programs that read the fuzzed input from stdin or file. I have a target that listens on a network port!". A: "Use preeny, a LD_PRELOAD library that tries to redirect socket IO to stdin/stdout". A2: "I've created the AFL-fork named &amp;lt;INSERT PROJECT NAME HERE&amp;gt; that is able to fuzz network IO"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Q: "I don't have the source code of the target at all, so I can't compile with afl-clang!". A: "AFL now supports emulating instrumentation with QEMU, just use the -Q command line switch". A2: "Use the afl-dyninst tool."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Q: "I don't find bugs and my fuzzer is slow". A: "You also don't find new paths in your binary, so your setup is incorrect". A2: "Choose a different target configuration". A3: "Use libdislocator/ASAN/persistent mode"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Q: "My target is not written in C or C++/is not compiled with gcc/clang". A: "Use AFL's sister project &amp;lt;INSERT PROJECT NAME HERE&amp;gt;"&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Overall, starting with AFL with a specific target is not the easiest task if you don't know the most important gotchas. Not only do you need to know how software is built, how Makefiles and configure scripts work, but more often you will be the one person who does a more complicated compilation of the target than the average user. To name an example, if you want to compile software with ASAN and add a &lt;cite&gt;CFLAG="-fsanitize=address"&lt;/cite&gt; this might work for some software, other software (especially based on libtool) will require you to specify &lt;cite&gt;LDFLAGS='-fsanitize=address'&lt;/cite&gt; as well. And you are lucky if the compilation simply accepts these flags. Afterwards you need to know at least the red flags of fuzzing with AFL, such as the total paths not increasing (your instrumentation is not working), slow speeds (did you run strace on afl-showmap?) and how to debug them. So you need to be able to do performance debugging as well. You will also need to know why no crashes are found, for example because you simply don't use more elaborate instrumentation with libdislocator or ASAN.&lt;/p&gt;
&lt;p&gt;Even for people using AFL on a regular basis, this can make it time consuming to setup a fuzzing run for a new target. That's why we thought it would be nice to have the most important AFL setups and AFL sister project setups as Docker containers. Here we go (Edit 2021-08-02: bullets edited):&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;afl-blackbox (based on aflplusplus image): Additionally installed &lt;a class="reference external" href="https://github.com/jwilk/recidivm"&gt;recidivm&lt;/a&gt;, &lt;a class="reference external" href="https://github.com/kcwu/afl-kit"&gt;afl-kit&lt;/a&gt; and &lt;a class="reference external" href="https://github.com/vanhauser-thc/afl-dyninst"&gt;afl-dyninst&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;afl-jqf (based on aflplusplus image): Installs &lt;a class="reference external" href="https://github.com/rohanpadhye/jqf"&gt;JQF&lt;/a&gt; including JQF-AFL and JQF-Zest. Used to fuzz projects written in Java.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;afl-demo (based on afl-blackbox): Installs an old version of readelf from an old binutils, afterwards a bash script will do a (very simple but interactive) demo so you can see AFL and the sister projects in action.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can find the &lt;a class="reference external" href="https://github.com/pentagridsec/5-AFL-suite-docker"&gt;Dockerfile and everything you need to build the images on github&lt;/a&gt;. But even better, you can just pull the images from &lt;a class="reference external" href="https://hub.docker.com/u/pentagrid"&gt;the Pentagrid Dockerhub&lt;/a&gt;, see the README on github. If you are not that much into Docker and don't have the time, you can see what the interactive demo does in a &lt;a class="reference external" href="https://vimeo.com/381661328"&gt;video on Vimeo&lt;/a&gt;.&lt;/p&gt;</description><guid>https://www.pentagrid.ch/de/blog/pentagrid-aflplusplus-suite-docker-images/</guid><pubDate>Sat, 28 Dec 2019 07:00:00 GMT</pubDate></item><item><title>Fuzzing Java with JQF</title><link>https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/</link><dc:creator>Pentagrid AG</dc:creator><description>&lt;figure&gt;&lt;img src="https://www.pentagrid.ch/images/default_preview_image.jpeg"&gt;&lt;/figure&gt; &lt;p&gt;As we mentioned in our &lt;a class="reference external" href="https://www.pentagrid.ch/en/blog/fuzzing_java_with_the_help_of_jqf_talks/"&gt;our last blog post&lt;/a&gt;, Tobias Ospelt of Pentagrid AG lately broke down the idea of Java fuzzing with JQF into simple steps and presented it at &lt;a class="reference external" href="https://www.swisscyberstorm.com/"&gt;Swiss Cyber Storm&lt;/a&gt; in Bern, Switzerland and at the &lt;a class="reference external" href="https://blackalps.ch/ba-19/"&gt;Black Alps&lt;/a&gt; conference in Yverdon-Les-Bain, Switzerland. The recordings of the talks are not online, yet. (Update: Now they are vailable via the &lt;a class="reference external" href="https://www.youtube.com/watch?v=RaBGEgQiE-4"&gt;Swiss Cyber Storm channel on YouTube&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;We wanted to describe our work in written form as well, so you get a better idea of what can be done by fuzzing Java with JQF. It also allows you to copy and paste commands if you want to try it yourself. We also &lt;a class="reference external" href="https://www.pentagrid.ch/files/pdfs/20191111_pentagrid_fuzzing_java_code_jqf.pdf"&gt;uploaded the talk slides as a PDF&lt;/a&gt; and the &lt;a class="reference external" href="https://www.pentagrid.ch/files/videos/20191111_pentagrid_jqf-afl_tutorial.mp4"&gt;video with the JQF tutorial&lt;/a&gt; and &lt;a class="reference external" href="https://www.pentagrid.ch/files/videos/20191111_pentagrid_jqf-zest_bouncycastle_asn1.mp4"&gt;Bouncycastle ASN.1 parser fuzzing run&lt;/a&gt;, which were shown during the talks.&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;section id="introduction-to-fuzzing"&gt;
&lt;h2&gt;Introduction to fuzzing&lt;/h2&gt;
&lt;p&gt;Fuzzing is a topic in the IT security world that was able to keep its mysteriousness. Every now and then a new fuzzer tool is created and every new fuzzer finds new bugs. Various organisations run fuzzing projects for various reasons and use CPU-years to find security issues. We believe it is still by far the most common way to find memory corruption security issues. The reason why fuzzing is so successful is simple: Fuzzing is the very abstract concept of feeding input in an automated, clever and partially random way to a target program and try to observe undesired behaviour. We are sure there are more exact definitions of fuzzing, but they do not matter for this blog post.&lt;/p&gt;
&lt;p&gt;The fuzzing field is very big and a lot of people spend their entire professional lives with it. There are many fuzzers available online. If you want to learn about fuzzing in general, you can check out &lt;a class="reference external" href="https://www.fuzzingbook.org/"&gt;the fuzzing book&lt;/a&gt; for example.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="afl"&gt;
&lt;h2&gt;AFL&lt;/h2&gt;
&lt;p&gt;The AFL fuzzer was first released in 2014 by Michal Zalewski when he was still at Google. There were many other fuzzers before it, but the combination of an easy way to instrument the code, ease of use in general and the usage of a genetic algorithm with a feedback loop that favours inputs that trigger new code paths revolutionized the field. If you want to know more about AFL and see the impressive bugs it found, you better head over to the &lt;a class="reference external" href="http://lcamtuf.coredump.cx/afl/"&gt;original AFL project page&lt;/a&gt;. There are as well numerous forks of AFL, the one we currently recommend for runs is &lt;a class="reference external" href="https://github.com/vanhauser-thc/AFLplusplus"&gt;AFL++&lt;/a&gt; that seems to be the best maintained one while still aiming for the same goals as the original AFL.&lt;/p&gt;
&lt;p&gt;The thing is, AFL was written to be able to fuzz programs written in memory-unsafe languages, especially C and C++. It operates on files and feeds them to target programs. For this blog post it is important to know that AFL will usually put files that result in crashes of targeted programs into the crash directory. Hangs refer input files that took too long to process, as AFL sets a timeout limit on how long an input can take to process. This means a hang file might just take a little longer than AFL was willing to wait, but it might also mean you found an infinite loop or similar in a program. There is also the path metric which shows how many code paths in the target program were triggered by the input files that were tested so far. This is a very important metric to see if instrumentation works and the genetic algorithm can do its magic.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="fuzzing-java"&gt;
&lt;h2&gt;Fuzzing Java&lt;/h2&gt;
&lt;p&gt;The ideas of what kind of security issues can be found with Java fuzzing came up already before Pentagrid AG was founded (&lt;a class="reference external" href="http://www.floyd.ch/?p=1090"&gt;blog post in Tobias' blog: Java Bugs with and without Fuzzing – AFL-based Java fuzzers and the Java Security Manager&lt;/a&gt;). However, since then the fuzzers evolved. While most fuzzers that were evaluated back then didn't move much on until today, the JQF fuzzer developed by Rohan Padhye at University of Berkeley took a big leap forward. And that's why we only talk about JQF here.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="jqf-afl"&gt;
&lt;h2&gt;JQF-AFL&lt;/h2&gt;
&lt;p&gt;JQF's capabilities were already really impressive when JQF-AFL came out about two years ago. It takes the AFL idea and implements the genetic algorithm approach for Java programs. The JQF-AFL core stayed similar and still uses the AFL binary for fuzzing and therefore shows the original AFL UI. However, as the original AFL UI will show the number of "crashes", this is somehow misleading for JQF-AFL, as they are only uncaught exceptions such as IndexOutOfBoundsException, which in C programs would typically lead to a memory corruption. The hangs and paths discovered mean the same as in the original AFL. More about JQF can be found on the &lt;a class="reference external" href="https://github.com/rohanpadhye/jqf"&gt;JQF github project page and wiki&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The good side of JQF-AFL is that you can operate on file inputs, meaning you can start a fuzzing run of a PNG library with a PNG file. This also simplifies reproduction of the bugs, as the file is the reproducer. However, this also means JQF-AFL is limited, as it is necessary to write a test class that takes an InputStream as an input. You can see JQF-AFL in action (in cooperation with the &lt;a class="reference external" href="https://github.com/vanhauser-thc/AFLplusplus"&gt;AFL++&lt;/a&gt; fork) in the &lt;a class="reference external" href="https://www.pentagrid.ch/files/videos/20191111_pentagrid_jqf-afl_tutorial.mp4"&gt;video that shows how to run the JQF-AFL tutorial against Java ImageIO and then change it to fuzz GIF inputs rather than PNG inputs&lt;/a&gt;. The difference is that PNG bugs AFL-JQF found in ImageIO were already reported and fixed, whereas &lt;a class="reference external" href="https://github.com/rohanpadhye/jqf/issues/60"&gt;that's not the case for the GIF parser&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.floyd.ch/?p=1090"&gt;JQF-AFL allowed us to find various security issues in the past&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="jqf-zest"&gt;
&lt;h2&gt;JQF-Zest&lt;/h2&gt;
&lt;p&gt;JQF-Zest is the newer approach that still does the genetic algorithm approach of AFL. Hangs and "crashes" (uncaught exceptions) as well assertion violations are all now named "unique failures" and "total paths" are are now in the "total coverage" metric as branches. Apart from that it behaves similarly to JQF-AFL. However, it implements a couple of improvements and is aiming at developers and people who would like to use fuzzing in their continuous integration. But it also kept its usefulness for security researchers. Developers will be more familiar with this JUnit test approach and might be able to reuse large parts of their Unit Tests for fuzzing.&lt;/p&gt;
&lt;p&gt;JQF-Zest supports other Java types than InputStreams. It will automatically understand types such as int, String and Map because there are &lt;a class="reference external" href="https://github.com/pholser/junit-quickcheck/tree/master/generators/src/main/java/com/pholser/junit/quickcheck/generator"&gt;JUnit quickcheck generators&lt;/a&gt; for them. If a test case you have in mind takes an argument where no generator is available, you can still write your own generator. In the simple case of a single argument of InputStream the input file will correspond directly to the InputStream. However, in all other cases the mapping of an input file to Unit Test arguments is non-trivial and therefore you will later need the jqf-repro program to reproduce function arguments from input files. The good thing is that this file approach will still allow you to reuse past runs for subsequent runs with JQF-Zest to improve coverage. However, as the input and output files do not contain direct values but rather represent seed values for JUnit Quickcheck Generators, it is hard to reuse existing corpus data that wasn't produced by JQF-Zest.&lt;/p&gt;
&lt;p&gt;When writing tests, the &lt;cite&gt;assume*&lt;/cite&gt; methods can be used to abort a test early, if the (often randomly) generated inputs don't have a certain form. While on one hand this can be regarded as additional instrumentation and you have to take care that you don't prevent bugs from being found by assuming too much, it can be really powerful on the other hand. By adding an &lt;cite&gt;assume&lt;/cite&gt; statement at the beginning of the Unit Test, JQF-Zest will try to pass the &lt;cite&gt;assume&lt;/cite&gt; statements with its inputs and therefore make as many tests pass the &lt;cite&gt;assume&lt;/cite&gt; statement as possible. This allows to target certain tests cases a little more focused than it would otherwise be possible. A good example is &lt;a class="reference external" href="https://github.com/rohanpadhye/jqf/blob/3dc9c8930bc9b096b846fc46118845056e15284f/examples/src/test/java/edu/berkeley/cs/jqf/examples/commons/PatriciaTrieTest.java"&gt;the PatriciaTrie example in the JQF repository&lt;/a&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_3d57e966bc2f41f6b84c629afeeaea43-1"&gt;&lt;code data-line-number="1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_3d57e966bc2f41f6b84c629afeeaea43-1" name="rest_code_3d57e966bc2f41f6b84c629afeeaea43-1"&gt;&lt;/a&gt;&lt;span class="nd"&gt;@Fuzz&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_3d57e966bc2f41f6b84c629afeeaea43-2"&gt;&lt;code data-line-number="2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_3d57e966bc2f41f6b84c629afeeaea43-2" name="rest_code_3d57e966bc2f41f6b84c629afeeaea43-2"&gt;&lt;/a&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;testCopy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Map&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_3d57e966bc2f41f6b84c629afeeaea43-3"&gt;&lt;code data-line-number="3"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_3d57e966bc2f41f6b84c629afeeaea43-3" name="rest_code_3d57e966bc2f41f6b84c629afeeaea43-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;assumeTrue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;containsKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_3d57e966bc2f41f6b84c629afeeaea43-4"&gt;&lt;code data-line-number="4"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_3d57e966bc2f41f6b84c629afeeaea43-4" name="rest_code_3d57e966bc2f41f6b84c629afeeaea43-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// Create new trie with input `map`&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_3d57e966bc2f41f6b84c629afeeaea43-5"&gt;&lt;code data-line-number="5"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_3d57e966bc2f41f6b84c629afeeaea43-5" name="rest_code_3d57e966bc2f41f6b84c629afeeaea43-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;Trie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PatriciaTrie&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_3d57e966bc2f41f6b84c629afeeaea43-6"&gt;&lt;code data-line-number="6"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_3d57e966bc2f41f6b84c629afeeaea43-6" name="rest_code_3d57e966bc2f41f6b84c629afeeaea43-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// The key should exist in the trie as well&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_3d57e966bc2f41f6b84c629afeeaea43-7"&gt;&lt;code data-line-number="7"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_3d57e966bc2f41f6b84c629afeeaea43-7" name="rest_code_3d57e966bc2f41f6b84c629afeeaea43-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;assertTrue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;containsKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_3d57e966bc2f41f6b84c629afeeaea43-8"&gt;&lt;code data-line-number="8"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_3d57e966bc2f41f6b84c629afeeaea43-8" name="rest_code_3d57e966bc2f41f6b84c629afeeaea43-8"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;The test is requiring a Map and a String to be passed as arguments and the first &lt;cite&gt;assume&lt;/cite&gt; statement will make sure that the String is in the Map (as a key). JQF-Zest will know this requirement and will try to comply with it. On the other hand, we will never be able to find issues in PatriciaTrie's &lt;cite&gt;containsKey&lt;/cite&gt; method with this test that only occurs when a non-existing key is passed to PatriciaTrie's &lt;cite&gt;containsKey&lt;/cite&gt;.&lt;/p&gt;
&lt;p&gt;While JQF-Zest is available as a command line tool, it is also available as a maven plugin, meaning you don't have to install JQF yourself and maven will do it transparently for you. It allows easy continuous integration and you can choose to do a fuzzing run for a limited time by specifying the &lt;cite&gt;-Dtime=5m&lt;/cite&gt; argument to the maven jqf-zest plugin.&lt;/p&gt;
&lt;p&gt;In our experience JQF-Zest is also faster than JQF-AFL, although we haven't benchmarked it.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="jqf-zest-tutorial"&gt;
&lt;h2&gt;JQF-Zest tutorial&lt;/h2&gt;
&lt;p&gt;To show how easy it can be to run JQF-Zest if you have maven installed already, you can watch the &lt;a class="reference external" href="https://www.pentagrid.ch/files/videos/20191111_pentagrid_jqf-zest_bouncycastle_asn1.mp4"&gt;Bouncycastle ASN.1 parser fuzzing run&lt;/a&gt; video. But here, let's &lt;a class="reference external" href="https://issues.apache.org/jira/browse/COLLECTIONS-714"&gt;recreate Rohan Padhye's PatriciaTrie bug&lt;/a&gt; and create a new folder and add the following two files:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_9bd3e8da4df0426b8480e8d41220ee2c-1"&gt;&lt;code data-line-number="1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_9bd3e8da4df0426b8480e8d41220ee2c-1" name="rest_code_9bd3e8da4df0426b8480e8d41220ee2c-1"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;pom.xml
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_9bd3e8da4df0426b8480e8d41220ee2c-2"&gt;&lt;code data-line-number="2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_9bd3e8da4df0426b8480e8d41220ee2c-2" name="rest_code_9bd3e8da4df0426b8480e8d41220ee2c-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;src/test/java/examples/PatriciaTrieTest.java
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Where pom.xml is:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-1"&gt;&lt;code data-line-number=" 1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-1" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-1"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;project&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;"http://maven.apache.org/POM/4.0.0"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;xmlns:xsi=&lt;/span&gt;&lt;span class="s"&gt;"http://www.w3.org/2001/XMLSchema-instance"&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-2"&gt;&lt;code data-line-number=" 2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-2" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="na"&gt;xsi:schemaLocation=&lt;/span&gt;&lt;span class="s"&gt;"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-3"&gt;&lt;code data-line-number=" 3"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-3" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;modelVersion&amp;gt;&lt;/span&gt;4.0.0&lt;span class="nt"&gt;&amp;lt;/modelVersion&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-4"&gt;&lt;code data-line-number=" 4"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-4" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-4"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-5"&gt;&lt;code data-line-number=" 5"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-5" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;examples&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-6"&gt;&lt;code data-line-number=" 6"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-6" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;zest-tutorial&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-7"&gt;&lt;code data-line-number=" 7"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-7" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.0-SNAPSHOT&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-8"&gt;&lt;code data-line-number=" 8"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-8" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-8"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-9"&gt;&lt;code data-line-number=" 9"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-9" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-10"&gt;&lt;code data-line-number="10"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-10" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;maven.compiler.source&amp;gt;&lt;/span&gt;1.8&lt;span class="nt"&gt;&amp;lt;/maven.compiler.source&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-11"&gt;&lt;code data-line-number="11"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-11" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;maven.compiler.target&amp;gt;&lt;/span&gt;1.8&lt;span class="nt"&gt;&amp;lt;/maven.compiler.target&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-12"&gt;&lt;code data-line-number="12"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-12" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-12"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-13"&gt;&lt;code data-line-number="13"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-13" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;dependencies&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-14"&gt;&lt;code data-line-number="14"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-14" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-14"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- Apache commons with PatriciaTrie: we want to test this library --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-15"&gt;&lt;code data-line-number="15"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-15" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-15"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-16"&gt;&lt;code data-line-number="16"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-16" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-16"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.commons&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-17"&gt;&lt;code data-line-number="17"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-17" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-17"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;commons-collections4&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-18"&gt;&lt;code data-line-number="18"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-18" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-18"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;4.4&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-19"&gt;&lt;code data-line-number="19"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-19" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-19"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-20"&gt;&lt;code data-line-number="20"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-20" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-20"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-21"&gt;&lt;code data-line-number="21"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-21" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-21"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- JQF: test dependency for @Fuzz annotation --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-22"&gt;&lt;code data-line-number="22"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-22" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-22"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-23"&gt;&lt;code data-line-number="23"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-23" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-23"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;edu.berkeley.cs.jqf&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-24"&gt;&lt;code data-line-number="24"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-24" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-24"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;jqf-fuzz&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-25"&gt;&lt;code data-line-number="25"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-25" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-25"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- confirm the latest version at: https://mvnrepository.com/artifact/edu.berkeley.cs.jqf --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-26"&gt;&lt;code data-line-number="26"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-26" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-26"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.3&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-27"&gt;&lt;code data-line-number="27"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-27" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-27"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;test&lt;span class="nt"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-28"&gt;&lt;code data-line-number="28"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-28" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-28"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-29"&gt;&lt;code data-line-number="29"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-29" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-29"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-30"&gt;&lt;code data-line-number="30"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-30" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-30"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- JUnit-QuickCheck: API to write generators --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-31"&gt;&lt;code data-line-number="31"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-31" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-31"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-32"&gt;&lt;code data-line-number="32"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-32" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-32"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;com.pholser&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-33"&gt;&lt;code data-line-number="33"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-33" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-33"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;junit-quickcheck-generators&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-34"&gt;&lt;code data-line-number="34"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-34" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-34"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;0.9&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-35"&gt;&lt;code data-line-number="35"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-35" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-35"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;test&lt;span class="nt"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-36"&gt;&lt;code data-line-number="36"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-36" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-36"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-37"&gt;&lt;code data-line-number="37"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-37" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-37"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-38"&gt;&lt;code data-line-number="38"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-38" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-38"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/dependencies&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-39"&gt;&lt;code data-line-number="39"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-39" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-39"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-40"&gt;&lt;code data-line-number="40"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-40" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-40"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;build&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-41"&gt;&lt;code data-line-number="41"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-41" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-41"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;plugins&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-42"&gt;&lt;code data-line-number="42"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-42" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-42"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- The JQF plugin, for invoking the command `mvn jqf:fuzz` --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-43"&gt;&lt;code data-line-number="43"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-43" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-43"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-44"&gt;&lt;code data-line-number="44"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-44" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-44"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;edu.berkeley.cs.jqf&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-45"&gt;&lt;code data-line-number="45"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-45" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-45"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;jqf-maven-plugin&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-46"&gt;&lt;code data-line-number="46"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-46" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-46"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- confirm the latest version at: https://mvnrepository.com/artifact/edu.berkeley.cs.jqf --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-47"&gt;&lt;code data-line-number="47"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-47" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-47"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.3&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-48"&gt;&lt;code data-line-number="48"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-48" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-48"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-49"&gt;&lt;code data-line-number="49"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-49" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-49"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/plugins&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-50"&gt;&lt;code data-line-number="50"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-50" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-50"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/build&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_a94c0277cc964bcca3db6e9817868a5b-51"&gt;&lt;code data-line-number="51"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_a94c0277cc964bcca3db6e9817868a5b-51" name="rest_code_a94c0277cc964bcca3db6e9817868a5b-51"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/project&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;And PatriciaTrieTest.java is:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-1"&gt;&lt;code data-line-number=" 1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-1" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-1"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;package&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;examples&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-2"&gt;&lt;code data-line-number=" 2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-2" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-2"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-3"&gt;&lt;code data-line-number=" 3"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-3" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;java.util.Map&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-4"&gt;&lt;code data-line-number=" 4"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-4" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;org.apache.commons.collections4.trie.PatriciaTrie&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-5"&gt;&lt;code data-line-number=" 5"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-5" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-5"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-6"&gt;&lt;code data-line-number=" 6"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-6" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;edu.berkeley.cs.jqf.fuzz.Fuzz&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-7"&gt;&lt;code data-line-number=" 7"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-7" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;edu.berkeley.cs.jqf.fuzz.JQF&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-8"&gt;&lt;code data-line-number=" 8"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-8" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;org.junit.runner.RunWith&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-9"&gt;&lt;code data-line-number=" 9"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-9" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-9"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-10"&gt;&lt;code data-line-number="10"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-10" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import static&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;org.junit.Assert.assertTrue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-11"&gt;&lt;code data-line-number="11"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-11" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import static&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;org.junit.Assume.assumeTrue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-12"&gt;&lt;code data-line-number="12"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-12" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-12"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-13"&gt;&lt;code data-line-number="13"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-13" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="cm"&gt;/**&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-14"&gt;&lt;code data-line-number="14"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-14" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-14"&gt;&lt;/a&gt;&lt;span class="cm"&gt;     * @author Rohan Padhye&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-15"&gt;&lt;code data-line-number="15"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-15" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-15"&gt;&lt;/a&gt;&lt;span class="cm"&gt;     * changed example by Tobias Ospelt&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-16"&gt;&lt;code data-line-number="16"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-16" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-16"&gt;&lt;/a&gt;&lt;span class="cm"&gt;     */&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-17"&gt;&lt;code data-line-number="17"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-17" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-17"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nd"&gt;@RunWith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;JQF&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-18"&gt;&lt;code data-line-number="18"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-18" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-18"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PatriciaTrieTest&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-19"&gt;&lt;code data-line-number="19"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-19" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-19"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-20"&gt;&lt;code data-line-number="20"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-20" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-20"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nd"&gt;@Fuzz&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-21"&gt;&lt;code data-line-number="21"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-21" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-21"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;testCopy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Map&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-22"&gt;&lt;code data-line-number="22"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-22" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-22"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;assumeTrue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;isEmpty&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-23"&gt;&lt;code data-line-number="23"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-23" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-23"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;assumeTrue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;containsKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-24"&gt;&lt;code data-line-number="24"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-24" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-24"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="c1"&gt;// Create new trie with input `map`&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-25"&gt;&lt;code data-line-number="25"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-25" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-25"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;PatriciaTrie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PatriciaTrie&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-26"&gt;&lt;code data-line-number="26"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-26" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-26"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="c1"&gt;// The key should exist in the trie as well&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-27"&gt;&lt;code data-line-number="27"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-27" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-27"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;assertTrue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;containsKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-28"&gt;&lt;code data-line-number="28"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-28" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-28"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-29"&gt;&lt;code data-line-number="29"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-29" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-29"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_0e4d07bdb0744c76a4565d1781e838d5-30"&gt;&lt;code data-line-number="30"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_0e4d07bdb0744c76a4565d1781e838d5-30" name="rest_code_0e4d07bdb0744c76a4565d1781e838d5-30"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Inside your folder run the following commands:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_9a5a747020c2431cb4639c5d75ef343f-1"&gt;&lt;code data-line-number="1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_9a5a747020c2431cb4639c5d75ef343f-1" name="rest_code_9a5a747020c2431cb4639c5d75ef343f-1"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;mvn&lt;span class="w"&gt; &lt;/span&gt;test-compile
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_9a5a747020c2431cb4639c5d75ef343f-2"&gt;&lt;code data-line-number="2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_9a5a747020c2431cb4639c5d75ef343f-2" name="rest_code_9a5a747020c2431cb4639c5d75ef343f-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;mvn&lt;span class="w"&gt; &lt;/span&gt;jqf:fuzz&lt;span class="w"&gt; &lt;/span&gt;-Dclass&lt;span class="o"&gt;=&lt;/span&gt;examples.PatriciaTrieTest&lt;span class="w"&gt; &lt;/span&gt;-Dmethod&lt;span class="o"&gt;=&lt;/span&gt;testCopy&lt;span class="w"&gt; &lt;/span&gt;-Dtime&lt;span class="o"&gt;=&lt;/span&gt;1m
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Once the fuzzing is done (1 minute), you should have one unique failure. If you get zero failures you were unlucky, remove the "target" directory, compile and run the fuzzer again. If you have more than one unique failure, you found a new bug, which would be interesting. You can run the following command to reproduce the found failure, however:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_657ce718f10743c3ab326671e3d267fa-1"&gt;&lt;code data-line-number="1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_657ce718f10743c3ab326671e3d267fa-1" name="rest_code_657ce718f10743c3ab326671e3d267fa-1"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;mvn&lt;span class="w"&gt; &lt;/span&gt;jqf:repro&lt;span class="w"&gt; &lt;/span&gt;-Dclass&lt;span class="o"&gt;=&lt;/span&gt;examples.PatriciaTrieTest&lt;span class="w"&gt; &lt;/span&gt;-Dmethod&lt;span class="o"&gt;=&lt;/span&gt;testCopy&lt;span class="w"&gt; &lt;/span&gt;-Dinput&lt;span class="o"&gt;=&lt;/span&gt;target/fuzz-results/examples.PatriciaTrieTest/testCopy/failures/id_000000&lt;span class="w"&gt; &lt;/span&gt;-DprintArgs
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Unfortunately, the command line parameter &lt;cite&gt;-DprintArgs&lt;/cite&gt; won't help you much with reproducing the bug in this case, as printing non-printable characters is definitely involved. We therefore need to print the inputs created by JQF somehow differently to reproduce the issue. You can write another file in &lt;cite&gt;src/test/java/examples/PatriciaTriePrint.java&lt;/cite&gt; with the following content, which adds some debug print statements that output UTF-16 (Java's default encoding) hexadecimal:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-1"&gt;&lt;code data-line-number=" 1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-1" name="rest_code_07b1f2420446451590b23a10c65ebe88-1"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;package&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;examples&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-2"&gt;&lt;code data-line-number=" 2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-2" name="rest_code_07b1f2420446451590b23a10c65ebe88-2"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-3"&gt;&lt;code data-line-number=" 3"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-3" name="rest_code_07b1f2420446451590b23a10c65ebe88-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;java.util.Map&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-4"&gt;&lt;code data-line-number=" 4"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-4" name="rest_code_07b1f2420446451590b23a10c65ebe88-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;org.apache.commons.collections4.trie.PatriciaTrie&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-5"&gt;&lt;code data-line-number=" 5"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-5" name="rest_code_07b1f2420446451590b23a10c65ebe88-5"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-6"&gt;&lt;code data-line-number=" 6"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-6" name="rest_code_07b1f2420446451590b23a10c65ebe88-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;edu.berkeley.cs.jqf.fuzz.Fuzz&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-7"&gt;&lt;code data-line-number=" 7"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-7" name="rest_code_07b1f2420446451590b23a10c65ebe88-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;edu.berkeley.cs.jqf.fuzz.JQF&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-8"&gt;&lt;code data-line-number=" 8"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-8" name="rest_code_07b1f2420446451590b23a10c65ebe88-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;org.junit.runner.RunWith&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-9"&gt;&lt;code data-line-number=" 9"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-9" name="rest_code_07b1f2420446451590b23a10c65ebe88-9"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-10"&gt;&lt;code data-line-number="10"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-10" name="rest_code_07b1f2420446451590b23a10c65ebe88-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import static&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;org.junit.Assert.assertTrue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-11"&gt;&lt;code data-line-number="11"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-11" name="rest_code_07b1f2420446451590b23a10c65ebe88-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kn"&gt;import static&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;org.junit.Assume.assumeTrue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-12"&gt;&lt;code data-line-number="12"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-12" name="rest_code_07b1f2420446451590b23a10c65ebe88-12"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-13"&gt;&lt;code data-line-number="13"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-13" name="rest_code_07b1f2420446451590b23a10c65ebe88-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="cm"&gt;/**&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-14"&gt;&lt;code data-line-number="14"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-14" name="rest_code_07b1f2420446451590b23a10c65ebe88-14"&gt;&lt;/a&gt;&lt;span class="cm"&gt;     * @author Rohan Padhye&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-15"&gt;&lt;code data-line-number="15"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-15" name="rest_code_07b1f2420446451590b23a10c65ebe88-15"&gt;&lt;/a&gt;&lt;span class="cm"&gt;     * changed example by Tobias Ospelt&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-16"&gt;&lt;code data-line-number="16"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-16" name="rest_code_07b1f2420446451590b23a10c65ebe88-16"&gt;&lt;/a&gt;&lt;span class="cm"&gt;     */&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-17"&gt;&lt;code data-line-number="17"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-17" name="rest_code_07b1f2420446451590b23a10c65ebe88-17"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nd"&gt;@RunWith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;JQF&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-18"&gt;&lt;code data-line-number="18"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-18" name="rest_code_07b1f2420446451590b23a10c65ebe88-18"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PatriciaTriePrint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-19"&gt;&lt;code data-line-number="19"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-19" name="rest_code_07b1f2420446451590b23a10c65ebe88-19"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-20"&gt;&lt;code data-line-number="20"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-20" name="rest_code_07b1f2420446451590b23a10c65ebe88-20"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nd"&gt;@Fuzz&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-21"&gt;&lt;code data-line-number="21"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-21" name="rest_code_07b1f2420446451590b23a10c65ebe88-21"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;testCopy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Map&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-22"&gt;&lt;code data-line-number="22"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-22" name="rest_code_07b1f2420446451590b23a10c65ebe88-22"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="c1"&gt;//The easiest way to reproduce:&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-23"&gt;&lt;code data-line-number="23"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-23" name="rest_code_07b1f2420446451590b23a10c65ebe88-23"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mapkey&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;keySet&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-24"&gt;&lt;code data-line-number="24"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-24" name="rest_code_07b1f2420446451590b23a10c65ebe88-24"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Map key in UTF-16 hexadecimal: "&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;stringToUTF16Hex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mapkey&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-25"&gt;&lt;code data-line-number="25"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-25" name="rest_code_07b1f2420446451590b23a10c65ebe88-25"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-26"&gt;&lt;code data-line-number="26"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-26" name="rest_code_07b1f2420446451590b23a10c65ebe88-26"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Key in UTF-16 hexadecimal: "&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;stringToUTF16Hex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-27"&gt;&lt;code data-line-number="27"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-27" name="rest_code_07b1f2420446451590b23a10c65ebe88-27"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;assumeTrue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;isEmpty&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-28"&gt;&lt;code data-line-number="28"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-28" name="rest_code_07b1f2420446451590b23a10c65ebe88-28"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;assumeTrue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;containsKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-29"&gt;&lt;code data-line-number="29"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-29" name="rest_code_07b1f2420446451590b23a10c65ebe88-29"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="c1"&gt;// Create new trie with input `map`&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-30"&gt;&lt;code data-line-number="30"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-30" name="rest_code_07b1f2420446451590b23a10c65ebe88-30"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;PatriciaTrie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PatriciaTrie&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-31"&gt;&lt;code data-line-number="31"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-31" name="rest_code_07b1f2420446451590b23a10c65ebe88-31"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="c1"&gt;// The key should exist in the trie as well&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-32"&gt;&lt;code data-line-number="32"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-32" name="rest_code_07b1f2420446451590b23a10c65ebe88-32"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;assertTrue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;trie&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;containsKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-33"&gt;&lt;code data-line-number="33"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-33" name="rest_code_07b1f2420446451590b23a10c65ebe88-33"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-34"&gt;&lt;code data-line-number="34"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-34" name="rest_code_07b1f2420446451590b23a10c65ebe88-34"&gt;&lt;/a&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-35"&gt;&lt;code data-line-number="35"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-35" name="rest_code_07b1f2420446451590b23a10c65ebe88-35"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="kd"&gt;static&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;stringToUTF16Hex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-36"&gt;&lt;code data-line-number="36"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-36" name="rest_code_07b1f2420446451590b23a10c65ebe88-36"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;StringBuilder&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;StringBuilder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-37"&gt;&lt;code data-line-number="37"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-37" name="rest_code_07b1f2420446451590b23a10c65ebe88-37"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toCharArray&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-38"&gt;&lt;code data-line-number="38"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-38" name="rest_code_07b1f2420446451590b23a10c65ebe88-38"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-39"&gt;&lt;code data-line-number="39"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-39" name="rest_code_07b1f2420446451590b23a10c65ebe88-39"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;' '&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-40"&gt;&lt;code data-line-number="40"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-40" name="rest_code_07b1f2420446451590b23a10c65ebe88-40"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"%04x"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-41"&gt;&lt;code data-line-number="41"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-41" name="rest_code_07b1f2420446451590b23a10c65ebe88-41"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-42"&gt;&lt;code data-line-number="42"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-42" name="rest_code_07b1f2420446451590b23a10c65ebe88-42"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-43"&gt;&lt;code data-line-number="43"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-43" name="rest_code_07b1f2420446451590b23a10c65ebe88-43"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_07b1f2420446451590b23a10c65ebe88-44"&gt;&lt;code data-line-number="44"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_07b1f2420446451590b23a10c65ebe88-44" name="rest_code_07b1f2420446451590b23a10c65ebe88-44"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Then run it:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_8d20f61da2264c31af7560c08b58f68b-1"&gt;&lt;code data-line-number="1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_8d20f61da2264c31af7560c08b58f68b-1" name="rest_code_8d20f61da2264c31af7560c08b58f68b-1"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;mvn&lt;span class="w"&gt; &lt;/span&gt;test-compile
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_8d20f61da2264c31af7560c08b58f68b-2"&gt;&lt;code data-line-number="2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_8d20f61da2264c31af7560c08b58f68b-2" name="rest_code_8d20f61da2264c31af7560c08b58f68b-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;mvn&lt;span class="w"&gt; &lt;/span&gt;jqf:repro&lt;span class="w"&gt; &lt;/span&gt;-Dclass&lt;span class="o"&gt;=&lt;/span&gt;examples.PatriciaTriePrint&lt;span class="w"&gt; &lt;/span&gt;-Dmethod&lt;span class="o"&gt;=&lt;/span&gt;testCopy&lt;span class="w"&gt; &lt;/span&gt;-Dinput&lt;span class="o"&gt;=&lt;/span&gt;target/fuzz-results/examples.PatriciaTrieTest/testCopy/failures/id_000000
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;This will hopefully print something like:&lt;/p&gt;
&lt;div class="code"&gt;&lt;table class="codetable"&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-1"&gt;&lt;code data-line-number=" 1"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-1" name="rest_code_db94e6e77df14328866d5552aecf301e-1"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;...&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-2"&gt;&lt;code data-line-number=" 2"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-2" name="rest_code_db94e6e77df14328866d5552aecf301e-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;Map&lt;span class="w"&gt; &lt;/span&gt;key&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;UTF-16&lt;span class="w"&gt; &lt;/span&gt;hexadecimal:&lt;span class="w"&gt; &lt;/span&gt;d98c&lt;span class="w"&gt; &lt;/span&gt;dd95&lt;span class="w"&gt; &lt;/span&gt;d93d&lt;span class="w"&gt; &lt;/span&gt;dc62&lt;span class="w"&gt; &lt;/span&gt;dbca&lt;span class="w"&gt; &lt;/span&gt;dda6&lt;span class="w"&gt; &lt;/span&gt;da7d&lt;span class="w"&gt; &lt;/span&gt;dec9&lt;span class="w"&gt; &lt;/span&gt;b525&lt;span class="w"&gt; &lt;/span&gt;d93f&lt;span class="w"&gt; &lt;/span&gt;dd5e&lt;span class="w"&gt; &lt;/span&gt;db81&lt;span class="w"&gt; &lt;/span&gt;dd61&lt;span class="w"&gt; &lt;/span&gt;dbf3&lt;span class="w"&gt; &lt;/span&gt;df55&lt;span class="w"&gt; &lt;/span&gt;d9e4&lt;span class="w"&gt; &lt;/span&gt;dd3d&lt;span class="w"&gt; &lt;/span&gt;d908&lt;span class="w"&gt; &lt;/span&gt;dc9e
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-3"&gt;&lt;code data-line-number=" 3"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-3" name="rest_code_db94e6e77df14328866d5552aecf301e-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;Map&lt;span class="w"&gt; &lt;/span&gt;key&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;UTF-16&lt;span class="w"&gt; &lt;/span&gt;hexadecimal:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;6629&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;6255&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;8dfc&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;20a5&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;9306&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;2e65&lt;span class="w"&gt; &lt;/span&gt;d44f&lt;span class="w"&gt; &lt;/span&gt;601a&lt;span class="w"&gt; &lt;/span&gt;b0cc&lt;span class="w"&gt; &lt;/span&gt;75a6&lt;span class="w"&gt; &lt;/span&gt;77c3&lt;span class="w"&gt; &lt;/span&gt;22e5&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;6210&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;0f1d&lt;span class="w"&gt; &lt;/span&gt;8f90&lt;span class="w"&gt; &lt;/span&gt;c418
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-4"&gt;&lt;code data-line-number=" 4"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-4" name="rest_code_db94e6e77df14328866d5552aecf301e-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;Map&lt;span class="w"&gt; &lt;/span&gt;key&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;UTF-16&lt;span class="w"&gt; &lt;/span&gt;hexadecimal:&lt;span class="w"&gt; &lt;/span&gt;da06&lt;span class="w"&gt; &lt;/span&gt;ddf6
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-5"&gt;&lt;code data-line-number=" 5"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-5" name="rest_code_db94e6e77df14328866d5552aecf301e-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;Map&lt;span class="w"&gt; &lt;/span&gt;key&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;UTF-16&lt;span class="w"&gt; &lt;/span&gt;hexadecimal:&lt;span class="w"&gt; &lt;/span&gt;216c&lt;span class="w"&gt; &lt;/span&gt;2a08
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-6"&gt;&lt;code data-line-number=" 6"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-6" name="rest_code_db94e6e77df14328866d5552aecf301e-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;Map&lt;span class="w"&gt; &lt;/span&gt;key&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;UTF-16&lt;span class="w"&gt; &lt;/span&gt;hexadecimal:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0000&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-7"&gt;&lt;code data-line-number=" 7"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-7" name="rest_code_db94e6e77df14328866d5552aecf301e-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;Map&lt;span class="w"&gt; &lt;/span&gt;key&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;UTF-16&lt;span class="w"&gt; &lt;/span&gt;hexadecimal:
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-8"&gt;&lt;code data-line-number=" 8"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-8" name="rest_code_db94e6e77df14328866d5552aecf301e-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;Map&lt;span class="w"&gt; &lt;/span&gt;key&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;UTF-16&lt;span class="w"&gt; &lt;/span&gt;hexadecimal:&lt;span class="w"&gt; &lt;/span&gt;d806&lt;span class="w"&gt; &lt;/span&gt;df87&lt;span class="w"&gt; &lt;/span&gt;b2a7&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;d9a3&lt;span class="w"&gt; &lt;/span&gt;df0f&lt;span class="w"&gt; &lt;/span&gt;db96&lt;span class="w"&gt; &lt;/span&gt;dc98&lt;span class="w"&gt; &lt;/span&gt;dbea&lt;span class="w"&gt; &lt;/span&gt;dc5c&lt;span class="w"&gt; &lt;/span&gt;d91b&lt;span class="w"&gt; &lt;/span&gt;dec6&lt;span class="w"&gt; &lt;/span&gt;001a&lt;span class="w"&gt; &lt;/span&gt;da79&lt;span class="w"&gt; &lt;/span&gt;dc7c&lt;span class="w"&gt; &lt;/span&gt;db52&lt;span class="w"&gt; &lt;/span&gt;de03&lt;span class="w"&gt; &lt;/span&gt;d9a5&lt;span class="w"&gt; &lt;/span&gt;de59&lt;span class="w"&gt; &lt;/span&gt;db75&lt;span class="w"&gt; &lt;/span&gt;dd1a&lt;span class="w"&gt; &lt;/span&gt;d85e&lt;span class="w"&gt; &lt;/span&gt;dd12
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-9"&gt;&lt;code data-line-number=" 9"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-9" name="rest_code_db94e6e77df14328866d5552aecf301e-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;Map&lt;span class="w"&gt; &lt;/span&gt;key&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;UTF-16&lt;span class="w"&gt; &lt;/span&gt;hexadecimal:&lt;span class="w"&gt; &lt;/span&gt;8e82&lt;span class="w"&gt; &lt;/span&gt;6b00&lt;span class="w"&gt; &lt;/span&gt;9aeb&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;9664&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;ba48&lt;span class="w"&gt; &lt;/span&gt;935e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0000&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-10"&gt;&lt;code data-line-number="10"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-10" name="rest_code_db94e6e77df14328866d5552aecf301e-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;Key&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;UTF-16&lt;span class="w"&gt; &lt;/span&gt;hexadecimal:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0000&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-11"&gt;&lt;code data-line-number="11"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-11" name="rest_code_db94e6e77df14328866d5552aecf301e-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;...&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-12"&gt;&lt;code data-line-number="12"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-12" name="rest_code_db94e6e77df14328866d5552aecf301e-12"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;java.lang.AssertionError
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-13"&gt;&lt;code data-line-number="13"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-13" name="rest_code_db94e6e77df14328866d5552aecf301e-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;...&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-14"&gt;&lt;code data-line-number="14"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-14" name="rest_code_db94e6e77df14328866d5552aecf301e-14"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;at&lt;span class="w"&gt; &lt;/span&gt;examples.PatriciaTriePrint.testCopy&lt;span class="o"&gt;(&lt;/span&gt;PatriciaTriePrint.java&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="linenos linenodiv"&gt;&lt;a href="https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/#rest_code_db94e6e77df14328866d5552aecf301e-15"&gt;&lt;code data-line-number="15"&gt;&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;code&gt;&lt;a id="rest_code_db94e6e77df14328866d5552aecf301e-15" name="rest_code_db94e6e77df14328866d5552aecf301e-15"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;...&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;This means that something is not working correctly when it comes to &lt;a class="reference external" href="https://issues.apache.org/jira/browse/COLLECTIONS-714"&gt;null characters in strings just as described in the bug report by Rohan&lt;/a&gt;. If you check the PatriciaTrieTest again, you will see that although a null character is present in &lt;cite&gt;map.keySet()&lt;/cite&gt;, the &lt;cite&gt;containsKey&lt;/cite&gt; function returns false, because the assert statement is violated.&lt;/p&gt;
&lt;p&gt;If you liked this tutorial and want to do more with JQF, we recommend following &lt;a class="reference external" href="https://github.com/rohanpadhye/jqf/wiki"&gt;the other tutorials of JQF&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="bug-classes"&gt;
&lt;h2&gt;Bug classes&lt;/h2&gt;
&lt;p&gt;As already said, a broader picture of what can be found with fuzzing in the Java world can be found &lt;a class="reference external" href="http://www.floyd.ch/?p=1090"&gt;in another blog post&lt;/a&gt;. But let's focus on JQF here. So far JQF was able to find bugs in the area of the following bug classes:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Exception issues potentially affecting availability, for example ClassCastException or IndexOutOfBoundsException.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Denial of Service issues, for example infinite loops in code and out of memory conditions (OutOfMemoryError).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Logic bugs, if the correct assert statements are written such as for the above PatriciaTrie example.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We assume the following bug classes could be found as well by using JQF:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Any security issues that would lead to an uncaught exception, for example an SQLSyntaxErrorException for SQL injections. However, this also means that the exceptions is not allowed to be caught before it reaches JQF.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Any security issues that can be expressed by assert statements, such as differential fuzzing for cryptographic libraries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Any security issues that can be prohibited by the Java Security Policy Manager, such as Server-Side Request Forgery (SSRF) by preventing network access and subsequently this would throw an Exception when network access is attempted.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the end, a lot of different bug classes can be found as long as the correct assert statement is created, but it is more a question of how much effort it takes.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="outlook"&gt;
&lt;h2&gt;Outlook&lt;/h2&gt;
&lt;p&gt;Knowing JQF-Zest is useful for creating inputs for Unit Tests that improve code coverage, it would be interesting to run JQF-Zest on already present Unit Tests. In this regard it would for example be interesting to see how the Unit Tests in &lt;a class="reference external" href="https://github.com/google/wycheproof"&gt;project Wycheproof&lt;/a&gt; could be changed to accept JQF-Zest created inputs. While a lot of the Unit Tests of Wycheproof use very precisely engineered problematic inputs, for us it would be interesting to see what happens when JQF-Zest mutates them. There are several obstacles in the way until we could do that, first of all that the Unit Tests in Wycheproof are using hard coded inputs rather than passing arguments to a Unit Test function, so this would need to be refactored. However, we also hit the other limitation of JQF-Zest, as it is currently not possible to provide meaningful arguments as a starting point (corpus) for JQF-Zest. As discussed before, that's because input files represent seed values for JUnit Quickcheck generators.&lt;/p&gt;
&lt;p&gt;Another path that is still unexplored is fuzzing with JQF-Zest when the Java Security Policy Manager is in place.&lt;/p&gt;
&lt;/section&gt;</description><guid>https://www.pentagrid.ch/de/blog/fuzzing_java_with_jqf/</guid><pubDate>Wed, 13 Nov 2019 03:42:00 GMT</pubDate></item><item><title>Fuzzing Java with the Help of JQF Talks</title><link>https://www.pentagrid.ch/de/blog/fuzzing_java_with_the_help_of_jqf_talks/</link><dc:creator>Pentagrid AG</dc:creator><description>&lt;figure&gt;&lt;img src="https://www.pentagrid.ch/images/default_preview_image.jpeg"&gt;&lt;/figure&gt; &lt;p&gt;Lately at Pentagrid AG we have been doing research into Java fuzzing. While the ideas of what kind of security vulnerabilities can be found came up already before Pentagrid AG was founded (&lt;a class="reference external" href="http://www.floyd.ch/?p=1090"&gt;blog post over in Tobias Ospelt's blog: Java Bugs with and without Fuzzing – AFL-based Java fuzzers and the Java Security Manager&lt;/a&gt;), a lot of new research was done in the meantime. While most fuzzers that Tobias evaluated back then didn't really move on until today, the JQF fuzzer took a big leap forward. We strongly recommend trying &lt;a class="reference external" href="https://github.com/rohanpadhye/jqf"&gt;JQF&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Tobias broke down the process of Java fuzzing into simple steps and presented it at &lt;a class="reference external" href="https://www.swisscyberstorm.com/"&gt;Swiss Cyber Storm&lt;/a&gt; mid October 2019 in Bern, Switzerland. While the recording is not published on Youtube yet, you can still grab a ticket for the &lt;a class="reference external" href="https://blackalps.ch/ba-19/"&gt;Black Alps 2019&lt;/a&gt; security conference in Yverdonne-Les-Bain, Switzerland during 07 and 08 November 2019, where he is going to present his findings as well.&lt;/p&gt;
&lt;p&gt;JQF's capabilities are really impressive. Stay tuned for a more detailed blog post here after the Blackalps talk.&lt;/p&gt;
&lt;p&gt;Update: The &lt;a class="reference external" href="https://www.youtube.com/watch?v=LsdDRat4S0U"&gt;recording of the talk at Blackalps&lt;/a&gt; is now online.&lt;/p&gt;</description><guid>https://www.pentagrid.ch/de/blog/fuzzing_java_with_the_help_of_jqf_talks/</guid><pubDate>Thu, 17 Oct 2019 03:42:00 GMT</pubDate></item></channel></rss>