From c8071e04bdddf7722ddda2e812e4d6219969297d Mon Sep 17 00:00:00 2001 From: Mykhailo Kuznietsov Date: Wed, 17 Oct 2018 12:26:02 +0300 Subject: [PATCH] Fix exception message during factory update with duplicate name (#11630) --- .../che/api/factory/server/jpa/JpaFactoryDao.java | 6 ++++-- .../che/api/factory/server/spi/tck/FactoryDaoTest.java | 10 ++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/jpa/JpaFactoryDao.java b/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/jpa/JpaFactoryDao.java index 9885e00cdb..bd90c6d585 100644 --- a/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/jpa/JpaFactoryDao.java +++ b/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/jpa/JpaFactoryDao.java @@ -56,7 +56,8 @@ public class JpaFactoryDao implements FactoryDao { try { doCreate(factory); } catch (DuplicateKeyException ex) { - throw new ConflictException(ex.getLocalizedMessage()); + throw new ConflictException( + format("Factory with name '%s' already exists for current user", factory.getName())); } catch (IntegrityConstraintViolationException ex) { throw new ConflictException( "Could not create factory with creator that refers on non-existent user"); @@ -73,7 +74,8 @@ public class JpaFactoryDao implements FactoryDao { try { return new FactoryImpl(doUpdate(update)); } catch (DuplicateKeyException ex) { - throw new ConflictException(ex.getLocalizedMessage()); + throw new ConflictException( + format("Factory with name '%s' already exists for current user", update.getName())); } catch (RuntimeException ex) { throw new ServerException(ex.getLocalizedMessage(), ex); } diff --git a/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/spi/tck/FactoryDaoTest.java b/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/spi/tck/FactoryDaoTest.java index 221a7462d8..cf65c0f7a5 100644 --- a/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/spi/tck/FactoryDaoTest.java +++ b/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/spi/tck/FactoryDaoTest.java @@ -125,7 +125,10 @@ public class FactoryDaoTest { factoryDao.create(factory); } - @Test(expectedExceptions = ConflictException.class) + @Test( + expectedExceptions = ConflictException.class, + expectedExceptionsMessageRegExp = + "Factory with name 'factoryName0' already exists for current user") public void shouldThrowConflictExceptionWhenCreatingFactoryWithExistingNameAndUserId() throws Exception { final FactoryImpl factory = createFactory(10, users[0].getId()); @@ -167,7 +170,10 @@ public class FactoryDaoTest { assertEquals(factoryDao.getById(update.getId()), update); } - @Test(expectedExceptions = ConflictException.class) + @Test( + expectedExceptions = ConflictException.class, + expectedExceptionsMessageRegExp = + "Factory with name 'factoryName1' already exists for current user") public void shouldThrowConflictExceptionWhenUpdateFactoryWithExistingNameAndUserId() throws Exception { final FactoryImpl update = factories[0];