You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2008/03/11 19:01:24 UTC
svn commit: r636038 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2:
receivers/AbstractMessageReceiver.java transport/mail/server/MailAddress.java
Author: dims
Date: Tue Mar 11 11:01:22 2008
New Revision: 636038
URL: http://svn.apache.org/viewvc?rev=636038&view=rev
Log:
Fix for AXIS2-3593 - AbstractMessageReceiver defines custom class loader without using doPrivileged
Fix for AXIS2-3594 - MailAddress defines equals() but not hashCode()
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/server/MailAddress.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java?rev=636038&r1=636037&r2=636038&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java Tue Mar 11 11:01:22 2008
@@ -47,6 +47,8 @@
import java.lang.reflect.Method;
import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
public abstract class AbstractMessageReceiver implements MessageReceiver {
protected static final Log log = LogFactory.getLog(AbstractMessageReceiver.class);
@@ -58,7 +60,7 @@
public static final String DO_ASYNC = "messageReceiver.invokeOnSeparateThread";
// Place to store previous values
- public class ThreadContextDescriptor {
+ public static class ThreadContextDescriptor {
public ClassLoader oldClassLoader;
public MessageContext oldMessageContext;
}
@@ -118,10 +120,10 @@
* @param msgContext the current MessageContext
* @return a ThreadContextDescriptor containing the old values
*/
- protected ThreadContextDescriptor setThreadContext(MessageContext msgContext) {
+ protected ThreadContextDescriptor setThreadContext(final MessageContext msgContext) {
ThreadContextDescriptor tc = new ThreadContextDescriptor();
tc.oldMessageContext = (MessageContext) MessageContext.currentMessageContext.get();
- ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+ final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
tc.oldClassLoader = contextClassLoader;
AxisService service = msgContext.getAxisService();
@@ -131,10 +133,15 @@
if (serviceTCCL.equals(Constants.TCCL_COMPOSITE)) {
Thread.currentThread().setContextClassLoader(
- new MultiParentClassLoader(new URL[] {}, new ClassLoader[] {
- msgContext.getAxisService().getClassLoader(),
- contextClassLoader,
- }));
+ (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ return new MultiParentClassLoader(new URL[] {},
+ new ClassLoader[] {
+ msgContext.getAxisService().getClassLoader(),
+ contextClassLoader
+ });
+ }
+ }));
} else if (serviceTCCL.equals(Constants.TCCL_SERVICE)) {
Thread.currentThread().setContextClassLoader(
msgContext.getAxisService().getClassLoader()
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/server/MailAddress.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/server/MailAddress.java?rev=636038&r1=636037&r2=636038&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/server/MailAddress.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/server/MailAddress.java Tue Mar 11 11:01:22 2008
@@ -35,11 +35,41 @@
this.mailAddy = mAddy;
}
- public boolean equals(Object addr) {
- return this.mailAddy.equals(addr);
- }
+
- public String toString() {
+ /**
+ * @see java.lang.Object#hashCode()
+ */
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result
+ + ((mailAddy == null) ? 0 : mailAddy.hashCode());
+ return result;
+ }
+
+
+
+ /**
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (!(obj instanceof MailAddress))
+ return false;
+ final MailAddress other = (MailAddress) obj;
+ if (mailAddy == null) {
+ if (other.mailAddy != null)
+ return false;
+ } else if (!mailAddy.equals(other.mailAddy))
+ return false;
+ return true;
+ }
+
+
+
+ public String toString() {
return this.mailAddy;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org