### Question:
Schemas { private static boolean visitTerminal(final SchemaVisitor visitor, final Schema schema, final Deque<Object> dq) { SchemaVisitorAction action = visitor.visitTerminal(schema); switch (action) { case CONTINUE: break; case SKIP_SUBTREE: throw new UnsupportedOperationException("Invalid action " + action + " for " + schema); case SKIP_SIBLINGS: while (!dq.isEmpty() && dq.getLast() instanceof Schema) { dq.removeLast(); } break; case TERMINATE: return true; default: throw new UnsupportedOperationException("Invalid action " + action + " for " + schema); } return false; } private  Schemas(); static void copyAliases(final Schema from, final Schema to); static void copyAliases(final Schema.Field from, final Schema.Field to); static void copyLogicalTypes(final Schema from, final Schema to); static void copyProperties(final JsonProperties from, final JsonProperties to); static boolean hasGeneratedJavaClass(final Schema schema); static String getJavaClassName(final Schema schema); static T visit(final Schema start, final SchemaVisitor<T> visitor);  }### Answer:
@Test(expected = IllegalStateException.class) public void testCloningError1() { Schema recordSchema = new Schema.Parser().parse( "{\"type\": \"record\", \"name\": \"R\", \"fields\":[{\"name\": \"f1\", \"type\": [\"int\", \"long\"]}]}"); new CloningVisitor(recordSchema).visitTerminal(recordSchema.getField("f1").schema()); }