From 3965fec72eaea9bfc490ee431cb4fc21f6b0d19f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Dec 2022 10:40:47 -0800 Subject: [PATCH] Upgrade XStream from 1.4.19 to 1.4.20 (#7548) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- bom/pom.xml | 2 +- core/src/main/java/hudson/util/XStream2.java | 2 - .../util/xstream/AtomicBooleanConverter.java | 45 ------------ .../util/xstream/AtomicBooleanFieldsTest.java | 69 ------------------- 4 files changed, 1 insertion(+), 117 deletions(-) delete mode 100644 core/src/main/java/jenkins/util/xstream/AtomicBooleanConverter.java delete mode 100644 core/src/test/java/jenkins/util/xstream/AtomicBooleanFieldsTest.java diff --git a/bom/pom.xml b/bom/pom.xml index 28998d455a..ada240719b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -103,7 +103,7 @@ THE SOFTWARE. com.thoughtworks.xstream xstream - 1.4.19 + 1.4.20 commons-beanutils diff --git a/core/src/main/java/hudson/util/XStream2.java b/core/src/main/java/hudson/util/XStream2.java index d56537d20f..4e6a9f035d 100644 --- a/core/src/main/java/hudson/util/XStream2.java +++ b/core/src/main/java/hudson/util/XStream2.java @@ -83,7 +83,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import jenkins.model.Jenkins; import jenkins.util.SystemProperties; -import jenkins.util.xstream.AtomicBooleanConverter; import jenkins.util.xstream.SafeURLConverter; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; @@ -274,7 +273,6 @@ public class XStream2 extends XStream { // http://www.openwall.com/lists/oss-security/2017/04/03/4 denyTypes(new Class[] { void.class, Void.class }); - registerConverter(new AtomicBooleanConverter(), 10); registerConverter(new RobustCollectionConverter(getMapper(), getReflectionProvider()), 10); registerConverter(new RobustMapConverter(getMapper()), 10); registerConverter(new ImmutableMapConverter(getMapper(), getReflectionProvider()), 10); diff --git a/core/src/main/java/jenkins/util/xstream/AtomicBooleanConverter.java b/core/src/main/java/jenkins/util/xstream/AtomicBooleanConverter.java deleted file mode 100644 index ef958d2c11..0000000000 --- a/core/src/main/java/jenkins/util/xstream/AtomicBooleanConverter.java +++ /dev/null @@ -1,45 +0,0 @@ -package jenkins.util.xstream; - -import com.thoughtworks.xstream.converters.Converter; -import com.thoughtworks.xstream.converters.MarshallingContext; -import com.thoughtworks.xstream.converters.SingleValueConverterWrapper; -import com.thoughtworks.xstream.converters.UnmarshallingContext; -import com.thoughtworks.xstream.converters.basic.BooleanConverter; -import com.thoughtworks.xstream.io.HierarchicalStreamReader; -import com.thoughtworks.xstream.io.HierarchicalStreamWriter; -import java.util.concurrent.atomic.AtomicBoolean; -import org.kohsuke.accmod.Restricted; -import org.kohsuke.accmod.restrictions.NoExternalUse; - -/** Converts an {@link AtomicBoolean}. */ -@Restricted(NoExternalUse.class) -public class AtomicBooleanConverter implements Converter { - - @Override - public boolean canConvert(Class type) { - return type != null && AtomicBoolean.class.isAssignableFrom(type); - } - - @Override - public void marshal( - Object source, HierarchicalStreamWriter writer, MarshallingContext context) { - final AtomicBoolean atomicBoolean = (AtomicBoolean) source; - writer.startNode("value"); - context.convertAnother( - atomicBoolean.get(), new SingleValueConverterWrapper(BooleanConverter.BINARY)); - writer.endNode(); - } - - @Override - public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { - reader.moveDown(); - Object item = - context.convertAnother( - null, - Boolean.class, - new SingleValueConverterWrapper(BooleanConverter.BINARY)); - boolean value = item instanceof Boolean ? ((Boolean) item).booleanValue() : false; - reader.moveUp(); - return new AtomicBoolean(value); - } -} diff --git a/core/src/test/java/jenkins/util/xstream/AtomicBooleanFieldsTest.java b/core/src/test/java/jenkins/util/xstream/AtomicBooleanFieldsTest.java deleted file mode 100644 index b7b7c7eefb..0000000000 --- a/core/src/test/java/jenkins/util/xstream/AtomicBooleanFieldsTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package jenkins.util.xstream; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import com.thoughtworks.xstream.io.binary.BinaryStreamReader; -import com.thoughtworks.xstream.io.binary.BinaryStreamWriter; -import hudson.util.XStream2; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; -import org.junit.Test; - -public class AtomicBooleanFieldsTest { - - public static class Musican { - public String name; - public String genre; - public AtomicBoolean alive; - - public Musican(final String name, final String genre, final AtomicBoolean alive) { - this.name = name; - this.genre = genre; - this.alive = alive; - } - } - - @Test - public void testAtomicBooleanFields() { - List jazzIcons = new ArrayList<>(); - jazzIcons.add(new Musican("Miles Davis", "jazz", new AtomicBoolean(false))); - jazzIcons.add(new Musican("Wynton Marsalis", "jazz", new AtomicBoolean(true))); - - XStream2 xstream = new XStream2(); - xstream.alias("musician", Musican.class); - - String xmlString = xstream.toXML(jazzIcons); - assertEquals( - "\n" - + " \n" - + " Miles Davis\n" - + " jazz\n" - + " \n" - + " 0\n" - + " \n" - + " \n" - + " \n" - + " Wynton Marsalis\n" - + " jazz\n" - + " \n" - + " 1\n" - + " \n" - + " \n" - + "", - xmlString); - List obj = (List) xstream.fromXML(xmlString); - assertNotNull(obj); - assertEquals(xstream.toXML(jazzIcons), xstream.toXML(obj)); - - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - xstream.marshal(jazzIcons, new BinaryStreamWriter(baos)); - ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); - obj = (List) xstream.unmarshal(new BinaryStreamReader(bais)); - assertNotNull(obj); - assertEquals(xstream.toXML(jazzIcons), xstream.toXML(obj)); - } -}