diff --git a/processor/src/main/java/org/mapstruct/ap/util/Executables.java b/processor/src/main/java/org/mapstruct/ap/util/Executables.java index f77834cb2..e5b31e20c 100644 --- a/processor/src/main/java/org/mapstruct/ap/util/Executables.java +++ b/processor/src/main/java/org/mapstruct/ap/util/Executables.java @@ -72,12 +72,10 @@ public class Executables { public static boolean isAdderMethod(ExecutableElement method) { String name = method.getSimpleName().toString(); - if ( isPublic( method ) && name.startsWith( "add" ) && name.length() > 3 && method.getParameters() - .size() == 1 && method.getReturnType().getKind() == TypeKind.VOID ) { - return true; - } + return isPublic( method ) && + name.startsWith( "add" ) && name.length() > 3 && + method.getParameters().size() == 1; - return false; } private static boolean isPublic(ExecutableElement method) { diff --git a/processor/src/test/java/org/mapstruct/ap/test/collection/adder/AdderTest.java b/processor/src/test/java/org/mapstruct/ap/test/collection/adder/AdderTest.java index b80338fb1..98e18cdc4 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/collection/adder/AdderTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/collection/adder/AdderTest.java @@ -41,6 +41,7 @@ import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner; import static org.fest.assertions.Assertions.assertThat; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import org.mapstruct.ap.testutil.IssueKey; /** * @author Sjaak Derksen @@ -69,6 +70,7 @@ import static org.junit.Assert.assertTrue; @RunWith(AnnotationProcessorTestRunner.class) public class AdderTest { + @IssueKey("241") @Test public void testAdd() throws DogException { AdderUsageObserver.setUsed( false ); @@ -103,6 +105,7 @@ public class AdderTest { SourceTargetMapper.INSTANCE.toTarget( source ); } + @IssueKey("241") @Test public void testAddwithExistingTarget() throws DogException { AdderUsageObserver.setUsed( false ); diff --git a/processor/src/test/java/org/mapstruct/ap/test/collection/adder/target/Target.java b/processor/src/test/java/org/mapstruct/ap/test/collection/adder/target/Target.java index f8f54441c..61af3d3c0 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/collection/adder/target/Target.java +++ b/processor/src/test/java/org/mapstruct/ap/test/collection/adder/target/Target.java @@ -48,11 +48,12 @@ public class Target { // dummy method to test selection mechanims } - public void addPet(Long pet) { + public Long addPet(Long pet) { AdderUsageObserver.setUsed( true ); if ( pets == null ) { pets = new ArrayList(); } pets.add( pet ); + return pet; } }