<?xml version="1.0" encoding="UTF-8"?>
<test-data
    xmlns="http://pmd.sourceforge.net/rule-tests"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pmd.sourceforge.net/rule-tests http://pmd.sourceforge.net/rule-tests_1_0_0.xsd">
    <test-code>
        <description><![CDATA[
failure case
     ]]></description>
        <expected-problems>1</expected-problems>
        <code><![CDATA[
public class Foo {
 void bar() {
  try {
   try {
   } catch (Exception e) {
    throw new WrapperException(e);
    // this is essentially a GOTO to the WrapperException catch block
   }
  } catch (WrapperException e) {
   // do some more stuff 
  }
 }
}
     ]]></code>
    </test-code>
    <test-code>
        <description><![CDATA[
normal throw catch
     ]]></description>
        <expected-problems>0</expected-problems>
        <code><![CDATA[
public class Foo {
 void bar() {
  try {} catch (Exception e) {}
 }
}
     ]]></code>
    </test-code>
    <test-code>
        <description><![CDATA[
BUG 996007
     ]]></description>
        <expected-problems>0</expected-problems>
        <code><![CDATA[
public class Foo {
 void bar() {
  try {} catch (IOException e) {
  if (foo!=null) 
       throw new IOException(foo.getResponseMessage()); 
  else  
       throw e; 
  
  }
 }
}
     ]]></code>
    </test-code>
    <test-code>
        <description><![CDATA[
NPE
     ]]></description>
        <expected-problems>0</expected-problems>
        <code><![CDATA[
public class Foo {
 void bar() {
  switch(foo) {
   default:
    throw new IllegalArgumentException();
  }
 }
}
     ]]></code>
    </test-code>
</test-data>
