@@ -478,29 +482,7 @@
-
-
-
-
- Status: |
- Name: |
-
-
-
-
-
-
-
- |
-
-
- |
-
-
-
-
-
- n.a.
+
|
@@ -525,6 +507,32 @@
+
+
+
+
+
+ Status: |
+ Name: |
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
+
+
+ n.a.
+
+
diff --git a/japicmp/src/test/java/japicmp/compat/CompatibilityChangesTest.java b/japicmp/src/test/java/japicmp/compat/CompatibilityChangesTest.java
index c684d1a95..8f8232e3b 100644
--- a/japicmp/src/test/java/japicmp/compat/CompatibilityChangesTest.java
+++ b/japicmp/src/test/java/japicmp/compat/CompatibilityChangesTest.java
@@ -8,6 +8,7 @@
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
+import org.hamcrest.core.Is;
import org.junit.Test;
import java.util.Arrays;
@@ -817,4 +818,32 @@ public List createNewClasses(ClassPool classPool) throws Exception {
assertThat(jApiClass.isSourceCompatible(), is(false));
assertThat(jApiClass.getCompatibilityChanges(), hasItem(JApiCompatibilityChange.CLASS_NOW_CHECKED_EXCEPTION));
}
+
+ @Test
+ public void testMethodThrowsNewCheckedException() throws Exception {
+ JarArchiveComparatorOptions options = new JarArchiveComparatorOptions();
+ List jApiClasses = ClassesHelper.compareClasses(options, new ClassesHelper.ClassesGenerator() {
+ @Override
+ public List createOldClasses(ClassPool classPool) throws Exception {
+ CtClass ctClass = CtClassBuilder.create().name("japicmp.Test").addToClassPool(classPool);
+ CtMethodBuilder.create().publicAccess().name("method").addToClass(ctClass);
+ return Collections.singletonList(ctClass);
+ }
+
+ @Override
+ public List createNewClasses(ClassPool classPool) throws Exception {
+ CtClass ctClass = CtClassBuilder.create().name("japicmp.Test").addToClassPool(classPool);
+ CtMethodBuilder.create().publicAccess().name("method").exceptions(new CtClass[] {classPool.get("java.lang.Exception")}).addToClass(ctClass);
+ return Collections.singletonList(ctClass);
+ }
+ });
+ JApiClass jApiClass = getJApiClass(jApiClasses, "japicmp.Test");
+ JApiMethod method = getJApiMethod(jApiClass.getMethods(), "method");
+ assertThat(method.getExceptions().size(), Is.is(1));
+ assertThat(method.getExceptions().get(0).getChangeStatus(), Is.is(JApiChangeStatus.NEW));
+ assertThat(method.getExceptions().get(0).isCheckedException(), Is.is(true));
+ assertThat(method.isBinaryCompatible(), is(true));
+ assertThat(method.isSourceCompatible(), is(false));
+ assertThat(method.getCompatibilityChanges(), hasItem(JApiCompatibilityChange.METHOD_NOW_THROWS_CHECKED_EXCEPTION));
+ }
}
diff --git a/japicmp/src/test/java/japicmp/output/xml/XmlOutputGeneratorTest.java b/japicmp/src/test/java/japicmp/output/xml/XmlOutputGeneratorTest.java
index 5a333082f..c38b4a264 100644
--- a/japicmp/src/test/java/japicmp/output/xml/XmlOutputGeneratorTest.java
+++ b/japicmp/src/test/java/japicmp/output/xml/XmlOutputGeneratorTest.java
@@ -75,7 +75,7 @@ private void generateHtmlReport(Options options) {
List jApiClasses = new ArrayList<>();
JarArchiveComparatorOptions jarArchiveComparatorOptions = JarArchiveComparatorOptions.of(options);
JApiClassType classType = new JApiClassType(Optional.absent(), Optional.absent(), JApiChangeStatus.REMOVED);
- jApiClasses.add(new JApiClass(new JarArchiveComparator(jarArchiveComparatorOptions), "japicmp.Test", Optional.absent(), Optional.absent(), JApiChangeStatus.NEW, classType, jarArchiveComparatorOptions));
+ jApiClasses.add(new JApiClass(new JarArchiveComparator(jarArchiveComparatorOptions), "japicmp.Test", Optional.absent(), Optional.absent(), JApiChangeStatus.NEW, classType));
XmlOutputGeneratorOptions xmlOutputGeneratorOptions = new XmlOutputGeneratorOptions();
xmlOutputGeneratorOptions.setCreateSchemaFile(true);
XmlOutputGenerator generator = new XmlOutputGenerator(jApiClasses, options, xmlOutputGeneratorOptions);
| |