You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2014/10/20 14:16:59 UTC

git commit: Applied suggested patch for DIRMINA-990 and DIRMINA-991

Repository: mina
Updated Branches:
  refs/heads/2.0 c65e568a0 -> c17923315


Applied suggested patch for DIRMINA-990 and DIRMINA-991


Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/c1792331
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/c1792331
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/c1792331

Branch: refs/heads/2.0
Commit: c1792331521ec1f50e9c71228a20ca4ab21029fa
Parents: c65e568
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Mon Oct 20 14:16:50 2014 +0200
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Mon Oct 20 14:16:50 2014 +0200

----------------------------------------------------------------------
 .../mina/core/buffer/AbstractIoBuffer.java      | 40 ++++++++++----------
 1 file changed, 19 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/c1792331/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java b/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
index f88db05..0b5a397 100644
--- a/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
+++ b/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
@@ -2180,11 +2180,17 @@ public abstract class AbstractIoBuffer extends IoBuffer {
 
                 @Override
                 protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
-                    String name = desc.getName();
-                    try {
-                        return Class.forName(name, false, classLoader);
-                    } catch (ClassNotFoundException ex) {
-                        return super.resolveClass(desc);
+                    Class<?> clazz = desc.forClass();
+                    
+                    if (clazz == null) {
+                        String name = desc.getName();
+                        try {
+                            return Class.forName(name, false, classLoader);
+                        } catch (ClassNotFoundException ex) {
+                            return super.resolveClass(desc);
+                        }
+                    } else {
+                        return clazz;
                     }
                 }
             };
@@ -2207,23 +2213,15 @@ public abstract class AbstractIoBuffer extends IoBuffer {
             ObjectOutputStream out = new ObjectOutputStream(asOutputStream()) {
                 @Override
                 protected void writeClassDescriptor(ObjectStreamClass desc) throws IOException {
-                    try {
-                        if (!desc.forClass().isArray()) {
-                            Class<?> clz = Thread.currentThread().getContextClassLoader().loadClass(desc.getName());
-                            if (!Serializable.class.isAssignableFrom(clz)) { // NON-Serializable class
-                                write(0);
-                                super.writeClassDescriptor(desc);
-                            } else { // Serializable class
-                                write(1);
-                                writeUTF(desc.getName());
-                            }
-                        } else {
-                            write(0);
-                            super.writeClassDescriptor(desc);
-                        }
-                    } catch (ClassNotFoundException ex) { // Primitive types
+                    Class<?> clazz = desc.forClass();
+                    
+                    if (clazz.isArray() || clazz.isPrimitive() || !Serializable.class.isAssignableFrom(clazz)) {
                         write(0);
-                        super.writeClassDescriptor(desc);
+                        super.writeClassDescriptor(desc); 
+                    } else {
+                        // Serializable class
+                        write(1);
+                        writeUTF(desc.getName());                            
                     }
                 }
             };