diff --git a/gh-7270/pom.xml b/gh-7270/pom.xml
new file mode 100644
index 0000000..ad6771f
--- /dev/null
+++ b/gh-7270/pom.xml
@@ -0,0 +1,46 @@
+
+
+ 4.0.0
+
+ com.example
+ spring-boot-test-feign-bug
+ 1.0
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.4.1.RELEASE
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.cloud
+ spring-cloud-starter-feign
+ 1.2.1.RELEASE
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+ 1.8
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
\ No newline at end of file
diff --git a/gh-7270/src/main/java/example/ExampleApplication.java b/gh-7270/src/main/java/example/ExampleApplication.java
new file mode 100644
index 0000000..39b4ad3
--- /dev/null
+++ b/gh-7270/src/main/java/example/ExampleApplication.java
@@ -0,0 +1,24 @@
+package example;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.feign.EnableFeignClients;
+import org.springframework.web.bind.annotation.*;
+
+@SpringBootApplication
+@RestController
+@EnableFeignClients
+public class ExampleApplication {
+
+ @Autowired RepositoryService service;
+
+ public static void main(String[] args) {
+ SpringApplication.run(ExampleApplication.class, args);
+ }
+
+ @GetMapping("/repo/{owner}/{repo}/desc")
+ public String description(@PathVariable String owner, @PathVariable String repo) {
+ return service.description(owner, repo);
+ }
+}
diff --git a/gh-7270/src/main/java/example/GitHub.java b/gh-7270/src/main/java/example/GitHub.java
new file mode 100644
index 0000000..f53519b
--- /dev/null
+++ b/gh-7270/src/main/java/example/GitHub.java
@@ -0,0 +1,12 @@
+package example;
+
+import org.springframework.cloud.netflix.feign.FeignClient;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+@FeignClient(name = "github", url = "https://api.github.com")
+public interface GitHub {
+ @RequestMapping(value = "/repos/{owner}/{repo}", method = RequestMethod.GET)
+ Repo getRepository(@PathVariable(name = "owner") String owner, @PathVariable(name = "repo") String repo);
+}
diff --git a/gh-7270/src/main/java/example/Owner.java b/gh-7270/src/main/java/example/Owner.java
new file mode 100644
index 0000000..276df17
--- /dev/null
+++ b/gh-7270/src/main/java/example/Owner.java
@@ -0,0 +1,23 @@
+package example;
+
+public class Owner {
+
+ public String login;
+ public Long id;
+ public String avatarUrl;
+ public String gravatarId;
+ public String url;
+ public String htmlUrl;
+ public String followersUrl;
+ public String followingUrl;
+ public String gistsUrl;
+ public String starredUrl;
+ public String subscriptionsUrl;
+ public String organizationsUrl;
+ public String reposUrl;
+ public String eventsUrl;
+ public String receivedEventsUrl;
+ public String type;
+ public Boolean siteAdmin;
+
+}
diff --git a/gh-7270/src/main/java/example/Repo.java b/gh-7270/src/main/java/example/Repo.java
new file mode 100644
index 0000000..d19d899
--- /dev/null
+++ b/gh-7270/src/main/java/example/Repo.java
@@ -0,0 +1,74 @@
+package example;
+
+public class Repo {
+ public Long id;
+ public String name;
+ public String fullName;
+ public Owner owner;
+ public Boolean _private;
+ public String htmlUrl;
+ public String description;
+ public Boolean fork;
+ public String url;
+ public String forksUrl;
+ public String keysUrl;
+ public String collaboratorsUrl;
+ public String teamsUrl;
+ public String hooksUrl;
+ public String issueEventsUrl;
+ public String eventsUrl;
+ public String assigneesUrl;
+ public String branchesUrl;
+ public String tagsUrl;
+ public String blobsUrl;
+ public String gitTagsUrl;
+ public String gitRefsUrl;
+ public String treesUrl;
+ public String statusesUrl;
+ public String languagesUrl;
+ public String stargazersUrl;
+ public String contributorsUrl;
+ public String subscribersUrl;
+ public String subscriptionUrl;
+ public String commitsUrl;
+ public String gitCommitsUrl;
+ public String commentsUrl;
+ public String issueCommentUrl;
+ public String contentsUrl;
+ public String compareUrl;
+ public String mergesUrl;
+ public String archiveUrl;
+ public String downloadsUrl;
+ public String issuesUrl;
+ public String pullsUrl;
+ public String milestonesUrl;
+ public String notificationsUrl;
+ public String labelsUrl;
+ public String releasesUrl;
+ public String deploymentsUrl;
+ public String createdAt;
+ public String updatedAt;
+ public String pushedAt;
+ public String gitUrl;
+ public String sshUrl;
+ public String cloneUrl;
+ public String svnUrl;
+ public String homepage;
+ public Long size;
+ public Long stargazersCount;
+ public Long watchersCount;
+ public String language;
+ public Boolean hasIssues;
+ public Boolean hasDownloads;
+ public Boolean hasWiki;
+ public Boolean hasPages;
+ public Long forksCount;
+ public Object mirrorUrl;
+ public Long openIssuesCount;
+ public Long forks;
+ public Long openIssues;
+ public Long watchers;
+ public String defaultBranch;
+ public Long networkCount;
+ public Long subscribersCount;
+}
diff --git a/gh-7270/src/main/java/example/RepositoryService.java b/gh-7270/src/main/java/example/RepositoryService.java
new file mode 100644
index 0000000..e422ccc
--- /dev/null
+++ b/gh-7270/src/main/java/example/RepositoryService.java
@@ -0,0 +1,13 @@
+package example;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RepositoryService {
+ @Autowired GitHub gitHub;
+
+ public String description(String owner, String repository) {
+ return gitHub.getRepository(owner, repository).description;
+ }
+}
diff --git a/gh-7270/src/test/java/example/ExampleApplicationTest.java b/gh-7270/src/test/java/example/ExampleApplicationTest.java
new file mode 100644
index 0000000..96ca5ab
--- /dev/null
+++ b/gh-7270/src/test/java/example/ExampleApplicationTest.java
@@ -0,0 +1,27 @@
+package example;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.servlet.MockMvc;
+import static org.mockito.Mockito.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+
+@RunWith(SpringRunner.class)
+@WebMvcTest
+public class ExampleApplicationTest {
+ @MockBean RepositoryService repositoryService;
+ @Autowired MockMvc mockMvc;
+
+ @Test
+ public void shouldReturnDescription() throws Exception {
+ final String expected = "expected description";
+ when(repositoryService.description(anyString(), anyString()))
+ .thenReturn(expected);
+ mockMvc.perform(get("/repo/foo/bar/desc")).andExpect(content().string(expected));
+ }
+}
diff --git a/gh-7270/src/test/resources/logback.xml b/gh-7270/src/test/resources/logback.xml
new file mode 100644
index 0000000..1b185bb
--- /dev/null
+++ b/gh-7270/src/test/resources/logback.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
\ No newline at end of file