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());
}
}
};