test_class.declarator: DITTO_HEADERS =
              DittoHeaders.newBuilder().correlationId(UUID.randomUUID().toString()).build()
test_class.modifier: private static final
test_class.original_string: private static final DittoHeaders DITTO_HEADERS =
              DittoHeaders.newBuilder().correlationId(UUID.randomUUID().toString()).build();
test_class.type: DittoHeaders
test_class.var_name: DITTO_HEADERS
test_class.declarator: DITTO_RUNTIME_EXCEPTION =
              DittoRuntimeException.newBuilder("test.error", HttpStatusCode.BAD_REQUEST)
                      .dittoHeaders(DITTO_HEADERS)
                      .build()
test_class.modifier: private static final
test_class.original_string: private static final DittoRuntimeException DITTO_RUNTIME_EXCEPTION =
              DittoRuntimeException.newBuilder("test.error", HttpStatusCode.BAD_REQUEST)
                      .dittoHeaders(DITTO_HEADERS)
                      .build();
test_class.type: DittoRuntimeException
test_class.var_name: DITTO_RUNTIME_EXCEPTION
test_class.declarator: GATEWAY_INTERNAL_ERROR_EXCEPTION =
              GatewayInternalErrorException.newBuilder().dittoHeaders(DITTO_HEADERS).build()
test_class.modifier: private static final
test_class.original_string: private static final GatewayInternalErrorException GATEWAY_INTERNAL_ERROR_EXCEPTION =
              GatewayInternalErrorException.newBuilder().dittoHeaders(DITTO_HEADERS).build();
test_class.type: GatewayInternalErrorException
test_class.var_name: GATEWAY_INTERNAL_ERROR_EXCEPTION
test_class.declarator: RETRIEVE_THINGS_COMMAND =
              RetrieveThings.getBuilder(ThingId.of("ditto", "thing"))
                      .dittoHeaders(DITTO_HEADERS)
                      .build()
test_class.modifier: private static final
test_class.original_string: private static final RetrieveThings RETRIEVE_THINGS_COMMAND =
              RetrieveThings.getBuilder(ThingId.of("ditto", "thing"))
                      .dittoHeaders(DITTO_HEADERS)
                      .build();
test_class.type: RetrieveThings
test_class.var_name: RETRIEVE_THINGS_COMMAND
test_class.declarator: actorSystem
test_class.modifier: private static
test_class.original_string: private static ActorSystem actorSystem;
test_class.type: ActorSystem
test_class.var_name: actorSystem
test_class.file: services/utils/aggregator/src/test/java/org/eclipse/ditto/services/utils/aggregator/ThingsAggregatorProxyActorTest.java
test_class.identifier: ThingsAggregatorProxyActorTest
test_case.body: @Test
      public void testHandleGenericException() {
          new TestKit(actorSystem) {{
              final TestProbe targetActor = new TestProbe(actorSystem);
              targetActor.setAutoPilot(new AutoPilotAnsweringWithException(GATEWAY_INTERNAL_ERROR_EXCEPTION));
  
              final Props props = ThingsAggregatorProxyActor.props(targetActor.ref());
              final ActorRef proxyActor = actorSystem.actorOf(props);
  
              proxyActor.tell(RETRIEVE_THINGS_COMMAND, getRef());
              expectMsg(GATEWAY_INTERNAL_ERROR_EXCEPTION);
          }};
      }
