Example usage for org.springframework.dao DuplicateKeyException getMostSpecificCause

List of usage examples for org.springframework.dao DuplicateKeyException getMostSpecificCause

Introduction

In this page you can find the example usage for org.springframework.dao DuplicateKeyException getMostSpecificCause.

Prototype

public Throwable getMostSpecificCause() 

Source Link

Document

Retrieve the most specific cause of this exception, that is, either the innermost cause (root cause) or this exception itself.

Usage

From source file:org.cloudfoundry.identity.uaa.db.StoreSubDomainAsLowerCase_V2_7_3.java

private IdentityZone updateIdentityZone(IdentityZone identityZone, JdbcTemplate jdbcTemplate) {
    String ID_ZONE_UPDATE_FIELDS = "version,lastmodified,name,subdomain,description".replace(",", "=?,") + "=?";
    String UPDATE_IDENTITY_ZONE_SQL = "update identity_zone set " + ID_ZONE_UPDATE_FIELDS + " where id=?";

    try {/*  www .  ja v a 2 s.  c om*/
        jdbcTemplate.update(UPDATE_IDENTITY_ZONE_SQL, new PreparedStatementSetter() {
            @Override
            public void setValues(PreparedStatement ps) throws SQLException {
                ps.setInt(1, identityZone.getVersion() + 1);
                ps.setTimestamp(2, new Timestamp(new Date().getTime()));
                ps.setString(3, identityZone.getName());
                ps.setString(4, identityZone.getSubdomain().toLowerCase());
                ps.setString(5, identityZone.getDescription());
                ps.setString(6, identityZone.getId().trim());
            }
        });
    } catch (DuplicateKeyException e) {
        //duplicate subdomain
        throw new ZoneAlreadyExistsException(e.getMostSpecificCause().getMessage(), e);
    }
    return retrieveIdentityZone(identityZone.getId(), jdbcTemplate);
}

From source file:org.cloudfoundry.identity.uaa.provider.JdbcIdentityProviderProvisioning.java

@Override
public IdentityProvider create(final IdentityProvider identityProvider) {
    validate(identityProvider);/* w  w  w  .jav  a  2 s  .  co  m*/
    final String id = UUID.randomUUID().toString();
    try {
        jdbcTemplate.update(CREATE_IDENTITY_PROVIDER_SQL, new PreparedStatementSetter() {
            @Override
            public void setValues(PreparedStatement ps) throws SQLException {
                int pos = 1;
                ps.setString(pos++, id);
                ps.setInt(pos++, identityProvider.getVersion());
                ps.setTimestamp(pos++, new Timestamp(System.currentTimeMillis()));
                ps.setTimestamp(pos++, new Timestamp(System.currentTimeMillis()));
                ps.setString(pos++, identityProvider.getName());
                ps.setString(pos++, identityProvider.getOriginKey());
                ps.setString(pos++, identityProvider.getType());
                ps.setString(pos++, JsonUtils.writeValueAsString(identityProvider.getConfig()));
                ps.setString(pos++, identityProvider.getIdentityZoneId());
                ps.setBoolean(pos++, identityProvider.isActive());
            }
        });
    } catch (DuplicateKeyException e) {
        throw new IdpAlreadyExistsException(e.getMostSpecificCause().getMessage());
    }
    return retrieve(id);
}

From source file:org.cloudfoundry.identity.uaa.provider.saml.idp.JdbcSamlServiceProviderProvisioning.java

@Override
public SamlServiceProvider create(final SamlServiceProvider serviceProvider) {
    validate(serviceProvider);//from   ww  w .ja  va  2s  . co  m
    final String id = UUID.randomUUID().toString();
    try {
        jdbcTemplate.update(CREATE_SERVICE_PROVIDER_SQL, new PreparedStatementSetter() {
            @Override
            public void setValues(PreparedStatement ps) throws SQLException {
                int pos = 1;
                ps.setString(pos++, id);
                ps.setInt(pos++, serviceProvider.getVersion());
                ps.setTimestamp(pos++, new Timestamp(System.currentTimeMillis()));
                ps.setTimestamp(pos++, new Timestamp(System.currentTimeMillis()));
                ps.setString(pos++, serviceProvider.getName());
                ps.setString(pos++, serviceProvider.getEntityId());
                ps.setString(pos++, JsonUtils.writeValueAsString(serviceProvider.getConfig()));
                ps.setString(pos++, serviceProvider.getIdentityZoneId());
                ps.setBoolean(pos++, serviceProvider.isActive());
            }
        });
    } catch (DuplicateKeyException e) {
        throw new SamlSpAlreadyExistsException(e.getMostSpecificCause().getMessage());
    }
    return retrieve(id);
}

From source file:org.cloudfoundry.identity.uaa.zone.JdbcIdentityZoneProvisioning.java

@Override
public IdentityZone create(final IdentityZone identityZone) {

    try {//w w w . j av  a2 s . c o  m
        jdbcTemplate.update(CREATE_IDENTITY_ZONE_SQL, new PreparedStatementSetter() {
            @Override
            public void setValues(PreparedStatement ps) throws SQLException {
                ps.setString(1, identityZone.getId().trim());
                ps.setInt(2, identityZone.getVersion());
                ps.setTimestamp(3, new Timestamp(new Date().getTime()));
                ps.setTimestamp(4, new Timestamp(new Date().getTime()));
                ps.setString(5, identityZone.getName());
                ps.setString(6, identityZone.getSubdomain().toLowerCase());
                ps.setString(7, identityZone.getDescription());
                ps.setString(8,
                        identityZone.getConfig() != null
                                ? JsonUtils.writeValueAsString(identityZone.getConfig())
                                : null);
            }
        });
    } catch (DuplicateKeyException e) {
        throw new ZoneAlreadyExistsException(e.getMostSpecificCause().getMessage(), e);
    }

    return retrieve(identityZone.getId());
}

From source file:org.cloudfoundry.identity.uaa.zone.JdbcIdentityZoneProvisioning.java

@Override
public IdentityZone update(final IdentityZone identityZone) {

    try {/*www  .  j a v  a2  s  .  co  m*/
        jdbcTemplate.update(UPDATE_IDENTITY_ZONE_SQL, new PreparedStatementSetter() {
            @Override
            public void setValues(PreparedStatement ps) throws SQLException {
                ps.setInt(1, identityZone.getVersion() + 1);
                ps.setTimestamp(2, new Timestamp(new Date().getTime()));
                ps.setString(3, identityZone.getName());
                ps.setString(4, identityZone.getSubdomain().toLowerCase());
                ps.setString(5, identityZone.getDescription());
                ps.setString(6,
                        identityZone.getConfig() != null
                                ? JsonUtils.writeValueAsString(identityZone.getConfig())
                                : null);
                ps.setString(7, identityZone.getId().trim());
            }
        });
    } catch (DuplicateKeyException e) {
        //duplicate subdomain
        throw new ZoneAlreadyExistsException(e.getMostSpecificCause().getMessage(), e);
    }
    return retrieve(identityZone.getId());
}