You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2017/06/21 17:13:32 UTC
tomee git commit: fixing LazyValidatorFactory serialization
Repository: tomee
Updated Branches:
refs/heads/master 51e607b81 -> 198d0a9eb
fixing LazyValidatorFactory serialization
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/198d0a9e
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/198d0a9e
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/198d0a9e
Branch: refs/heads/master
Commit: 198d0a9ebee768dc4d977e9201fb885f50e8b128
Parents: 51e607b
Author: rmannibucau <rm...@apache.org>
Authored: Wed Jun 21 19:13:27 2017 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Wed Jun 21 19:13:27 2017 +0200
----------------------------------------------------------------------
.../assembler/classic/LazyValidatorFactory.java | 4 +-
.../assembler/classic/ValidatorBuilder.java | 43 ++++++++++++++------
2 files changed, 32 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/198d0a9e/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/LazyValidatorFactory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/LazyValidatorFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/LazyValidatorFactory.java
index 57b2c42..5de3923 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/LazyValidatorFactory.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/LazyValidatorFactory.java
@@ -25,8 +25,8 @@ import java.util.concurrent.locks.ReentrantLock;
// TODO: make it generic (LazyDelegate + Factory + refactor LazyValidator)
public class LazyValidatorFactory implements InvocationHandler, Serializable {
- private final ReentrantLock lock = new ReentrantLock();
- private final ClassLoader loader;
+ private transient final ReentrantLock lock = new ReentrantLock();
+ private transient final ClassLoader loader;
private final ValidationInfo info;
private volatile ValidatorFactory factory;
http://git-wip-us.apache.org/repos/asf/tomee/blob/198d0a9e/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java
index d5c11d0..18c4e6f 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ValidatorBuilder.java
@@ -17,6 +17,7 @@
package org.apache.openejb.assembler.classic;
+import org.apache.openejb.bval.ValidatorUtil;
import org.apache.openejb.jee.bval.DefaultValidatedExecutableTypesType;
import org.apache.openejb.jee.bval.ExecutableValidationType;
import org.apache.openejb.jee.bval.PropertyType;
@@ -31,6 +32,7 @@ import org.apache.webbeans.container.BeanManagerImpl;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.InjectionTarget;
+import javax.naming.NamingException;
import javax.validation.BootstrapConfiguration;
import javax.validation.Configuration;
import javax.validation.ConstraintValidatorFactory;
@@ -415,55 +417,70 @@ public final class ValidatorBuilder {
}
}
- private static final class OpenEJBValidatorFactory implements ValidatorFactory {
- private final ValidatorFactory delegate;
- private final Collection<Releasable<?>> toRelease;
+ private static final class OpenEJBValidatorFactory implements ValidatorFactory, Serializable {
+ private transient ValidatorFactory delegate;
+ private transient Collection<Releasable<?>> toRelease;
public OpenEJBValidatorFactory(final ValidatorFactory validatorFactory, final Collection<Releasable<?>> releasables) {
delegate = validatorFactory;
toRelease = releasables;
}
+ private ValidatorFactory delegate() {
+ if (delegate != null) {
+ return delegate;
+ }
+ try {
+ return ValidatorUtil.lookupFactory();
+ } catch (final NamingException e) {
+ return Validation.buildDefaultValidatorFactory();
+ }
+ }
+
@Override
public Validator getValidator() {
- return delegate.getValidator();
+ return delegate().getValidator();
}
@Override
public ValidatorContext usingContext() {
- return delegate.usingContext();
+ return delegate().usingContext();
}
@Override
public MessageInterpolator getMessageInterpolator() {
- return delegate.getMessageInterpolator();
+ return delegate().getMessageInterpolator();
}
@Override
public TraversableResolver getTraversableResolver() {
- return delegate.getTraversableResolver();
+ return delegate().getTraversableResolver();
}
@Override
public ConstraintValidatorFactory getConstraintValidatorFactory() {
- return delegate.getConstraintValidatorFactory();
+ return delegate().getConstraintValidatorFactory();
}
@Override
public <T> T unwrap(final Class<T> type) {
- return delegate.unwrap(type);
+ return delegate().unwrap(type);
}
@Override
public ParameterNameProvider getParameterNameProvider() {
- return delegate.getParameterNameProvider();
+ return delegate().getParameterNameProvider();
}
@Override
public void close() {
- delegate.close();
- for (final Releasable<?> r : toRelease) {
- r.release();
+ if (delegate != null) {
+ delegate.close();
+ }
+ if (toRelease != null) {
+ for (final Releasable<?> r : toRelease) {
+ r.release();
+ }
}
}
}