test_case.class_method_signature: ThingsAggregatorProxyActorTest.testHandleGenericException()
test_case.full_signature: @Test public void testHandleGenericException()
test_case.identifier: testHandleGenericException
test_case.invocations: setAutoPilot props ref actorOf tell getRef expectMsg
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testHandleGenericException()
focal_class.declarator: ACTOR_NAME = "aggregatorProxy"
focal_class.modifier: public static final
focal_class.original_string: public static final String ACTOR_NAME = "aggregatorProxy";
focal_class.type: String
focal_class.var_name: ACTOR_NAME
focal_class.declarator: TRACE_AGGREGATOR_RETRIEVE_THINGS = "aggregatorproxy_retrievethings"
focal_class.modifier: private static final
focal_class.original_string: private static final String TRACE_AGGREGATOR_RETRIEVE_THINGS = "aggregatorproxy_retrievethings";
focal_class.type: String
focal_class.var_name: TRACE_AGGREGATOR_RETRIEVE_THINGS
focal_class.declarator: ASK_TIMEOUT = 60
focal_class.modifier: private static final
focal_class.original_string: private static final int ASK_TIMEOUT = 60;
focal_class.type: int
focal_class.var_name: ASK_TIMEOUT
focal_class.declarator: log = LogUtil.obtain(this)
focal_class.modifier: private final
focal_class.original_string: private final DiagnosticLoggingAdapter log = LogUtil.obtain(this);
focal_class.type: DiagnosticLoggingAdapter
focal_class.var_name: log
focal_class.declarator: targetActor
focal_class.modifier: private final
focal_class.original_string: private final ActorRef targetActor;
focal_class.type: ActorRef
focal_class.var_name: targetActor
focal_class.declarator: materializer
focal_class.modifier: private final
focal_class.original_string: private final Materializer materializer;
focal_class.type: Materializer
focal_class.var_name: materializer
focal_class.file: services/utils/aggregator/src/main/java/org/eclipse/ditto/services/utils/aggregator/ThingsAggregatorProxyActor.java
focal_class.identifier: ThingsAggregatorProxyActor
focal_class.class_method_signature: ThingsAggregatorProxyActor.ThingsAggregatorProxyActor(final ActorRef targetActor)
focal_class.full_signature: @SuppressWarnings("unused") private  ThingsAggregatorProxyActor(final ActorRef targetActor)
focal_class.identifier: ThingsAggregatorProxyActor
focal_class.modifiers: @SuppressWarnings("unused") private
focal_class.parameters: (final ActorRef targetActor)
focal_class.signature:  ThingsAggregatorProxyActor(final ActorRef targetActor)
focal_class.class_method_signature: ThingsAggregatorProxyActor.props(final ActorRef targetActor)
focal_class.full_signature: public static Props props(final ActorRef targetActor)
focal_class.identifier: props
focal_class.modifiers: public static
focal_class.parameters: (final ActorRef targetActor)
focal_class.return: Props
focal_class.signature: Props props(final ActorRef targetActor)
focal_class.class_method_signature: ThingsAggregatorProxyActor.stopTimer(final StartedTimer timer)
focal_class.full_signature: private static void stopTimer(final StartedTimer timer)
focal_class.identifier: stopTimer
focal_class.modifiers: private static
focal_class.parameters: (final StartedTimer timer)
focal_class.return: void
focal_class.signature: void stopTimer(final StartedTimer timer)
focal_class.class_method_signature: ThingsAggregatorProxyActor.createReceive()
focal_class.full_signature: @Override public Receive createReceive()
focal_class.identifier: createReceive
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Receive
focal_class.signature: Receive createReceive()
focal_class.class_method_signature: ThingsAggregatorProxyActor.handleRetrieveThings(final RetrieveThings rt, final Object msgToAsk)
focal_class.full_signature: private void handleRetrieveThings(final RetrieveThings rt, final Object msgToAsk)
focal_class.identifier: handleRetrieveThings
focal_class.modifiers: private
focal_class.parameters: (final RetrieveThings rt, final Object msgToAsk)
focal_class.return: void
focal_class.signature: void handleRetrieveThings(final RetrieveThings rt, final Object msgToAsk)
focal_class.class_method_signature: ThingsAggregatorProxyActor.handleSudoRetrieveThings(final SudoRetrieveThings srt, final Object msgToAsk)
focal_class.full_signature: private void handleSudoRetrieveThings(final SudoRetrieveThings srt, final Object msgToAsk)
focal_class.identifier: handleSudoRetrieveThings
focal_class.modifiers: private
focal_class.parameters: (final SudoRetrieveThings srt, final Object msgToAsk)
focal_class.return: void
focal_class.signature: void handleSudoRetrieveThings(final SudoRetrieveThings srt, final Object msgToAsk)
focal_class.class_method_signature: ThingsAggregatorProxyActor.askTargetActor(final Command<?> command, final List<ThingId> thingIds,
              final Object msgToAsk, final ActorRef sender)
focal_class.full_signature: private void askTargetActor(final Command<?> command, final List<ThingId> thingIds,
              final Object msgToAsk, final ActorRef sender)
focal_class.identifier: askTargetActor
focal_class.modifiers: private
focal_class.parameters: (final Command<?> command, final List<ThingId> thingIds,
              final Object msgToAsk, final ActorRef sender)
focal_class.return: void
focal_class.signature: void askTargetActor(final Command<?> command, final List<ThingId> thingIds,
              final Object msgToAsk, final ActorRef sender)
focal_class.class_method_signature: ThingsAggregatorProxyActor.handleSourceRef(final SourceRef<?> sourceRef, final List<ThingId> thingIds,
              final Command<?> originatingCommand, final ActorRef originatingSender)
