Azure / Azure/azure-functions-java-worker

Exceptions in static blocks blocks not caught/recorded

Đang mở
#295 2 bình luận 0 reaction 1 người được giao Được giao cho @kaibocai Xem trên GitHub
area:java-functions Bug P2 reviewed
Ngôn ngữ chính
Java
Star
103
Fork
74
Merge trung bình
4 ngày 8 giờ
Pull request đã merge (30 ngày)
2

Mô tả

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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.