private <T extends Ticket> T read(final String id, final Class<T> clazz) { log.debug("Reading {}", id); final T ticket; try { final String context = context(clazz); final StorageRecord<T> record = storageService.read(context, id); if (record == null) { log.debug("{} not found in context {}", id, context); return null; } ticket = record.getValue(serializer(clazz), context, id); } catch (IOException e) { throw new RuntimeException("Error reading ticket."); } return ticket; }