@@ -0,0 +1,1756 @@
+package com.fasterxml.jackson.failing;%0A%0Aimport com.fasterxml.jackson.annotation.JsonIdentityInfo;%0Aimport com.fasterxml.jackson.annotation.JsonIdentityReference;%0Aimport com.fasterxml.jackson.annotation.JsonTypeInfo;%0Aimport com.fasterxml.jackson.annotation.ObjectIdGenerators;%0Aimport com.fasterxml.jackson.databind.*;%0A%0Apublic class PolymorphicWithObjectId1551Test extends BaseMapTest%0A%7B%0A    @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY,%0A            property = %22@class%22)%0A    static abstract class Vehicle %7B%0A        public String vehicleId;%0A    %7D%0A%0A    static class Car extends Vehicle %7B%0A        public int numberOfDoors;%0A    %7D%0A%0A    static class VehicleOwner %7B%0A        @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = %22vehicleId%22)%0A        @JsonIdentityReference(alwaysAsId = false)%0A        public Vehicle ownedVehicle;%0A    %7D%0A%0A    public void testSerializeDeserialize() throws Exception %7B%0A        Car c = new Car();%0A        c.vehicleId = %22123%22;%0A        c.numberOfDoors = 2;%0A        // both owners own the same vehicle (car sharing ;-))%0A        VehicleOwner v1 = new VehicleOwner();%0A        v1.ownedVehicle = c;%0A        VehicleOwner v2 = new VehicleOwner();%0A        v2.ownedVehicle = c;%0A%0A        ObjectMapper objectMapper = new ObjectMapper();%0A        String serialized = objectMapper.writer()%0A//                .with(SerializationFeature.INDENT_OUTPUT)%0A                .writeValueAsString(new VehicleOwner%5B%5D %7B v1, v2 %7D);%0A//        System.out.println(serialized);%0A%0A        VehicleOwner%5B%5D deserialized = objectMapper.readValue(serialized, VehicleOwner%5B%5D.class);%0A        assertEquals(2, deserialized.length);%0A        assertSame(deserialized%5B0%5D.ownedVehicle, deserialized%5B1%5D.ownedVehicle);%0A    %7D%0A%7D%0A

Add failing test for #1551