{"task": {"agent_timeout": 3000, "task": "codegen__fasterxml__jackson-databind-4360", "verifier_timeout": 3000, "instruction": "This is a code generation task. You are expected to write working code that solves the described problem.\n<issue>\n      ### Search before asking\n\n- [X] I searched in the [issues](https://github.com/FasterXML/jackson-databind/issues) and found nothing similar.\n\n### Describe the bug\n\nAfter upgrading to 2.16.1, I cannot obtain `ObjectWriter` for enum classes, which some of the value returns `null` from `toString()`.\n\nThis used to work in 2.15.3\n\n### Version Information\n\n2.16.0, 2.16.1\n\n### Reproduction\n\nFollowing is the minimum JUnit 5 reproducer.\n\nThis works fine on 2.15.3 but exceptionally fails at `assertDoesNotThrow(..)` on 2.16.0 or 2.16.1. \n\n\n```java\n    enum NullToStringEnum {\n        ALPHA(\"A\"),\n        BETA(\"B\"),\n        UNDEFINED(null);\n\n        private final String s;\n\n        NullToStringEnum(String s) {\n            this.s = s;\n        }\n\n        @Override\n        public String toString() {\n            return s;\n        }\n    }\n\n    @Test\n    void nullToStringEnum() {\n        ObjectMapper mapper = new ObjectMapper();\n        assertDoesNotThrow(() -> mapper.writerFor(NullToStringEnum.class));\n        assertEquals(\"\\\"ALPHA\\\"\", w.writeValueAsString(NullToStringEnum.ALPHA));\n        assertEquals(\"\\\"UNDEFINED\\\"\", w.writeValueAsString(NullToStringEnum.UNDEFINED));\n    }\n```\n\nbacktrace looks like:\n```\nCaused by: java.lang.IllegalStateException: Null String illegal for SerializedString\n    at com.fasterxml.jackson.core.io.SerializedString.<init>(SerializedString.java:53)\n    at com.fasterxml.jackson.databind.cfg.MapperConfig.compileString(MapperConfig.java:245)\n    at com.fasterxml.jackson.databind.util.EnumValues.constructFromToString(EnumValues.java:136)\n    at com.fasterxml.jackson.databind.ser.std.EnumSerializer.construct(EnumSerializer.java:125)\n    at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.buildEnumSerializer(BasicSerializerFactory.java:1218)\n    at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.findSerializerByPrimaryType(BasicSerializerFactory.java:428)\n    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:235)\n    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:174)\n    at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1525)\n    at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1493)\n    at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:619)\n    at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:901)\n    at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.forRootType(ObjectWriter.java:1535)\n    at com.fasterxml.jackson.databind.ObjectWriter.<init>(ObjectWriter.java:116)\n    at com.fasterxml.jackson.databind.ObjectMapper._newWriter(ObjectMapper.java:838)\n    at com.fasterxml.jackson.databind.ObjectMapper.writerFor(ObjectMapper.java:4135)\n    at org.example.MainTest.lambda$nullToStringEnum$0(MainTest.java:31)\n    at org.junit.jupiter.api.AssertDoesNotThrow.assertDoesNotThrow(AssertDoesNotThrow.java:71)\n```\n\n\n### Expected behavior\n\nBe able to serialize Enums even though it's `#toString()` returns `null`\n\n### Additional context\n\nReturning `null` from `toString()` is probably bad practice, but such Enums are out there in the wild.\n\n\nFrom the 2.16.1 backtrace, it seems to be related to the change #4039\n\nBuilding `EnumValues valuesByToString` regardless of the `SerializationFeature.WRITE_ENUMS_USING_TO_STRING` config might be the issue?\n\n</issue>\nFocus on implementing the required functionality correctly and efficiently. Treat this as a programming challenge.\nYou are not allowed to read git history.\n", "memory": "8192m", "runnable": false, "difficulty": "hard", "language": "", "cpus": "", "instruction_truncated": false, "category": "code-generation", "compose": false, "has_solution": true, "oracle": null, "docker_image": "", "taskset": "devopsgym", "tags": ["code-generation", "devops-bench"]}, "runs": []}