Azure / Azure/azure-functions-java-worker

Exceptions in static blocks blocks not caught/recorded

Abierto
#295 2 comentarios 0 reacciones 1 asignado Asignado a @kaibocai Ver en GitHub
area:java-functions Bug P2 reviewed
Lenguaje dominante
Java
Estrellas
103
Forks
74
Merge medio
4 d 8 h
PR fusionados (30 d)
2

Descripción

When an exception occurs in a static initialization, it is not logged in AppInsights.

#### Investigative information

Please provide the following:

- Timestamp: 2019-06-21T17:48:38.384
- Invocation ID: `48d86a7c24b1354196e9c0c9b6ee7d19`
- Region: Central US

#### Repro steps
Here's a sample function to reproduce:

```java
package com.yevster;

import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Optional;

import com.microsoft.azure.functions.ExecutionContext;
import com.microsoft.azure.functions.HttpMethod;
import com.microsoft.azure.functions.HttpRequestMessage;
import com.microsoft.azure.functions.HttpResponseMessage;
import com.microsoft.azure.functions.HttpStatus;
import com.microsoft.azure.functions.annotation.AuthorizationLevel;
import com.microsoft.azure.functions.annotation.FunctionName;
import com.microsoft.azure.functions.annotation.HttpTrigger;

public class ProtoFunction {
static {
//Puke!
Optional.empty().orElseThrow(()->new RuntimeException("Life isn't fair!"));
}

@FunctionName("prototype")
public HttpResponseMessage run(@HttpTrigger(name = "req", methods = {
HttpMethod.GET }, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage> request,
final ExecutionContext context) throws MalformedURLException, IOException {

return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "text/html").body("

Rejoice! All is well!

").build();
}
}

```
And here's what AppInsights shows when queried for all exceptions and trace messages after invocation of that function:

[![noexceptionlogged.jpg](https://i.postimg.cc/Fsccphhv/noexceptionlogged.jpg)](https://postimg.cc/7fHfY8Ct)

#### Expected behavior

Provide a description of the expected behavior.

The exception thrown from the static block is recorded in App Insights.

#### Actual behavior

The exception thrown from the static block is **not** recorded in App Insights.

#### Known workarounds

Do not use any static code.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.