@@ -110,50 +110,48 @@ public static long writeBytesToChannel(WritableByteChannel target, byte[] bytes)
110
110
111
111
int written = 0 ;
112
112
int maxSpin = 0 ;
113
- synchronized (bytes ) {
114
- ByteBuffer message = ByteBuffer .wrap (bytes );
115
-
116
- if (target instanceof SocketChannel ) {
117
- final Selector selector = Selector .open ();
118
- try {
119
- final SocketChannel channel = (SocketChannel ) target ;
120
- channel .register (selector , SelectionKey .OP_WRITE );
121
-
122
- while (written < bytes .length ) {
123
- selector .select (1000 );
124
- maxSpin ++;
125
- final Set <SelectionKey > selectedKeys = selector .selectedKeys ();
126
-
127
- for (SelectionKey key : selectedKeys ) {
128
- if (key .isWritable ()) {
129
- written += target .write (message );
130
- maxSpin = 0 ;
131
- }
132
- }
133
- if (maxSpin >= 10 ) {
134
- throw new IOException ("Unable to write on channel " + target );
113
+ ByteBuffer message = ByteBuffer .wrap (bytes );
114
+
115
+ if (target instanceof SocketChannel ) {
116
+ final Selector selector = Selector .open ();
117
+ try {
118
+ final SocketChannel channel = (SocketChannel ) target ;
119
+ channel .register (selector , SelectionKey .OP_WRITE );
120
+
121
+ while (written < bytes .length ) {
122
+ selector .select (1000 );
123
+ maxSpin ++;
124
+ final Set <SelectionKey > selectedKeys = selector .selectedKeys ();
125
+
126
+ for (SelectionKey key : selectedKeys ) {
127
+ if (key .isWritable ()) {
128
+ written += target .write (message );
129
+ maxSpin = 0 ;
135
130
}
136
131
}
137
- } finally {
138
- selector .close ();
132
+ if (maxSpin >= 10 ) {
133
+ throw new IOException ("Unable to write on channel " + target );
134
+ }
139
135
}
140
- } else {
141
- while ((target .isOpen ()) && (written < bytes .length )) {
142
- long nWrite = target .write (message );
143
- written += nWrite ;
144
- if (nWrite == 0 && maxSpin ++ < 10 ) {
145
- LOGGER .info ("Waiting for writing..." );
146
- try {
147
- bytes .wait (1000 );
148
- } catch (InterruptedException e ) {
149
- LOGGER .trace (e .getMessage (), e );
150
- }
151
- } else {
152
- if (maxSpin >= 10 ) {
153
- throw new IOException ("Unable to write on channel " + target );
154
- }
155
- maxSpin = 0 ;
136
+ } finally {
137
+ selector .close ();
138
+ }
139
+ } else {
140
+ while ((target .isOpen ()) && (written < bytes .length )) {
141
+ long nWrite = target .write (message );
142
+ written += nWrite ;
143
+ if (nWrite == 0 && maxSpin ++ < 10 ) {
144
+ LOGGER .info ("Waiting for writing..." );
145
+ try {
146
+ bytes .wait (1000 );
147
+ } catch (InterruptedException e ) {
148
+ LOGGER .trace (e .getMessage (), e );
149
+ }
150
+ } else {
151
+ if (maxSpin >= 10 ) {
152
+ throw new IOException ("Unable to write on channel " + target );
156
153
}
154
+ maxSpin = 0 ;
157
155
}
158
156
}
159
157
}
0 commit comments