openwebbeans/OWB-1309-fix-missing-NoSuchMethodException.patch
2020-08-25 15:05:38 +08:00

114 lines
4.2 KiB
Diff

From 191724a9eb132d232f8ab081658aa40ea1eb2778 Mon Sep 17 00:00:00 2001
Subject: [PATCH] OWB-1309 fix missing NoSuchMethodException
---
pom.xml | 2 +-
.../web/tomcat7/TomcatInstanceManager.java | 53 ++++++++++++++-----
2 files changed, 40 insertions(+), 15 deletions(-)
diff --git a/pom.xml b/pom.xml
index ba45ccc..316f27e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
<geronimo_interceptor.version>1.0</geronimo_interceptor.version>
<geronimo_validation.version>1.1</geronimo_validation.version>
<tomcat6.version>6.0.35</tomcat6.version>
- <tomcat7.version>7.0.54</tomcat7.version>
+ <tomcat7.version>7.0.99</tomcat7.version>
<openejb.version>3.1.4</openejb.version>
<myfaces.version>1.2.9</myfaces.version>
<myfaces2.version>2.2.3</myfaces2.version>
diff --git a/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java b/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java
index eb127e6..d271d4e 100644
--- a/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java
+++ b/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java
@@ -27,6 +27,7 @@ import javax.naming.NamingException;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.InstanceManager;
+import org.apache.webbeans.util.ExceptionUtil;
public class TomcatInstanceManager implements InstanceManager
{
@@ -70,24 +71,40 @@ public class TomcatInstanceManager implements InstanceManager
public Object newInstance(Class<?> aClass) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException
{
// Creates a defaut instance
- Object object = this.processor.newInstance(aClass);
+ try
+ {
+ Object object = this.processor.newInstance(aClass);
- // Inject dependencies
- inject(object);
+ // Inject dependencies
+ inject(object);
- return object;
+ return object;
+ }
+ catch (Exception e)
+ {
+ // sadly this is required as the Tomcat InstanceManager introduced an additional Exception in their signature :(
+ throw ExceptionUtil.throwAsRuntimeException(e);
+ }
}
@Override
public Object newInstance(String str) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException
{
- // Creates a defaut instance
- Object object = this.processor.newInstance(str);
+ try
+ {
+ // Creates a defaut instance
+ Object object = this.processor.newInstance(str);
- // Inject dependencies
- inject(object);
+ // Inject dependencies
+ inject(object);
- return object;
+ return object;
+ }
+ catch (Exception e)
+ {
+ // sadly this is required as the Tomcat InstanceManager introduced an additional Exception in their signature :(
+ throw ExceptionUtil.throwAsRuntimeException(e);
+ }
}
@Override
@@ -100,13 +117,21 @@ public class TomcatInstanceManager implements InstanceManager
@Override
public Object newInstance(String str, ClassLoader cl) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException
{
- // Creates a defaut instance
- Object object = this.processor.newInstance(str, cl);
+ try
+ {
+ // Creates a defaut instance
+ Object object = this.processor.newInstance(str, cl);
- // Inject dependencies
- inject(object);
+ // Inject dependencies
+ inject(object);
- return object;
+ return object;
+ }
+ catch (Exception e)
+ {
+ // sadly this is required as the Tomcat InstanceManager introduced an additional Exception in their signature :(
+ throw ExceptionUtil.throwAsRuntimeException(e);
+ }
}
private void inject(Object object)
--
2.23.0