You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2009/01/07 14:34:18 UTC
svn commit: r732331 -
/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Beans.java
Author: tellison
Date: Wed Jan 7 05:34:17 2009
New Revision: 732331
URL: http://svn.apache.org/viewvc?rev=732331&view=rev
Log:
Apply patch for HARMONY-6050 (Don't go through Applet call path if not needed)
Modified:
harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Beans.java
Modified: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Beans.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Beans.java?rev=732331&r1=732330&r2=732331&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Beans.java (original)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/Beans.java Wed Jan 7 05:34:17 2009
@@ -55,6 +55,71 @@
// expected
}
+ @SuppressWarnings("unchecked")
+ private static Object internalInstantiate(ClassLoader cls, String beanName,
+ BeanContext context, Object initializer)
+ throws IOException, ClassNotFoundException {
+ Object result = null;
+
+ boolean deserialized = true;
+
+ ClassLoader loader = null;
+
+ // First try to load it from a serialization file.
+ String beanResourceName = getBeanResourceName(beanName);
+
+ InputStream is = (cls == null) ? ClassLoader
+ .getSystemResourceAsStream(beanResourceName) : cls
+ .getResourceAsStream(beanResourceName);
+
+ IOException serializationException = null;
+ if (is != null) {
+ try{
+ ObjectInputStream ois = (cls == null) ? new ObjectInputStream(is)
+ : new CustomizedObjectInputStream(is, cls);
+ result = ois.readObject();
+ }catch(IOException exception){
+ //Not loadable - remember this as we may throw it later.
+ serializationException = exception;
+ }
+ }
+
+ //If that did not work, try to instantiate it from the given classloader.
+ if (result == null) {
+ deserialized = false;
+ try {
+ loader = cls == null ? ClassLoader.getSystemClassLoader() : cls;
+ Class<?> c = Class.forName(beanName, true, loader);
+ result = c.newInstance();
+ } catch (Exception e) {
+ if (serializationException != null) {
+ throw serializationException;
+ }
+ throw new ClassNotFoundException(e.getClass() + ": " //$NON-NLS-1$
+ + e.getMessage());
+ }
+ }
+
+ if (result != null) {
+ // Applet specific initialization
+ boolean isApplet = false;
+ try {
+ isApplet = result instanceof Applet;
+ } catch (Throwable t) {
+ // Ignored - leave isApplet as false.
+ }
+
+ if (isApplet) {
+ appletLoaded((Applet) result, loader, beanName, context,
+ (AppletInitializer)initializer, deserialized);
+ }
+ if (null != context) {
+ context.add(result);
+ }
+ }
+ return result;
+ }
+
/**
* Obtains an instance of a JavaBean specified the bean name using the
* specified class loader.
@@ -72,7 +137,7 @@
*/
public static Object instantiate(ClassLoader loader, String name)
throws IOException, ClassNotFoundException {
- return instantiate(loader, name, null, null);
+ return internalInstantiate(loader, name, null, null);
}
/**
@@ -96,7 +161,7 @@
*/
public static Object instantiate(ClassLoader cls, String beanName,
BeanContext beanContext) throws IOException, ClassNotFoundException {
- return instantiate(cls, beanName, beanContext, null);
+ return internalInstantiate(cls, beanName, beanContext, null);
}
@@ -155,58 +220,7 @@
public static Object instantiate(ClassLoader cls, String beanName,
BeanContext context, AppletInitializer initializer)
throws IOException, ClassNotFoundException {
- Object result = null;
-
- boolean deserialized = true;
-
- ClassLoader loader = null;
-
- // First try to load it from a serialization file.
- String beanResourceName = getBeanResourceName(beanName);
-
- InputStream is = (cls == null) ? ClassLoader
- .getSystemResourceAsStream(beanResourceName) : cls
- .getResourceAsStream(beanResourceName);
-
- IOException serializationException = null;
- if (is != null) {
- try{
- ObjectInputStream ois = (cls == null) ? new ObjectInputStream(is)
- : new CustomizedObjectInputStream(is, cls);
- result = ois.readObject();
- }catch(IOException exception){
- //Not loadable - remember this as we may throw it later.
- serializationException = exception;
- }
- }
-
- //If that did not work, try to instantiate it from the given classloader.
- if (result == null) {
- deserialized = false;
- try {
- loader = cls == null ? ClassLoader.getSystemClassLoader() : cls;
- Class<?> c = Class.forName(beanName, true, loader);
- result = c.newInstance();
- } catch (Exception e) {
- if (serializationException != null) {
- throw serializationException;
- }
- throw new ClassNotFoundException(e.getClass() + ": " //$NON-NLS-1$
- + e.getMessage());
- }
- }
-
- if (result != null) {
- // Applet specific initialization
- if (result instanceof Applet) {
- appletLoaded((Applet) result, loader, beanName, context,
- initializer, deserialized);
- }
- if (null != context) {
- context.add(result);
- }
- }
- return result;
+ return internalInstantiate(cls, beanName, context, initializer);
}
/**