[ https://issues.apache.org/jira/browse/DIRMINA-991?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14176855#comment-14176855 ]
Jörg Michelberger commented on DIRMINA-991: ------------------------------------------- Great, no duplicate desc.forClass() call. Looking forward to 2.0.10. :-) > Possible faster deserialization in AbstractIoBuffer object deserialization. > --------------------------------------------------------------------------- > > Key: DIRMINA-991 > URL: https://issues.apache.org/jira/browse/DIRMINA-991 > Project: MINA > Issue Type: Improvement > Components: Core > Affects Versions: 2.0.8 > Reporter: Jörg Michelberger > Labels: patch, performance > > In ObjectInputStream.resolveClass() of AbstractIoBuffer.getObject() there is > a possibility to avoid duplicate call to Class.forName(). First call is done > in readClassDescriptor() and second in resolveClass() in case we deal with > Serializables, class descriptors are cached by the java platform, and a call > of desc.forClass() in resolveClass() returns a previous resolved class, which > allows skipping the ClassLoader call. I append the original source and a > possible fix for this issue. Is it possible to get this in the upcomming > 2.0.9 release of MINA? > Original source : > {code} > 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); > } > {code} > Possible fix : > {code} > protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, > ClassNotFoundException { > if (null == desc.forClass()) { //this works for > serializable desc classes. > String name = desc.getName(); > try { > return Class.forName(name, false, classLoader); > } catch (ClassNotFoundException ex) { > return super.resolveClass(desc); > } > } else { > return desc.forClass(); > } > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)