diff --git a/changelog.html b/changelog.html
index 53eec5c29af9294a6e81a344f64fd4cf9db06f41..12f572fd47a6f181ae7515ef4b2fc6beadd51878 100644
--- a/changelog.html
+++ b/changelog.html
@@ -70,6 +70,9 @@ Upcoming changes
Maven2 builds with non-standard test plugins failed.
(issue 16928)
+
+ Started bundling XStream 1.4.4
+ (issue 12542)
Significant improvement in Traditional Chinese localizations.
(pull 716)
diff --git a/core/pom.xml b/core/pom.xml
index 9b7401aa75135cd17972fb0f945d6046430090f9..e174e46188da736e40fa0ada7697850254bfdb55 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -233,7 +233,7 @@ THE SOFTWARE.
org.jvnet.hudson
xstream
- 1.3.1-jenkins-11
+ 1.4.4-jenkins-1
jfree
diff --git a/core/src/main/java/hudson/util/RobustReflectionConverter.java b/core/src/main/java/hudson/util/RobustReflectionConverter.java
index 42269140f8d0019678deba8f1bc658adfbf7388d..5a3a70d5d2f4dd4fc34201357a63277628dd52b5 100755
--- a/core/src/main/java/hudson/util/RobustReflectionConverter.java
+++ b/core/src/main/java/hudson/util/RobustReflectionConverter.java
@@ -28,7 +28,7 @@ import com.thoughtworks.xstream.converters.Converter;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.converters.SingleValueConverter;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
-import com.thoughtworks.xstream.converters.reflection.NonExistentFieldException;
+import com.thoughtworks.xstream.converters.reflection.MissingFieldException;
import com.thoughtworks.xstream.converters.reflection.ObjectAccessException;
import com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider;
import com.thoughtworks.xstream.converters.reflection.ReflectionConverter;
@@ -293,7 +293,7 @@ public class RobustReflectionConverter implements Converter {
implicitCollectionsForCurrentObject = writeValueToImplicitCollection(context, value, implicitCollectionsForCurrentObject, result, fieldName);
}
}
- } catch (NonExistentFieldException e) {
+ } catch (MissingFieldException e) {
LOGGER.log(WARNING,"Skipping a non-existent field "+e.getFieldName(),e);
addErrorInContext(context, e);
} catch (CannotResolveClassException e) {
diff --git a/core/src/main/java/hudson/util/StringConverter2.java b/core/src/main/java/hudson/util/StringConverter2.java
index 250b74b1e71d9c0870b2cbba5272aca305b3d46f..e993adedc56afba4d09b7074083739a0def809d4 100644
--- a/core/src/main/java/hudson/util/StringConverter2.java
+++ b/core/src/main/java/hudson/util/StringConverter2.java
@@ -23,7 +23,7 @@
*/
package hudson.util;
-import com.thoughtworks.xstream.converters.basic.AbstractBasicConverter;
+import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter;
import com.thoughtworks.xstream.converters.basic.StringConverter;
/**
@@ -40,13 +40,13 @@ import com.thoughtworks.xstream.converters.basic.StringConverter;
* Use {@link HeapSpaceStringConverter} instead.
*/
@Deprecated
-public class StringConverter2 extends AbstractBasicConverter {
+public class StringConverter2 extends AbstractSingleValueConverter {
public boolean canConvert(Class type) {
return type.equals(String.class);
}
- protected Object fromString(String str) {
+ public Object fromString(String str) {
return str;
}
}
diff --git a/core/src/main/java/hudson/util/XStream2.java b/core/src/main/java/hudson/util/XStream2.java
index 35d49c7e422a15080b1496a72c65b29faf311f58..c4543979b1f1153144e6f6c45f0a859becf57b07 100644
--- a/core/src/main/java/hudson/util/XStream2.java
+++ b/core/src/main/java/hudson/util/XStream2.java
@@ -158,7 +158,7 @@ public class XStream2 extends XStream {
return super.serializedClass(type);
}
});
- AnnotationMapper a = new AnnotationMapper(m, getConverterRegistry(), getClassLoader(), getReflectionProvider(), getJvm());
+ AnnotationMapper a = new AnnotationMapper(m, getConverterRegistry(), getConverterLookup(), getClassLoader(), getReflectionProvider(), getJvm());
a.autodetectAnnotations(true);
mapperInjectionPoint = new MapperInjectionPoint(a);
diff --git a/core/src/main/java/hudson/util/xstream/MapperDelegate.java b/core/src/main/java/hudson/util/xstream/MapperDelegate.java
index 47019280c1652e6a792d1e538503f2650e0a4f00..143368717685c79b0f588badbf2275e492165771 100644
--- a/core/src/main/java/hudson/util/xstream/MapperDelegate.java
+++ b/core/src/main/java/hudson/util/xstream/MapperDelegate.java
@@ -59,34 +59,6 @@ public class MapperDelegate extends MapperWrapper {
return delegate.defaultImplementationOf(type);
}
- /**
- * @deprecated since 1.2, use aliasForAttribute instead.
- */
- public String attributeForClassDefiningField() {
- return delegate.attributeForClassDefiningField();
- }
-
- /**
- * @deprecated since 1.2, use aliasForAttribute instead.
- */
- public String attributeForImplementationClass() {
- return delegate.attributeForImplementationClass();
- }
-
- /**
- * @deprecated since 1.2, use aliasForAttribute instead.
- */
- public String attributeForReadResolveField() {
- return delegate.attributeForReadResolveField();
- }
-
- /**
- * @deprecated since 1.2, use aliasForAttribute instead.
- */
- public String attributeForEnumType() {
- return delegate.attributeForEnumType();
- }
-
public String aliasForAttribute(String attribute) {
return delegate.aliasForAttribute(attribute);
}
diff --git a/core/src/test/java/hudson/util/CopyOnWriteMapTest.java b/core/src/test/java/hudson/util/CopyOnWriteMapTest.java
index 10d19834671657b13f8d92ccd41471c8a7ed65b9..9e4f0dbba39cedb63a0e3feaa3da9e3df8dc8cb8 100644
--- a/core/src/test/java/hudson/util/CopyOnWriteMapTest.java
+++ b/core/src/test/java/hudson/util/CopyOnWriteMapTest.java
@@ -88,7 +88,7 @@ public class CopyOnWriteMapTest extends TestCase {
String out = xs.toXML(td);
assertEquals("empty maps", ""
- + ""
+ + ""
+ "",
out.replaceAll("\\s+", ""));
TreeData td2 = (TreeData)xs.fromXML(out);