Source:
public void update(final String eventTypeName, final EventTypeBase eventTypeBase, final Client client) throws TopicConfigException, InconsistentStateException, NakadiRuntimeException, ServiceTemporaryUnavailableException { Closeable updatingCloser = null; try { updatingCloser = timelineSync.workWithEventType(eventTypeName, nakadiSettings.getTimelineWaitTimeoutMs()); final EventType original = eventTypeRepository.findByName(eventTypeName); if (!client.idMatches(original.getOwningApplication())) { throw new ForbiddenAccessException("You don't have access to this event type"); } authorizationValidator.authorizeEventTypeUpdate(original); validateName(eventTypeName, eventTypeBase); validateSchema(eventTypeBase); partitionResolver.validate(eventTypeBase); final EventType eventType = schemaEvolutionService.evolve(original, eventTypeBase); eventType.setDefaultStatistic( validateStatisticsUpdate(original.getDefaultStatistic(), eventType.getDefaultStatistic())); updateRetentionTime(original, eventType); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); throw new ServiceTemporaryUnavailableException( "Event type is currently in maintenance, please repeat request", e); } catch (final TimeoutException e) { LOG.error("Failed to wait for timeline switch", e); throw new ServiceTemporaryUnavailableException( "Event type is currently in maintenance, please repeat request", e); } catch (final NakadiException e) { LOG.error("Unable to update event type", e); throw new NakadiRuntimeException(e); } finally { try { if (updatingCloser != null) { updatingCloser.close(); } } catch (final IOException e) { LOG.error("Exception occurred when releasing usage of event-type", e); } } }

Target:
public void update(final String eventTypeName, final EventTypeBase eventTypeBase, final Client client) throws TopicConfigException, InconsistentStateException, NakadiRuntimeException, ServiceTemporarilyUnavailableException { Closeable updatingCloser = null; try { updatingCloser = timelineSync.workWithEventType(eventTypeName, nakadiSettings.getTimelineWaitTimeoutMs()); final EventType original = eventTypeRepository.findByName(eventTypeName); if (!client.idMatches(original.getOwningApplication())) { throw new ForbiddenAccessException("You don't have access to this event type"); } authorizationValidator.authorizeEventTypeUpdate(original); validateName(eventTypeName, eventTypeBase); validateSchema(eventTypeBase); partitionResolver.validate(eventTypeBase); final EventType eventType = schemaEvolutionService.evolve(original, eventTypeBase); eventType.setDefaultStatistic( validateStatisticsUpdate(original.getDefaultStatistic(), eventType.getDefaultStatistic())); updateRetentionTime(original, eventType); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); throw new ServiceTemporarilyUnavailableException( "Event type is currently in maintenance, please repeat request", e); } catch (final TimeoutException e) { LOG.error("Failed to wait for timeline switch", e); throw new ServiceTemporarilyUnavailableException( "Event type is currently in maintenance, please repeat request", e); } catch (final NakadiException e) { LOG.error("Unable to update event type", e); throw new NakadiRuntimeException(e); } finally { try { if (updatingCloser != null) { updatingCloser.close(); } } catch (final IOException e) { LOG.error("Exception occurred when releasing usage of event-type", e); } } }