@@ -132,7 +132,6 @@ protected void serializeFields(Object bean, JsonGenerator jgen0, SerializerProvi
132
132
133
133
final ToXmlGenerator xgen = (ToXmlGenerator ) jgen0 ;
134
134
final BeanPropertyWriter [] props ;
135
- // !!! TODO: change to use non-deprecated version in 2.3
136
135
if (_filteredProps != null && provider .getActiveView () != null ) {
137
136
props = _filteredProps ;
138
137
} else {
@@ -195,7 +194,6 @@ protected void serializeFieldsFiltered(Object bean, JsonGenerator jgen0,
195
194
final ToXmlGenerator xgen = (ToXmlGenerator ) jgen0 ;
196
195
197
196
final BeanPropertyWriter [] props ;
198
- // !!! TODO: change to use non-deprecated version in 2.3
199
197
if (_filteredProps != null && provider .getActiveView () != null ) {
200
198
props = _filteredProps ;
201
199
} else {
@@ -315,17 +313,19 @@ protected static int _orderAttributesFirst(BeanPropertyWriter[] properties,
315
313
316
314
for (int i = 0 , len = properties .length ; i < len ; ++i ) {
317
315
BeanPropertyWriter bpw = properties [i ];
318
-
316
+
319
317
if (!_isAttribute (bpw )) {
320
318
continue ;
321
319
}
322
- // Swap if attribute and there are preceding elements:
323
- if (attrCount < i ) {
324
- properties [i ] = properties [attrCount ];
320
+
321
+ // Move attribute a few places done as necessary
322
+ int moveBy = i -attrCount ;
323
+ if (moveBy > 0 ) {
324
+ System .arraycopy (properties , attrCount , properties , attrCount +1 , moveBy );
325
325
properties [attrCount ] = bpw ;
326
326
if (filteredProperties != null ) {
327
327
BeanPropertyWriter fbpw = filteredProperties [i ];
328
- filteredProperties [ i ] = filteredProperties [ attrCount ] ;
328
+ System . arraycopy ( filteredProperties , attrCount , filteredProperties , attrCount + 1 , moveBy ) ;
329
329
filteredProperties [attrCount ] = fbpw ;
330
330
}
331
331
}
0 commit comments