Author: trustin
Date: Wed Dec 20 17:47:59 2006
New Revision: 489243
URL: http://svn.apache.org/viewvc?view=rev&rev=489243
Log:
Resolved issue: DIRMINA-327 (sanity-check for MessageEncoder in
DemuxingProtocolCodecFactory)
* Added a code that checks if MessageEncoder.getMessageTypes() returns null.
Modified:
mina/branches/1.0/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoder.java
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
Modified:
mina/branches/1.0/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
URL:
http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java?view=diff&rev=489243&r1=489242&r2=489243
==============================================================================
---
mina/branches/1.0/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
(original)
+++
mina/branches/1.0/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
Wed Dec 20 17:47:59 2006
@@ -178,7 +178,13 @@
for( int i = encoderFactories.length - 1; i >= 0; i-- )
{
MessageEncoder encoder = encoderFactories[ i ].getEncoder();
- Iterator it = encoder.getMessageTypes().iterator();
+ Set messageTypes = encoder.getMessageTypes();
+ if (messageTypes == null) {
+ throw new IllegalStateException(
+ encoder.getClass().getName() + "#getMessageTypes()
may not return null.");
+ }
+
+ Iterator it = messageTypes.iterator();
while( it.hasNext() )
{
Class type = ( Class ) it.next();
Modified:
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
URL:
http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java?view=diff&rev=489243&r1=489242&r2=489243
==============================================================================
---
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
(original)
+++
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
Wed Dec 20 17:47:59 2006
@@ -170,7 +170,7 @@
private class ProtocolEncoderImpl implements ProtocolEncoder
{
- private final Map encoders = new IdentityHashMap();
+ private final Map<Class, MessageEncoder> encoders = new
IdentityHashMap<Class, MessageEncoder>();
private ProtocolEncoderImpl() throws Exception
{
@@ -178,7 +178,13 @@
for( int i = encoderFactories.length - 1; i >= 0; i-- )
{
MessageEncoder encoder = encoderFactories[ i ].getEncoder();
- Iterator it = encoder.getMessageTypes().iterator();
+ Set<Class> messageTypes = encoder.getMessageTypes();
+ if (messageTypes == null) {
+ throw new IllegalStateException(
+ encoder.getClass().getName() + "#getMessageTypes()
may not return null.");
+ }
+
+ Iterator it = messageTypes.iterator();
while( it.hasNext() )
{
Class type = ( Class ) it.next();
@@ -202,16 +208,16 @@
private MessageEncoder findEncoder( Class type )
{
- MessageEncoder encoder = ( MessageEncoder ) encoders.get( type );
+ MessageEncoder encoder = encoders.get( type );
if( encoder == null )
{
- encoder = findEncoder( type, new IdentityHashSet() );
+ encoder = findEncoder( type, new IdentityHashSet<Class>() );
}
return encoder;
}
- private MessageEncoder findEncoder( Class type, Set triedClasses )
+ private MessageEncoder findEncoder( Class type, Set<Class>
triedClasses )
{
MessageEncoder encoder;
@@ -219,7 +225,7 @@
return null;
triedClasses.add( type );
- encoder = ( MessageEncoder ) encoders.get( type );
+ encoder = encoders.get( type );
if( encoder == null )
{
encoder = findEncoder( type, triedClasses );
Modified:
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoder.java
URL:
http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoder.java?view=diff&rev=489243&r1=489242&r2=489243
==============================================================================
---
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoder.java
(original)
+++
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/demux/MessageEncoder.java
Wed Dec 20 17:47:59 2006
@@ -39,7 +39,7 @@
/**
* Returns the set of message classes this encoder can encode.
*/
- Set getMessageTypes();
+ Set<Class> getMessageTypes();
/**
* Encodes higher-level message objects into binary or protocol-specific
data.
Modified:
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java?view=diff&rev=489243&r1=489242&r2=489243
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/demux/DemuxingProtocolCodecFactory.java
Wed Dec 20 17:47:59 2006
@@ -178,7 +178,13 @@
for( int i = encoderFactories.length - 1; i >= 0; i-- )
{
MessageEncoder encoder = encoderFactories[ i ].getEncoder();
- Iterator it = encoder.getMessageTypes().iterator();
+ Set<Class> messageTypes = encoder.getMessageTypes();
+ if (messageTypes == null) {
+ throw new IllegalStateException(
+ encoder.getClass().getName() + "#getMessageTypes()
may not return null.");
+ }
+
+ Iterator it = messageTypes.iterator();
while( it.hasNext() )
{
Class type = ( Class ) it.next();