From a9da1fadfdb3edad9e485632cd7b2ef8c2074165 Mon Sep 17 00:00:00 2001 From: John Blum Date: Mon, 27 Jan 2020 15:19:45 -0800 Subject: [PATCH] SGF-914 - Backport changes enabling SDG Lovelace/2.1.x, based on Pivotal GemFire 9.5.4, to be compatible with Pivotal GemFire 9.6 and 9.7. --- .../data/gemfire/CacheFactoryBean.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java b/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java index 394cfa57..7c9466fd 100644 --- a/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/CacheFactoryBean.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.springframework.data.gemfire; import static java.util.stream.StreamSupport.stream; @@ -54,6 +53,7 @@ import org.apache.geode.internal.jndi.JNDIInvoker; import org.apache.geode.pdx.PdxSerializable; import org.apache.geode.pdx.PdxSerializer; import org.apache.geode.security.SecurityManager; + import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.FactoryBean; @@ -61,6 +61,7 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.context.Phased; import org.springframework.core.io.Resource; import org.springframework.dao.DataAccessException; +import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.dao.support.PersistenceExceptionTranslator; import org.springframework.data.gemfire.config.annotation.PeerCacheConfigurer; import org.springframework.data.gemfire.support.AbstractFactoryBeanSupport; @@ -583,7 +584,13 @@ public class CacheFactoryBean extends AbstractFactoryBeanSupport type, Arrays.toString(JndiDataSourceType.values()))); jndiDataSource.getAttributes().put("type", jndiDataSourceType.getName()); - JNDIInvoker.mapDatasource(jndiDataSource.getAttributes(), jndiDataSource.getProps()); + + try { + JNDIInvoker.mapDatasource(jndiDataSource.getAttributes(), jndiDataSource.getProps()); + } + catch (Exception cause) { + throw new InvalidDataAccessApiUsageException("Failed to run operation", cause); + } }); return cache;