focal_class.full_signature: private void handleSourceRef(final SourceRef<?> sourceRef, final List<ThingId> thingIds,
              final Command<?> originatingCommand, final ActorRef originatingSender)
focal_class.identifier: handleSourceRef
focal_class.modifiers: private
focal_class.parameters: (final SourceRef<?> sourceRef, final List<ThingId> thingIds,
              final Command<?> originatingCommand, final ActorRef originatingSender)
focal_class.return: void
focal_class.signature: void handleSourceRef(final SourceRef<?> sourceRef, final List<ThingId> thingIds,
              final Command<?> originatingCommand, final ActorRef originatingSender)
focal_class.class_method_signature: ThingsAggregatorProxyActor.supplyPlainJsonFromRetrieveThingResponse()
focal_class.full_signature: private Function<Jsonifiable<?>, PlainJson> supplyPlainJsonFromRetrieveThingResponse()
focal_class.identifier: supplyPlainJsonFromRetrieveThingResponse
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: Function<Jsonifiable<?>, PlainJson>
focal_class.signature: Function<Jsonifiable<?>, PlainJson> supplyPlainJsonFromRetrieveThingResponse()
focal_class.class_method_signature: ThingsAggregatorProxyActor.supplyPlainJsonFromSudoRetrieveThingResponse()
focal_class.full_signature: private Function<Jsonifiable<?>, PlainJson> supplyPlainJsonFromSudoRetrieveThingResponse()
focal_class.identifier: supplyPlainJsonFromSudoRetrieveThingResponse
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: Function<Jsonifiable<?>, PlainJson>
focal_class.signature: Function<Jsonifiable<?>, PlainJson> supplyPlainJsonFromSudoRetrieveThingResponse()
focal_class.class_method_signature: ThingsAggregatorProxyActor.supplyPlainJsonSorter(final List<ThingId> thingIds)
focal_class.full_signature: private Function<List<PlainJson>, List<PlainJson>> supplyPlainJsonSorter(final List<ThingId> thingIds)
focal_class.identifier: supplyPlainJsonSorter
focal_class.modifiers: private
focal_class.parameters: (final List<ThingId> thingIds)
focal_class.return: Function<List<PlainJson>, List<PlainJson>>
focal_class.signature: Function<List<PlainJson>, List<PlainJson>> supplyPlainJsonSorter(final List<ThingId> thingIds)
focal_class.class_method_signature: ThingsAggregatorProxyActor.supplyRetrieveThingsResponse(
              final DittoHeaders dittoHeaders,
              @Nullable final String namespace)
focal_class.full_signature: private Function<List<PlainJson>, CommandResponse<?>> supplyRetrieveThingsResponse(
              final DittoHeaders dittoHeaders,
              @Nullable final String namespace)
focal_class.identifier: supplyRetrieveThingsResponse
focal_class.modifiers: private
focal_class.parameters: (
              final DittoHeaders dittoHeaders,
              @Nullable final String namespace)
focal_class.return: Function<List<PlainJson>, CommandResponse<?>>
focal_class.signature: Function<List<PlainJson>, CommandResponse<?>> supplyRetrieveThingsResponse(
              final DittoHeaders dittoHeaders,
              @Nullable final String namespace)
focal_class.class_method_signature: ThingsAggregatorProxyActor.supplySudoRetrieveThingsResponse(
              final DittoHeaders dittoHeaders)
focal_class.full_signature: private Function<List<PlainJson>, CommandResponse<?>> supplySudoRetrieveThingsResponse(
              final DittoHeaders dittoHeaders)
focal_class.identifier: supplySudoRetrieveThingsResponse
focal_class.modifiers: private
focal_class.parameters: (
              final DittoHeaders dittoHeaders)
focal_class.return: Function<List<PlainJson>, CommandResponse<?>>
focal_class.signature: Function<List<PlainJson>, CommandResponse<?>> supplySudoRetrieveThingsResponse(
              final DittoHeaders dittoHeaders)
focal_class.superclass: extends AbstractActor
focal_method.body: public static Props props(final ActorRef targetActor) {
  
          return Props.create(ThingsAggregatorProxyActor.class, targetActor);
      }
focal_method.class_method_signature: ThingsAggregatorProxyActor.props(final ActorRef targetActor)
focal_method.full_signature: public static Props props(final ActorRef targetActor)
focal_method.identifier: props
focal_method.invocations: create
focal_method.modifiers: public static
focal_method.parameters: (final ActorRef targetActor)
focal_method.return: Props
focal_method.signature: Props props(final ActorRef targetActor)