Also provide the MINA version you are talking about. Thanks !

On Sun, Nov 29, 2009 at 12:14 PM, Peng Lee <pengli.h...@gmail.com> wrote:
>  In my opinion,the line 176 [if (processorConstructor == null) ] is
> redundant, because if processorConstructor is null, a NullPointerException
> should be trowed previously. So, I think we should remove the redundant code
> here. Of course, maybe there are any other things that i haven't knew
> about,and who can tell me? @SuppressWarnings("unchecked") 118 public
> SimpleIoProcessorPool(Class<? extends IoProcessor<T>> processorType, 119
> Executor executor, int size) { 120 if (processorType == null) { 121 throw
> new NullPointerException("processorType"); 122 } 123 if (size <= 0) { 124
> throw new IllegalArgumentException("size: " + size 125 + " (expected:
> positive integer)"); 126 } 127 128 if (executor == null) { 129 this.executor
> = executor = Executors.newCachedThreadPool(); 130 this.createdExecutor =
> true; 131 } else { 132 this.executor = executor; 133 this.createdExecutor =
> false; 134 } 135 136 pool = new IoProcessor[size]; 137 138 boolean success =
> false; 139 Constructor<? extends IoProcessor<T>> processorConstructor =
> null; 140 boolean usesExecutorArg = true; 141 142 try { 143 // We create at
> least one processor 144 try { 145 try { 146 processorConstructor =
> processorType 147 .getConstructor(ExecutorService.class); 148 pool[0] =
> processorConstructor.newInstance(executor); 149 } catch
> (NoSuchMethodException e) { 150 // To the next step... 151 } 152 153 try {
> 154 processorConstructor = processorType 155
> .getConstructor(Executor.class); 156 pool[0] =
> processorConstructor.newInstance(executor); 157 } catch
> (NoSuchMethodException e) { 158 // To the next step... 159 } 160 161 try {
> 162 processorConstructor = processorType.getConstructor(); 163
> usesExecutorArg = false; 164 pool[0] = processorConstructor.newInstance();
> 165 } catch (NoSuchMethodException e) { 166 // To the next step... 167 } 168
> } catch (RuntimeException e) { 169 throw e; 170 } catch (Exception e) { 171
> throw new RuntimeIoException( 172 "Failed to create a new instance of " 173
> + processorType.getName(), e); 174 } 175 176 if (processorConstructor ==
> null) { 177 // Raise an exception if no proper constructor is found. 178
> throw new IllegalArgumentException(String 179 .valueOf(processorType) 180 +
> " must have a public constructor " 181 + "with one " 182 +
> ExecutorService.class.getSimpleName() 183 + " parameter, " 184 + "a public
> constructor with one " 185 + Executor.class.getSimpleName() 186 + "
> parameter or a public default constructor."); 187 } 188 189 // Constructor
> found now use it for all subsequent instantiations 190 for (int i = 1; i <
> pool.length; i++) { 191 try { 192 if (usesExecutorArg) { 193 pool[i] =
> processorConstructor.newInstance(executor); 194 } else { 195 pool[i] =
> processorConstructor.newInstance(); 196 } 197 } catch (Exception e) { 198 //
> Won't happen because it has been done previously 199 } 200 } 201 success =
> true; 202 } finally { 203 if (!success) { 204 dispose(); 205 } 206 } 207 }
> stefan lee
>



-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to