Skip to content

Commit 5c4f980

Browse files
committed
UserService.registerUser(): fixed possible NPE.
Correctly handle situation when registration request was not found.
1 parent 203b2a7 commit 5c4f980

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/main/java/ru/mystamps/web/service/UserService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ public void registerUser(final String login, final String password,
8888

8989
final UsersActivation activation =
9090
usersActivation.findByActivationKey(activationKey);
91+
if (activation == null) {
92+
log.warn("Cannot find registration request for activation key '{}'", activationKey);
93+
return;
94+
}
9195

9296
final String email = activation.getEmail();
9397
final Date registrationDate = activation.getCreatedAt();

src/test/java/ru/mystamps/web/service/UserServiceTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import static org.mockito.Mockito.verify;
3535
import static org.mockito.Mockito.any;
3636
import static org.mockito.Mockito.anyString;
37+
import static org.mockito.Mockito.never;
3738
import static org.mockito.Mockito.when;
3839

3940
import ru.mystamps.web.dao.UserDao;
@@ -146,6 +147,16 @@ public void registerUserShouldDeleteRegistrationRequest() {
146147
verify(usersActivationDao).delete(activation);
147148
}
148149

150+
@Test
151+
public void registerUserShouldDoNothingWhenRegistrationRequestNotFound() {
152+
when(usersActivationDao.findByActivationKey(anyString())).thenReturn(null);
153+
154+
service.registerUser(null, null, null, null);
155+
156+
verify(userDao, never()).add(any(User.class));
157+
verify(usersActivationDao, never()).delete(any(UsersActivation.class));
158+
}
159+
149160
@Test
150161
public void registerUserShouldPassNameToDao() {
151162
when(usersActivationDao.findByActivationKey(anyString())).thenReturn(getUsersActivation());

0 commit comments

Comments
 (0)