问:
add timeout for blocking read() in process
I have a process which do read() that is blocking and I want to add timeout that interrupt the read operation.
this is what I tried to do but the timeout happened only after read is finished</p>
```<code>        long startTime = System.currentTimeMillis();
        long theRealTimeOfProcess , endTime ,timeOutMillis;
        String line;
        List<String> result = new ArrayList<>();
        try (BufferedReader output = new BufferedReader(new InputStreamReader(inputStream))) {
            if (Objects.isNull(timeUnit) || Objects.isNull(timeout)) {
                return output.lines().collect(Collectors.toList());
            }
            timeOutMillis = timeUnit.toMillis(timeout);
            while (true) {
                line = output.readLine();
                endTime = System.currentTimeMillis();
                theRealTimeOfProcess = endTime - startTime;
                if (timeOutMillis <= theRealTimeOfProcess) {
                    throw new ShellTaskExecutionException(String.format("Task reached timeout %s %s", timeout, timeUnit));
                }
                if (Objects.isNull(line)) {
                    break;
                }
                result.add(line);
            }
            return result;
        }
    }
</code>```

Body:
I have a process which do read() that is blocking and I want to add timeout that interrupt the read operation.
this is what I tried to do but the timeout happened only after read is finished

        long startTime = System.currentTimeMillis();
        long theRealTimeOfProcess , endTime ,timeOutMillis;
        String line;
        List<String> result = new ArrayList<>();
        try (BufferedReader output = new BufferedReader(new InputStreamReader(inputStream))) {
            if (Objects.isNull(timeUnit) || Objects.isNull(timeout)) {
                return output.lines().collect(Collectors.toList());
            }
            timeOutMillis = timeUnit.toMillis(timeout);
            while (true) {
                line = output.readLine();
                endTime = System.currentTimeMillis();
                theRealTimeOfProcess = endTime - startTime;
                if (timeOutMillis <= theRealTimeOfProcess) {
                    throw new ShellTaskExecutionException(String.format("Task reached timeout %s %s", timeout, timeUnit));
                }
                if (Objects.isNull(line)) {
                    break;
                }
                result.add(line);
            }
            return result;
        }
    }


来源: stackexchange

问:
How to speed-up (avoid) django boot time when running tests?
When I write django tests, I frequently run then manage.py test command.

To increase test run performance I'm aware of --keepdb and --parallel options.
I'm also aware of being able to run a specific test by targeting it.

I usually run something like this : manage.py test myapp.tests.test_file.MyTestCase.test_my_test --keepdb

The problem is that each time I run the command, django took few seconds (around 10 seconds in the current project) just to boot-up and start processing the tests.

So during a test development I have to wait 10 seconds each time whereas the test itself took 1 second.

There is a way to enter a sort of "test mode" which keep django booted-up ? So that I can run tests without to wait for 10 seconds boot time after each code modification.

ContentLicense: CC BY-SA 4.0


问:
What is the correct way of sending Protobuf data using Spring Cloud and RabbitMQ
I have generated Proto classes from Protobuf and I would like to exchange the bytes between two Spring Cloud microservices over RabbitMQ but I wasn't able to figure out what is the proper way of serializing/deserializing.

Producer

```<code> @Bean
 private fun produce(): Message<ByteArray>? {
    val protoObj = protoObj {
        id = UUID.randomUUID().toString()
        name = "name"
    }

    return MessageBuilder.withPayload(protoObj.toByteArray())
        .setHeader("Content-Type", "application/x-brotobuf").build()
}
</code>```

Consumer

```<code>@Bean
fun consume(): Consumer<ByteArray> = Consumer {
    val protoObj = ProtoObj.parseFrom(it)
    logger.info("Received: {}", protoObj)
}
</code>```

Exception

```<code>org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.cloud.stream.function.FunctionConfiguration$FunctionToDestinationBinder$1@7d801f4c]; nested exception is com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field.  This could mean either that the input has been truncated or that an embedded message misreported its own length., failedMessage=GenericMessage [payload=byte[32], headers={amqp_receivedDeliveryMode=PERSISTENT, amqp_receivedExchange=my_exchange, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=my_exchange.my_queue, amqp_redelivered=false, amqp_receivedRoutingKey=data.key, amqp_timestamp=Thu Dec 15 14:54:12 EET 2022, amqp_messageId=3abf6bf4-5716-70d7-982e-824248b86119, id=a28f1235-ff3b-7c48-33c3-dac864f49728, amqp_consumerTag=amq.ctag-66oI3hsHrZpWVJQDwaLQ0g, sourceData=(Body:'{"validUtf8":true,"empty":false}' MessageProperties [headers={Content-Type=application/x-brotobuf}, timestamp=Thu Dec 15 14:54:12 EET 2022, messageId=3abf6bf4-5716-70d7-982e-824248b86119, contentType=application/json, contentLength=0, receivedDeliveryMode=PERSISTENT, priority=0, redelivered=false, receivedExchange=my_exchange, receivedRoutingKey=data.key, deliveryTag=1, consumerTag=amq.ctag-66oI3hsHrZpWVJQDwaLQ0g, consumerQueue=my_queue]), contentType=application/json, Content-Type=application/x-brotobuf, timestamp=1671108941161}]```
```

Body:
I have generated Proto classes from Protobuf and I would like to exchange the bytes between two Spring Cloud microservices over RabbitMQ but I wasn't able to figure out what is the proper way of serializing/deserializing.

Producer

 @Bean
 private fun produce(): Message<ByteArray>? {
    val protoObj = protoObj {
        id = UUID.randomUUID().toString()
        name = "name"
    }

    return MessageBuilder.withPayload(protoObj.toByteArray())
        .setHeader("Content-Type", "application/x-brotobuf").build()
}

Consumer

@Bean
fun consume(): Consumer<ByteArray> = Consumer {
    val protoObj = ProtoObj.parseFrom(it)
    logger.info("Received: {}", protoObj)
}

Exception

org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.cloud.stream.function.FunctionConfiguration$FunctionToDestinationBinder$1@7d801f4c]; nested exception is com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field.  This could mean either that the input has been truncated or that an embedded message misreported its own length., failedMessage=GenericMessage [payload=byte[32], headers={amqp_receivedDeliveryMode=PERSISTENT, amqp_receivedExchange=my_exchange, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=my_exchange.my_queue, amqp_redelivered=false, amqp_receivedRoutingKey=data.key, amqp_timestamp=Thu Dec 15 14:54:12 EET 2022, amqp_messageId=3abf6bf4-5716-70d7-982e-824248b86119, id=a28f1235-ff3b-7c48-33c3-dac864f49728, amqp_consumerTag=amq.ctag-66oI3hsHrZpWVJQDwaLQ0g, sourceData=(Body:'{"validUtf8":true,"empty":false}' MessageProperties [headers={Content-Type=application/x-brotobuf}, timestamp=Thu Dec 15 14:54:12 EET 2022, messageId=3abf6bf4-5716-70d7-982e-824248b86119, contentType=application/json, contentLength=0, receivedDeliveryMode=PERSISTENT, priority=0, redelivered=false, receivedExchange=my_exchange, receivedRoutingKey=data.key, deliveryTag=1, consumerTag=amq.ctag-66oI3hsHrZpWVJQDwaLQ0g, consumerQueue=my_queue]), contentType=application/json, Content-Type=application/x-brotobuf, timestamp=1671108941161}]```


问:
Extracting variables from different properties with similar timestamps -- PySpark
I have a list of variables I need to extract. I am using the PySpark API. Almost all variables are already in the same property, but just one variable I also need was logged in another property. For clarity, let me call these: Property1 & VarList, and Property2 & SingleVar

The VarList I extract to obtain Frame1 describes a network of devices. All of which is related to the SingleVar (in reality). The problem is that, since this is a physical network, their timestamps are slightly different. The difference is very small but I cannot use groupBy timestamp.

What I have to do:

Extract the SingleVar (obtain Frame2) with timestamps, and "merge" this information with Frame1 with a tolerance for timestamps.

So that, in the end, I can have a frame that is merged wrt a timestamp (with tol) and is grouped by the SingleVar. So I can do some statistics wrt time and group them by the SingleVar to see its effect.

I tried pulling both properties to my local and made a new frame with join, but I fear this is terribly inefficient. Also, currently, I do not have a solution for the tolerance of timestamps. I am looking into a possible solution with UDFs.

What would be the right approach to go about this problem?


问:
SpringBoot not exposing GraphQL
I have a multi-module project where one of them is the GraphQL module
the Runnable File is in a different module with a working RestController
the GraphQLController is not exposed.
I have tried to move the application.properties to the runnable module didn't work, tried to move the GraphQLController also didn't work I even moved all files to the runnable module and nothing happened.
my dependencies are fine my gradle is fine
I am sure my code works but only separately I tried it and it did work but I'm working on a multi-module project so I can't just run it separately.
what seems the problem here, I googled the problem and tried every related solution

files architecture:

```<code>-root
   |_graphql-service
   |    |_main
   |       |_java
   |       |  |_com.example.graphql
   |       |      |_Author
   |       |      |_Book
   |       |      |_GraphQLController
   |       |_resources
   |              |_graphql
   |              | |_schema.graphqls
   |              |
   |              |_application.properties
   |
   |_service-main
           |_main
              |_java
                 |_com.example.service.main
                       |_ServiceMain
                       |_RestController
</code>```

schema.graphqls

```<code>type Query {
    bookById(id: ID): Book
}

type Book {
    id: ID
    name: String
    pageCount: Int
    author: Author
}

type Author {
    id: ID
    firstName: String
    lastName: String
}
</code>```

ServiceMain.java

```<code>@SpringBootApplication
public class ServiceMain {
    public static void main(String[] args) {
        SpringApplication.run(ServiceMain.class, args);
    }
}
</code>```

GraphQLController.java

```<code>@Controller
public class GraphQLController {

    private static final Logger LOG = LoggerFactory.getLogger(GraphQLController.class);

    @QueryMapping
    public Book bookById(@Argument String id){
        LOG.info("Invoking bookById");
        return Book.getById(id);
    }

    @SchemaMapping
    public Author author(Book book){
        LOG.info("Invoking author");
        return Author.getById(book.getAuthorId());
    }
}

</code>```

Book.java

```<code>public class Book {

    private String id;
    private String name;
    private int pageCount;
    private String authorId;
    private static final Logger LOG = LoggerFactory.getLogger(Book.class);

    public Book(String id, String name, int pageCount, String authorId){
        LOG.info("Initializing Book Object");
        this.id = id;
        this.name = name;
        this.pageCount = pageCount;
        this.authorId = authorId;
    }

    private static List<Book> books = Arrays.asList(
            new Book("0", "name-0", 345, "0"),
            new Book("1", "name-1", 543, "1"),
            new Book("2", "name-2", 123, "2"),
            new Book("3", "name-3", 678, "3")
    );

    public static Book getById(String id){
        LOG.info("Filtering Books By ID");
        return books.stream().filter(
                book -> book.getId().equals(id)
        ).findFirst().orElse(null);
    }

    public String getId(){
        LOG.info("Getting Book ID");
        return id;
    }
    public String getAuthorId(){
        LOG.info("Getting Author ID");
        return authorId;
    }
}
</code>```

Author.java

```<code>public class Author {

    private String id;
    private String firstName;
    private String lastName;

    private static final Logger LOG = LoggerFactory.getLogger(Author.class);

    public Author(String id, String firstName, String lastName){
        LOG.info("Initializing Author Object");
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    private static List<Author> authors = Arrays.asList(
            new Author("0", "name-0", "last-name-0"),
            new Author("1", "name-1", "last-name-1"),
            new Author("2", "name-2", "last-name-2"),
            new Author("4", "name-3", "last-name-3")
    );

    public static Author getById(String id){
        LOG.info("Getting Author By ID");
        return authors.stream().filter(
                author -> author.getId().equals(id)
        ).findFirst().orElse(null);
    }
    public String getId(){
        LOG.info("Getting Author ID");
        return id;
    }
}
</code>```

application.properties

```<code>spring.graphql.graphiql.enabled=true
spring.graphql.graphiql.path=/graphiql
</code>```

Title: SpringBoot not exposing GraphQL

Body:
I have a multi-module project where one of them is the GraphQL module
the Runnable File is in a different module with a working RestController
the GraphQLController is not exposed.
I have tried to move the application.properties to the runnable module didn't work, tried to move the GraphQLController also didn't work I even moved all files to the runnable module and nothing happened.
my dependencies are fine my gradle is fine
I am sure my code works but only separately I tried it and it did work but I'm working on a multi-module project so I can't just run it separately.
what seems the problem here, I googled the problem and tried every related solution

files architecture:

-root
   |_graphql-service
   |    |_main
   |       |_java
   |       |  |_com.example.graphql
   |       |      |_Author
   |       |      |_Book
   |       |      |_GraphQLController
   |       |_resources
   |              |_graphql
   |              | |_schema.graphqls
   |              |
   |              |_application.properties
   |
   |_service-main
           |_main
              |_java
                 |_com.example.service.main
                       |_ServiceMain
                       |_RestController

schema.graphqls

type Query {
    bookById(id: ID): Book
}

type Book {
    id: ID
    name: String
    pageCount: Int
    author: Author
}

type Author {
    id: ID
    firstName: String
    lastName: String
}

ServiceMain.java

@SpringBootApplication
public class ServiceMain {
    public static void main(String[] args) {
        SpringApplication.run(ServiceMain.class, args);
    }
}

GraphQLController.java

@Controller
public class GraphQLController {

    private static final Logger LOG = LoggerFactory.getLogger(GraphQLController.class);

    @QueryMapping
    public Book bookById(@Argument String id){
        LOG.info("Invoking bookById");
        return Book.getById(id);
    }

    @SchemaMapping
    public Author author(Book book){
        LOG.info("Invoking author");
        return Author.getById(book.getAuthorId());
    }
}

Book.java

public class Book {

    private String id;
    private String name;
    private int pageCount;
    private String authorId;
    private static final Logger LOG = LoggerFactory.getLogger(Book.class);

    public Book(String id, String name, int pageCount, String authorId){
        LOG.info("Initializing Book Object");
        this.id = id;
        this.name = name;
        this.pageCount = pageCount;
        this.authorId = authorId;
    }

    private static List<Book> books = Arrays.asList(
            new Book("0", "name-0", 345, "0"),
            new Book("1", "name-1", 543, "1"),
            new Book("2", "name-2", 123, "2"),
            new Book("3", "name-3", 678, "3")
    );

    public static Book getById(String id){
        LOG.info("Filtering Books By ID");
        return books.stream().filter(
                book -> book.getId().equals(id)
        ).findFirst().orElse(null);
    }

    public String getId(){
        LOG.info("Getting Book ID");
        return id;
    }
    public String getAuthorId(){
        LOG.info("Getting Author ID");
        return authorId;
    }
}

Author.java

public class Author {

    private String id;
    private String firstName;
    private String lastName;

    private static final Logger LOG = LoggerFactory.getLogger(Author.class);

    public Author(String id, String firstName, String lastName){
        LOG.info("Initializing Author Object");
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    private static List<Author> authors = Arrays.asList(
            new Author("0", "name-0", "last-name-0"),
            new Author("1", "name-1", "last-name-1"),
            new Author("2", "name-2", "last-name-2"),
            new Author("4", "name-3", "last-name-3")
    );

    public static Author getById(String id){
        LOG.info("Getting Author By ID");
        return authors.stream().filter(
                author -> author.getId().equals(id)
        ).findFirst().orElse(null);
    }
    public String getId(){
        LOG.info("Getting Author ID");
        return id;
    }
}

application.properties

spring.graphql.graphiql.enabled=true
spring.graphql.graphiql.path=/graphiql


问:
SQL database is adding spaces to string
I have two c# programms. the first one is inserting data to my databse. and the second one is reading from there. Here i have specially the problem with one action. the first programm is writting a status to the db (it's a MSSQL btw.). I have three columns in the db which i need:

The code for writting to the databse:

```<code>                int k = WNR_KNR[1].Length;
                int w = WNR_KNR[0].Length;
                int s = status.Length;
                SqlConnection con = new SqlConnection(connectionstring);
                con.Open();
                string delete = "DELETE FROM Fertigung.dbo.Box" + boxnumber + "Status";
                SqlCommand commanddel = new SqlCommand(delete, con);
                commanddel.ExecuteNonQuery();
                string query = "INSERT INTO Fertigung.dbo.Box" + boxnumber + "Status (WNR,KNR,status) VALUES ('" + WNR_KNR[0] +"','" + WNR_KNR[1] +"','"+status+"')";
                SqlCommand cmd = new SqlCommand(query, con);
                cmd.ExecuteNonQuery();
                con.Close();
</code>```

Now when i write the strings have the right length for example the WNR_KNR1 has a length of 7.

The code from the programm that read now the status:

```<code>string sqlquery = "SELECT KNR, WNR, status FROM Fertigung.dbo.Box" + name + "Status";
                SqlCommand com = new SqlCommand(sqlquery, con);
                SqlDataReader reader = com.ExecuteReader();
                while (reader.Read())
                {
                    KNR = reader["KNR"].ToString();
                    WNR = reader["WNR"].ToString();
                    status = reader["status"].ToString();
                    int k = KNR.Length;
                    int w = WNR.Length;
                    int s = status.Length;
                }
</code>```

Now when i read here the length from WNR_KNR1 is 10. And when i look at the string here there was added somae spaces to the string at the end. So when i write to the databse it's "working" and when i read it's "working   ". From where are this spaces coming and why. And how to not get them.
After reading from the db i'm doing an if query and yeah theres where i got the problem..

Title: SQL database is adding spaces to string

Body:
I have two c# programms. the first one is inserting data to my databse. and the second one is reading from there. Here i have specially the problem with one action. the first programm is writting a status to the db (it's a MSSQL btw.). I have three columns in the db which i need:

The code for writting to the databse:

                int k = WNR_KNR[1].Length;
                int w = WNR_KNR[0].Length;
                int s = status.Length;
                SqlConnection con = new SqlConnection(connectionstring);
                con.Open();
                string delete = "DELETE FROM Fertigung.dbo.Box" + boxnumber + "Status";
                SqlCommand commanddel = new SqlCommand(delete, con);
                commanddel.ExecuteNonQuery();
                string query = "INSERT INTO Fertigung.dbo.Box" + boxnumber + "Status (WNR,KNR,status) VALUES ('" + WNR_KNR[0] +"','" + WNR_KNR[1] +"','"+status+"')";
                SqlCommand cmd = new SqlCommand(query, con);
                cmd.ExecuteNonQuery();
                con.Close();

Now when i write the strings have the right length for example the WNR_KNR1 has a length of 7.

The code from the programm that read now the status:

string sqlquery = "SELECT KNR, WNR, status FROM Fertigung.dbo.Box" + name + "Status";
                SqlCommand com = new SqlCommand(sqlquery, con);
                SqlDataReader reader = com.ExecuteReader();
                while (reader.Read())
                {
                    KNR = reader["KNR"].ToString();
                    WNR = reader["WNR"].ToString();
                    status = reader["status"].ToString();
                    int k = KNR.Length;
                    int w = WNR.Length;
                    int s = status.Length;
                }

Now when i read here the length from WNR_KNR1 is 10. And when i look at the string here there was added somae spaces to the string at the end. So when i write to the databse it's "working" and when i read it's "working   ". From where are this spaces coming and why. And how to not get them.
After reading from the db i'm doing an if query and yeah theres where i got the problem..


问:
Node.js concurrency advise
Requesting if someone has ideas to share their insights on this.
I am using a third party library which internally does some network calls. For using that library I need to pass some variables which is used internally used by the library to set some global variables within its own functions. Now these variables which I am passing can be different for different business contexts from my side.

My confusion is that would there be a failure when two request having different business context (implies having different variables passed as parameters to be set globally by the library in its own local functions) cause failure.
As how overwriting to the global variables by two different requests cater for my scenarios

Requesting if someone has ideas to share their insights on this.
I am using a third party library which internally does some network calls. For using that library I need to pass some variables which is used internally used by the library to set some global variables within its own functions.

Now these variables which I am passing can be different for different business contexts from my side.
My confusion is that would there be a failure when two request having different business context ( implies having different variables passed as parameters to be set globally by the library in its own local functions) cause failure.
As how overwriting to the global variables by two different requests cater for my scenarios.

Title: Node.js concurrency advise


问:
Store a collection in MS Word
We have a requirement as the data should be stored in word itself after some research we got to know that we can store the data using variables in vba as shown in below code however i need to send the collection to that value  but the Value is not accepting the collection could any one any ideas

ActiveDocument.Variables.Add name:="GradeA", Value:="A"

ActiveDocument.Variables.Add name:="GradeB", Value:="B"

Title: Store a collection in MS Word


问:
ASP.NET MVC Bad Practices: Optional Submodel With Required Property (EF6 domain model)
I have the following finding received from Fortify on Demand:

ASP.NET MVC Bad Practices: Optional Submodel With Required Property.

I use Entity Framework 6 in my project.

Here is a sample example of the code snippet that received the finding:

```<code>public class EarningItem
{
   public virtual LookupType LookupType { get; set; }
}

public class LookupType
{
   public LookupType()
   {
      EmailTemplates = new List<EmailTemplate>();
   }

   [Required]
   [ForeignKey("Id")]
   public ICollection<EmailTemplate> EmailTemplates { get; set; }
}

public class EmailTemplate
{
   public EmailTemplate()
   {
      LookupTypes = new List<LookupType>();
   }

   public int Id { get; set; }
   public ICollection<LookupType> LookupTypes { get; set; }
}
</code>```

Here is Entity Type Configuration:

```<code>public class LookupTypeMap : EntityTypeConfiguration<LookupType>
{
   HasMany(g => g.EmailTemplates)
      .WithMany(c => c.LookupTypes)
}
</code>```

Can I remove [Required] attribute to get rid of this finding?

Body:
I have the following finding received from Fortify on Demand:

ASP.NET MVC Bad Practices: Optional Submodel With Required Property.

I use Entity Framework 6 in my project.

Here is a sample example of the code snippet that received the finding:

public class EarningItem
{
   public virtual LookupType LookupType { get; set; }
}

public class LookupType
{
   public LookupType()
   {
      EmailTemplates = new List<EmailTemplate>();
   }

   [Required]
   [ForeignKey("Id")]
   public ICollection<EmailTemplate> EmailTemplates { get; set; }
}

public class EmailTemplate
{
   public EmailTemplate()
   {
      LookupTypes = new List<LookupType>();
   }

   public int Id { get; set; }
   public ICollection<LookupType> LookupTypes { get; set; }
}

Here is Entity Type Configuration:

public class LookupTypeMap : EntityTypeConfiguration<LookupType>
{
   HasMany(g => g.EmailTemplates)
      .WithMany(c => c.LookupTypes)
}

Can I remove [Required] attribute to get rid of this finding?


问:
How do I define RESTful APIs for the below interview question?
In some countries, Company ABC's customers need to have ownership of phone numbers that they want to use as 'From Numbers' for sending messages or as 'caller IDs' for making voice calls in that country. There are two ways customers can achieve this:

Use numbers they rent from ABC for this

Use numbers they have rented elsewhere and get them 'whitelisted' with ABC
To 'whitelist customer numbers, ABC, needs to be sure about the following:

Customer is a legal business registered in the US with a valid registration number and proof

Customer has access to (and control over) the numbers being whitelisted
ABC's customers who will need to achieve the above includes 'resellers' who in turn sell ABC's offerings to other customers as part of their own offerings.
Define customer facing RESTful APIs which the customers can use to achieve the above objectives. The APIs need to be generic so that they can be expanded for other related / similar use cases as well.

This is an interview question. My approach was around having 4 APIs basically-

RENT OUT NUMBERS-

1.1 Get the set of available numbers

1.2 Rent the numbers

WHITELIST & SUBSCRIBE
2.1 Establish the legality of the customer
2.2 Whitelist the number


问:
Comma(,) issue in string in Java
I am using bootstrap multiselect and in that i have multiple string values and i am passing that list of string in formData in an ajax call and in backend Spring Boot Controller i am getting that value in

```<code>@RequestParam("selectedNames") List<String> selectedNames
</code>```

This is working fine for almost all scenarios but getting failed in scenario

("Eng,l's") -> This is single string  it contains , and ' special characters

For Example I selected three values in multiselect -

1- INDIA 2- AMERICA 3- Eng,l's

Now in Backend i am getting 4 values in selectedNames list parameter (INDIA,AMERICA,Eng,l's),

but i need only there values

Suggest me some ways to handle this specific scenario

This Code is working fine for values (AMERICA,INDIA,ENGLAND) but failing for  when i have comma in one of the selected names

```<code>function selectedNamesData() {
  let selectedNames = $("#selectedNames").val();
  let formData = new FormData();
  formData.append("selectedNames",selectedNames);
  $.ajax({
    type: "GET",
    url: "url",
    data: formData,
    success: function (data) {
      console.log(data);
    },
  });
}
</code>```

Title: Comma(,) issue in string in Java

Body:
I am using bootstrap multiselect and in that i have multiple string values and i am passing that list of string in formData in an ajax call and in backend Spring Boot Controller i am getting that value in

@RequestParam("selectedNames") List<String> selectedNames

This is working fine for almost all scenarios but getting failed in scenario

("Eng,l's") -> This is single string  it contains , and ' special characters

For Example I selected three values in multiselect -

1- INDIA 2- AMERICA 3- Eng,l's

Now in Backend i am getting 4 values in selectedNames list parameter (INDIA,AMERICA,Eng,l's),

but i need only there values

Suggest me some ways to handle this specific scenario

This Code is working fine for values (AMERICA,INDIA,ENGLAND) but failing for  when i have comma in one of the selected names

function selectedNamesData() {
  let selectedNames = $("#selectedNames").val();
  let formData = new FormData();
  formData.append("selectedNames",selectedNames);
  $.ajax({
    type: "GET",
    url: "url",
    data: formData,
    success: function (data) {
      console.log(data);
    },
  });
}


问:
Generate separate css file for each entrypoint in Vite
So currently I have my library split as 2 entrypoints, so in Vite config I'm doing this:

```<code>build: {
    lib: {
      entry: [resolve(__dirname, 'src/entry1.ts'), resolve(__dirname, 'src/entry2.ts')],
      name: 'LibraryName',
      fileName: '[name]',
    },
  },
</code>```

This causes Vite to generate 2 output files - entry1.js and entry2.js, but only single css file - style.css

How can I make Vite generate entry1.css and entry2.css for each entrypoint?

Body:
So currently I have my library split as 2 entrypoints, so in Vite config I'm doing this:

build: {
    lib: {
      entry: [resolve(__dirname, 'src/entry1.ts'), resolve(__dirname, 'src/entry2.ts')],
      name: 'LibraryName',
      fileName: '[name]',
    },
  },

This causes Vite to generate 2 output files - entry1.js and entry2.js, but only single css file - style.css

How can I make Vite generate entry1.css and entry2.css for each entrypoint?


问:
how to change title bar colour in Non client area for windows forms c#
How to change the colour of Non client area in windows form??

I tried this but it doesn't look good as it is changing top title bar colour using paint but two side strip are as it is. I want to change the colour of whole Non client area in windows form

```<code>[DllImport("user32.dll")]
static extern int ReleaseDC(IntPtr hWnd, IntPtr hDc);

[DllImport("User32.dll")]
private static extern IntPtr GetWindowDC(IntPtr hWnd);

protected override void WndProc(ref Message m)
{
    base.WndProc(ref m);
    const int WM_NCPAINT = 0x85;
    if (m.Msg == WM_NCPAINT)
    {
        IntPtr hdc = GetWindowDC(m.HWnd);
        if ((int)hdc != 0)
        {
            Graphics g = Graphics.FromHdc(hdc);
            g.FillRectangle(Brushes.Green, new Rectangle(0, 0, 4800, 30));
            g.Flush();
            ReleaseDC(m.HWnd, hdc);
        }
    }
}
</code>```

Body:
How to change the colour of Non client area in windows form??

I tried this but it doesn't look good as it is changing top title bar colour using paint but two side strip are as it is. I want to change the colour of whole Non client area in windows form

[DllImport("user32.dll")]
static extern int ReleaseDC(IntPtr hWnd, IntPtr hDc);

[DllImport("User32.dll")]
private static extern IntPtr GetWindowDC(IntPtr hWnd);

protected override void WndProc(ref Message m)
{
    base.WndProc(ref m);
    const int WM_NCPAINT = 0x85;
    if (m.Msg == WM_NCPAINT)
    {
        IntPtr hdc = GetWindowDC(m.HWnd);
        if ((int)hdc != 0)
        {
            Graphics g = Graphics.FromHdc(hdc);
            g.FillRectangle(Brushes.Green, new Rectangle(0, 0, 4800, 30));
            g.Flush();
            ReleaseDC(m.HWnd, hdc);
        }
    }
}


问:
Format requestBody not to be sent?
I'have this api and i want to send requestBody:

```<code>public void sendSMS(SMS sms) throws IOException {
    HttpPost post = new HttpPost(smsEndpoint);
    String auth = smsUsername + ":" + smsPassword;
    // Encode the user-password pair string in Base64
    byte[] encodedAuth = org.apache.commons.codec.binary.Base64.encodeBase64(
            auth.getBytes(StandardCharsets.ISO_8859_1));
    String authHeader = "Basic " + new String(encodedAuth);
    post.setHeader(HttpHeaders.AUTHORIZATION, authHeader);
    post.setHeader("Content-type", "application/json");
    ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
    StringEntity params = new StringEntity(ow.writeValueAsString(sms));
    post.setEntity(params);
    try (CloseableHttpClient httpClient = HttpClients.createDefault();
            CloseableHttpResponse response = httpClient.execute(post)) {
        LOGGER.log(Level.INFO, () -> "the response: " + response.toString());
    }
}
</code>```

when I want I try to send this format :

```<code>StringEntity params = new StringEntity("{\"endpoints\":[\"32495122345\"],\"text\":\"This is
Great !\"}");
</code>```

It is succeded but when i send this format json converted to string not succeded.

How to resolve the problem? thanks in advance.

Title: Format requestBody not to be sent?

Body:
I'have this api and i want to send requestBody:

public void sendSMS(SMS sms) throws IOException {
    HttpPost post = new HttpPost(smsEndpoint);
    String auth = smsUsername + ":" + smsPassword;
    // Encode the user-password pair string in Base64
    byte[] encodedAuth = org.apache.commons.codec.binary.Base64.encodeBase64(
            auth.getBytes(StandardCharsets.ISO_8859_1));
    String authHeader = "Basic " + new String(encodedAuth);
    post.setHeader(HttpHeaders.AUTHORIZATION, authHeader);
    post.setHeader("Content-type", "application/json");
    ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
    StringEntity params = new StringEntity(ow.writeValueAsString(sms));
    post.setEntity(params);
    try (CloseableHttpClient httpClient = HttpClients.createDefault();
            CloseableHttpResponse response = httpClient.execute(post)) {
        LOGGER.log(Level.INFO, () -> "the response: " + response.toString());
    }
}

when I want I try to send this format :

StringEntity params = new StringEntity("{\"endpoints\":[\"32495122345\"],\"text\":\"This is
Great !\"}");

It is succeded but when i send this format json converted to string not succeded.

How to resolve the problem? thanks in advance.


问:
get a dictionary variable to use it in the same dictionary to get the file extension django python
I am creating a folder tree to display it. For this, I need to get the file extension. Before the folder, we need to enter a password.

views.py

def www_telechargements(request):
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = CatalogueForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            # process the data in form.cleaned_data as required
            # ...
            # redirect to a new URL:
            context = {
                'mdp': form.cleaned_data["response_mdp"]
            }
            good_answer = ("\n".join(context.values()))
            if good_answer == "Vitasolar1234":
                template = loader.get_template('telechargement-response.html')
                arborescence_path = os.path.join(BASE_DIR, "WWW/static/arborescence")
                arborescence_content = os.listdir(arborescence_path)
                response_gabarit = {
                    'answer': True,
                    'dossier': arborescence_content,
                    'type': pathlib.Path(os.listdir(response_gabarit('dossier')).suffix)#c'est ici que je veux récupérer le string de 'dossier'
                    }
                print(os.listdir(arborescence_path))
                return HttpResponse(template.render(response_gabarit, request))
            else:
                response_gabarit = {'answer': False}
                template = loader.get_template('telechargement-response.html')
                return HttpResponse(template.render(response_gabarit, request))

        # if a GET (or any other method) we'll create a blank form
    else:
        form = CatalogueForm()

    return render(request, 'telechargements.html', {'form': form})
```
<p>This is my mistake:</p>
```'type': pathlib.Path(os.listdir(response_gabarit('dossier')).suffix)
```
<p>And it throws the below error:</p>
```UnboundLocalError: local variable 'response_gabarit' referenced before assignment
```

I would like to get the string 'dossier' but it is not possible;
I understand my mistake but I have no idea how to solve this problem

I tried to use my content_tree variable directly but it's a list and my method absolutely wants a string.

Body:
I am creating a folder tree to display it. For this, I need to get the file extension. Before the folder, we need to enter a password.

views.py

def www_telechargements(request):
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = CatalogueForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            # process the data in form.cleaned_data as required
            # ...
            # redirect to a new URL:
            context = {
                'mdp': form.cleaned_data["response_mdp"]
            }
            good_answer = ("\n".join(context.values()))
            if good_answer == "Vitasolar1234":
                template = loader.get_template('telechargement-response.html')
                arborescence_path = os.path.join(BASE_DIR, "WWW/static/arborescence")
                arborescence_content = os.listdir(arborescence_path)
                response_gabarit = {
                    'answer': True,
                    'dossier': arborescence_content,
                    'type': pathlib.Path(os.listdir(response_gabarit('dossier')).suffix)#c'est ici que je veux récupérer le string de 'dossier'
                    }
                print(os.listdir(arborescence_path))
                return HttpResponse(template.render(response_gabarit, request))
            else:
                response_gabarit = {'answer': False}
                template = loader.get_template('telechargement-response.html')
                return HttpResponse(template.render(response_gabarit, request))

        # if a GET (or any other method) we'll create a blank form
    else:
        form = CatalogueForm()

    return render(request, 'telechargements.html', {'form': form})

This is my mistake:

'type': pathlib.Path(os.listdir(response_gabarit('dossier')).suffix)

And it throws the below error:

UnboundLocalError: local variable 'response_gabarit' referenced before assignment

I would like to get the string 'dossier' but it is not possible;
I understand my mistake but I have no idea how to solve this problem

I tried to use my content_tree variable directly but it's a list and my method absolutely wants a string.


问:
Exclude artifacts from assemble task
In order to use results of one project's task in another project I created a consumable configuration in one project and use this configuration in another project. Although this is the origins of the issue, it boils down to the simple java build file with a configuration:

```<code>plugins {
    id 'java'
}
task createChecksums(type: Task) {
}
configurations {
    release {
        canBeConsumed = true
        canBeResolved = false
    }
}
artifacts {
    release(file("someFile")) {
        builtBy createChecksums
    }
}
</code>```

When I run gradlew assemble it also runs createChecksums task. It seems to me that the assemble task builds all artifacts.

Is there any way to configure configurations in such a way that artifacts are only built when needed by another project which consumes the configuration?

Title: Exclude artifacts from assemble task

Body:
In order to use results of one project's task in another project I created a consumable configuration in one project and use this configuration in another project. Although this is the origins of the issue, it boils down to the simple java build file with a configuration:

plugins {
    id 'java'
}
task createChecksums(type: Task) {
}
configurations {
    release {
        canBeConsumed = true
        canBeResolved = false
    }
}
artifacts {
    release(file("someFile")) {
        builtBy createChecksums
    }
}

When I run gradlew assemble it also runs createChecksums task. It seems to me that the assemble task builds all artifacts.

Is there any way to configure configurations in such a way that artifacts are only built when needed by another project which consumes the configuration?


问:
How to pass values to shell script executed using the SSH.NET library in C#?
Is it possible to use the SSH.NET library to run a script that is saved on the device, that I would make the SSH connection with?

My script would need me to input some variables. Is that also possible through the C# code?

My code here lets me connect to the device and run commands. I just don't know how to make it so that I can interact with the script.

```<code>// Execute a (SHELL) Command - prepare upload directory
using (var sshclient = new SshClient(ConnNfo))
{
    sshclient.Connect();
    using (var cmd = sshclient.CreateCommand("cd /data/scripts/ && sh funk1.sh"))
    {
        cmd.Execute();
        Console.WriteLine("Command>" + cmd.CommandText);
        Console.WriteLine("Return Value = {0}", cmd.ExitStatus);
    }
    sshclient.Disconnect();
}
</code>```

Body:
Is it possible to use the SSH.NET library to run a script that is saved on the device, that I would make the SSH connection with?

My script would need me to input some variables. Is that also possible through the C# code?

My code here lets me connect to the device and run commands. I just don't know how to make it so that I can interact with the script.

// Execute a (SHELL) Command - prepare upload directory
using (var sshclient = new SshClient(ConnNfo))
{
    sshclient.Connect();
    using (var cmd = sshclient.CreateCommand("cd /data/scripts/ && sh funk1.sh"))
    {
        cmd.Execute();
        Console.WriteLine("Command>" + cmd.CommandText);
        Console.WriteLine("Return Value = {0}", cmd.ExitStatus);
    }
    sshclient.Disconnect();
}


问:
R_X86_64_PC32 relocation when using a const extern map
I need to use a map across multiple files in my project.
I declared the map in myFile.h the following way:

first, the relevant enum:

```<code>using dType = enum { a = 0, b = 1, c = 2, d = 3, e = 4 };
</code>```

then the map definition:

```<code>const extern std::map<std::string, dType> myMap;
</code>```

and populated it in myFile.c the following way:

```<code>const std::map<std::string, dType> myMap  = {
        {"a", a},
        {"b", b},
        {"c", c},
        {"d", d}};
</code>```

Everywhere I use the map, I include myFile.h and call it like that:

```<code>myMap.at(_d)
</code>```

Where _d is an std::string

I'm getting the following error (with a different offset) for every usage in each file:

R_X86_64_PC32 relocation at offset 0x7f0 against symbol `myMap' can not be used; recompile with -fPIC

I can't use this flag and don't get what I'm doing wrong - I thought that this is the way to do it.

Body:
I need to use a map across multiple files in my project.
I declared the map in myFile.h the following way:

first, the relevant enum:

using dType = enum { a = 0, b = 1, c = 2, d = 3, e = 4 };

then the map definition:

const extern std::map<std::string, dType> myMap;

and populated it in myFile.c the following way:

const std::map<std::string, dType> myMap  = {
        {"a", a},
        {"b", b},
        {"c", c},
        {"d", d}};

Everywhere I use the map, I include myFile.h and call it like that:

myMap.at(_d)

Where _d is an std::string

I'm getting the following error (with a different offset) for every usage in each file:

R_X86_64_PC32 relocation at offset 0x7f0 against symbol `myMap' can not be used; recompile with -fPIC

I can't use this flag and don't get what I'm doing wrong - I thought that this is the way to do it.


问:
cannot compare dates for some reason
I'm writing the script to check validity of tickets and canno't compare validity of ticket using Date. As I'm reading documentation Date object should be able to be compared to another Date object.
Here's an example of code you can use to test.

```<code>const today = new Date()
const date = '12/15/2022, 5:20:00 PM'
console.log(today.toLocaleString({
    timeZone: "Europe/Kyiv",
  }))
console.log(date)
console.log(date >= today)
//it should return **false** if ticket is expired and **true** if it's still valid (which is in this case)
</code>```

Title: cannot compare dates for some reason

Body:
I'm writing the script to check validity of tickets and canno't compare validity of ticket using Date. As I'm reading documentation Date object should be able to be compared to another Date object.
Here's an example of code you can use to test.

const today = new Date()
const date = '12/15/2022, 5:20:00 PM'
console.log(today.toLocaleString({
    timeZone: "Europe/Kyiv",
  }))
console.log(date)
console.log(date >= today)
//it should return **false** if ticket is expired and **true** if it's still valid (which is in this case)


问:
Trying to get data by running Import Costs ESS Job request using ERP Integration Service in soap ui
I'm trying to run the Import Costs job in soap ui using ERP Integration Service. The job status is showing Succeeded in scheduled process but data is not reflecting in front end for the corresponding Expenditure Batch.

Here is the sample payload for submitESSJobRequest, I'm trying to give as input.

```<code><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/">
   <soapenv:Header/>
   <soapenv:Body>
      <typ:submitESSJobRequest>
         <typ:jobPackageName>/oracle/apps/ess/projects/costing/transactions/onestop/</typ:jobPackageName>
         <typ:jobDefinitionName>ImportAndProcessTxnsJob</typ:jobDefinitionName>
         <!--Zero or more repetitions:-->
         <typ:paramList>organization_number for a project</typ:paramList>
         <typ:paramList>organization_id for a project</typ:paramList>
         <typ:paramList>IMPORT_AND_PROCESS</typ:paramList>
         <typ:paramList>ALL</typ:paramList>
        <typ:paramList>#NULL</typ:paramList>
        <typ:paramList>TRANSACTION_SOURCE_ID</typ:paramList>
         <typ:paramList>#NULL</typ:paramList>
         <typ:paramList>expenditure batch number</typ:paramList>
         <typ:paramList>#NULL</typ:paramList>
         <typ:paramList>#NULL</typ:paramList>
        <typ:paramList>#NULL</typ:paramList>
        <typ:paramList>#NULL</typ:paramList>
        <typ:paramList>ORA_PJC_SUMMARY</typ:paramList>
      </typ:submitESSJobRequest>
   </soapenv:Body>
</soapenv:Envelope>
</code>```

Any suggestions will be appreciated. Thank You.

Body:
I'm trying to run the Import Costs job in soap ui using ERP Integration Service. The job status is showing Succeeded in scheduled process but data is not reflecting in front end for the corresponding Expenditure Batch.

Here is the sample payload for submitESSJobRequest, I'm trying to give as input.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/">
   <soapenv:Header/>
   <soapenv:Body>
      <typ:submitESSJobRequest>
         <typ:jobPackageName>/oracle/apps/ess/projects/costing/transactions/onestop/</typ:jobPackageName>
         <typ:jobDefinitionName>ImportAndProcessTxnsJob</typ:jobDefinitionName>

         <typ:paramList>organization_number for a project</typ:paramList>
         <typ:paramList>organization_id for a project</typ:paramList>
         <typ:paramList>IMPORT_AND_PROCESS</typ:paramList>
         <typ:paramList>ALL</typ:paramList>
        <typ:paramList>#NULL</typ:paramList>
        <typ:paramList>TRANSACTION_SOURCE_ID</typ:paramList>
         <typ:paramList>#NULL</typ:paramList>
         <typ:paramList>expenditure batch number</typ:paramList>
         <typ:paramList>#NULL</typ:paramList>
         <typ:paramList>#NULL</typ:paramList>
        <typ:paramList>#NULL</typ:paramList>
        <typ:paramList>#NULL</typ:paramList>
        <typ:paramList>ORA_PJC_SUMMARY</typ:paramList>
      </typ:submitESSJobRequest>
   </soapenv:Body>
</soapenv:Envelope>

Any suggestions will be appreciated. Thank You.


问:
MongoDB bulkwrite with upsert option is taking more than a minute for 100k+ records. Is it possible to improve?
I have read the following two questions but did not see a satisfactory solution or suggestion:

Performance degrade with Mongo when using bulkwrite with upsert

Mongodb/Mongoose bulkwrite(upsert) performance issues

I have an API that will be receiving ~80k objects every 5 - 6 seconds.

These objects will need to be inserted if they do not exist and updated if they do exist.

The collection has a unique index (of type asc 1), which I use in the filter expression below.

Upserting 100k documents using the code below takes more than a minute, which is too long for my requirement (instantiating the objects takes less than a second).

```<code>MongoClient _mongoClient = new MongoClient("connection string");

IMongoDatabase _hotsauceOdds = _mongoClient.GetDatabase("DatabaseName");

var collection = _hotsauceOdds.GetCollection<Person>("TestMongo");

List<Person> peeps = new List<Person>();

for (int i = 0; i < 100000; i++)
{
    peeps.Add(new Person { Age = i, Name = Guid.NewGuid().ToString() });
}

var models = peeps.Select(item => new ReplaceOneModel<Person>(new ExpressionFilterDefinition<Person>(doc => doc.Name == item.Name), item) { IsUpsert = true });

await collection.BulkWriteAsync(models);
</code>```

I am testing this on the free tier of mongo atlas.

Is it possible to make this operation run more quickly, or is this as good as it gets for mongodb?

Body:
I have read the following two questions but did not see a satisfactory solution or suggestion:

Performance degrade with Mongo when using bulkwrite with upsert

Mongodb/Mongoose bulkwrite(upsert) performance issues

I have an API that will be receiving ~80k objects every 5 - 6 seconds.

These objects will need to be inserted if they do not exist and updated if they do exist.

The collection has a unique index (of type asc 1), which I use in the filter expression below.

Upserting 100k documents using the code below takes more than a minute, which is too long for my requirement (instantiating the objects takes less than a second).

MongoClient _mongoClient = new MongoClient("connection string");

IMongoDatabase _hotsauceOdds = _mongoClient.GetDatabase("DatabaseName");

var collection = _hotsauceOdds.GetCollection<Person>("TestMongo");

List<Person> peeps = new List<Person>();

for (int i = 0; i < 100000; i++)
{
    peeps.Add(new Person { Age = i, Name = Guid.NewGuid().ToString() });
}

var models = peeps.Select(item => new ReplaceOneModel<Person>(new ExpressionFilterDefinition<Person>(doc => doc.Name == item.Name), item) { IsUpsert = true });

await collection.BulkWriteAsync(models);

I am testing this on the free tier of mongo atlas.

Is it possible to make this operation run more quickly, or is this as good as it gets for mongodb?


问:
How do you access stored cookies in Cefsharp Wpf after saving them?
As far as to my understanding to save cookies you do the following

```<code>            var settings = new CefSettings()
            {
                CachePath = SomePath
            };

            CefSharp.Cef.Initialize(settings);

</code>```

I've looked around to see how you'd then access the cookies, but haven't found any solutions.

My Chromium Web Browser class is in the xaml code on my main window class. How do I access stored cookies in this way?

Body:
As far as to my understanding to save cookies you do the following

            var settings = new CefSettings()
            {
                CachePath = SomePath
            };

            CefSharp.Cef.Initialize(settings);

I've looked around to see how you'd then access the cookies, but haven't found any solutions.

My Chromium Web Browser class is in the xaml code on my main window class. How do I access stored cookies in this way?


问:
RuntimeError: Failed to initialize Python.Runtime.dll
I understand that python v3.6.8 is not supported Python.Runtime.TypeOffset36. However, I have no idea what should I do..

Are there any solution even using v3.6.8?

Error

```<code>2022-12-15 22:07:55.381047: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
Failed to initialize pythonnet: System.NotSupportedException: Python ABI v3.6.8 is not supported: Searching for Python.Runtime.TypeOffset36, found TypeOffset,TypeOffset310,TypeOffset37,TypeOffset38,TypeOffset39.
場所 Python.Runtime.Native.ABI.Initialize(Version version)
場所 Python.Runtime.Runtime.Initialize(Boolean initSigs)
場所 Python.Runtime.PythonEngine.Initialize(IEnumerable`1 args, Boolean setSysArgv, Boolean initSigs)
場所 Python.Runtime.PythonEngine.InitExt()
場所 Python.Runtime.Loader.Initialize(IntPtr data, Int32 size)
場所 Python.Runtime.Native.ABI.Initialize(Version version)
場所 Python.Runtime.Runtime.Initialize(Boolean initSigs)
場所 Python.Runtime.PythonEngine.Initialize(IEnumerable`1 args, Boolean setSysArgv, Boolean initSigs)
場所 Python.Runtime.PythonEngine.InitExt()
場所 Python.Runtime.Loader.Initialize(IntPtr data, Int32 size)Traceback (most recent call last):
***abbreviation***
 \AppData\Local\Programs\Python\Python36\lib\site-packages\pythonnet\__init__.py", line 144, in load raise RuntimeError("Failed to initialize Python.Runtime.dll")
</code>```

RuntimeError: Failed to initialize Python.Runtime.dll

Body:
I understand that python v3.6.8 is not supported Python.Runtime.TypeOffset36. However, I have no idea what should I do..

Are there any solution even using v3.6.8?

Error

2022-12-15 22:07:55.381047: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
Failed to initialize pythonnet: System.NotSupportedException: Python ABI v3.6.8 is not supported: Searching for Python.Runtime.TypeOffset36, found TypeOffset,TypeOffset310,TypeOffset37,TypeOffset38,TypeOffset39.
場所 Python.Runtime.Native.ABI.Initialize(Version version)
場所 Python.Runtime.Runtime.Initialize(Boolean initSigs)
場所 Python.Runtime.PythonEngine.Initialize(IEnumerable`1 args, Boolean setSysArgv, Boolean initSigs)
場所 Python.Runtime.PythonEngine.InitExt()
場所 Python.Runtime.Loader.Initialize(IntPtr data, Int32 size)
場所 Python.Runtime.Native.ABI.Initialize(Version version)
場所 Python.Runtime.Runtime.Initialize(Boolean initSigs)
場所 Python.Runtime.PythonEngine.Initialize(IEnumerable`1 args, Boolean setSysArgv, Boolean initSigs)
場所 Python.Runtime.PythonEngine.InitExt()
場所 Python.Runtime.Loader.Initialize(IntPtr data, Int32 size)Traceback (most recent call last):
***abbreviation***
 \AppData\Local\Programs\Python\Python36\lib\site-packages\pythonnet\__init__.py", line 144, in load raise RuntimeError("Failed to initialize Python.Runtime.dll")

RuntimeError: Failed to initialize Python.Runtime.dll


问:
Is there a way to group children with a selector in css
for example:

```<code>pre > .class1,
pre > .class2,
pre > .class3,
pre > .class4 {
        white-space: pre-wrap; !important
}
</code>```

Is there a way to do:

```<code>pre > .class1, .class2, .class3, .class4 {
 ...
}
</code>```

Body:
for example:

pre > .class1,
pre > .class2,
pre > .class3,
pre > .class4 {
        white-space: pre-wrap; !important
}

Is there a way to do:

pre > .class1, .class2, .class3, .class4 {
 ...
}


问:
spring data projection containing a nested superclass
I have two classes (cat/dog) extending one superclass (animals) and one class owner that has a relation to either a dog or a cat

@Data
@Entity
@Table(name = "animals")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING)
public abstract class Animal {
}

@Data
@Entity
@DiscriminatorValue("cat")
public class Cat extends Animal {
}

@Data
@Entity
@DiscriminatorValue("dog")
public class Dog extends Animal {
}

@Data
@Entity
public class Owner {
    @ManyToOne
    @JoinColumn(name = "animal_id", insertable = false, nullable = false, updatable = false)
    private Animal<?> animal;
}
```
<p>Each of them have a projection</p>
<pre class="lang-java prettyprint-override"><code>@Projection(name = "light", types = Animal.class)
public interface LightAnimal {
}
@Projection(name = "light", types = Cat.class)
public interface LightCat extends LightAnimal {
}
@Projection(name = "light", types = Dog.class)
public interface LightDog extends LightAnimal {
}
</code>```

I try to reference the Animal inside another projection

@Projection(name = "light", types = Owner.class)
public interface LightOwner {
    LightAnimal getAnimal();
}
```
<p>I would have hoped that the animal object would have been properly deserialized either into a dog or a cat when calling the owner with the LightOwner projection, and thus have attributes defined in child projection but it only have the ones defined the parent projection</p>
<p>I tried to add JsonTypeInfo annotation on LightAnimal projection but had the following error:</p>
```
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Type id handling not implemented for type org.springframework.data.projection.TargetAware (by serializer of type org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionSerializer) (through reference chain: org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionResource\["content"\]-\>com.sun.proxy.$Proxy307\["animal"\])
at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1300) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.JsonSerializer.serializeWithType(JsonSerializer.java:160) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:730) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at ch.mfrey.jackson.antpathfilter.AntPathPropertyFilter.serializeAsField(AntPathPropertyFilter.java:205) \~\[jackson-antpathfilter-1.0.2.jar:na\]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFieldsFiltered(BeanSerializerBase.java:825) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ser.impl.UnwrappingBeanSerializer.serialize(UnwrappingBeanSerializer.java:136) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionResourceContentSerializer.serialize(PersistentEntityJackson2Module.java:794) \~\[spring-data-rest-webmvc-3.6.6.jar:3.6.6\]
at org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionResourceContentSerializer.serialize(PersistentEntityJackson2Module.java:767) \~\[spring-data-rest-webmvc-3.6.6.jar:3.6.6\]
at org.springframework.hateoas.EntityModel$MapSuppressingUnwrappingSerializer.serialize(EntityModel.java:246) \~\[spring-hateoas-1.4.4.jar:1.4.4\]
at com.fasterxml.jackson.databind.ser.impl.UnwrappingBeanPropertyWriter.serializeAsField(UnwrappingBeanPropertyWriter.java:127) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.SerializerProvider.defaultSerializeValue(SerializerProvider.java:1142) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$PersistentEntityResourceSerializer.serialize(PersistentEntityJackson2Module.java:193) \~\[spring-data-rest-webmvc-3.6.6.jar:3.6.6\]
at org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$PersistentEntityResourceSerializer.serialize(PersistentEntityJackson2Module.java:153) \~\[spring-data-rest-webmvc-3.6.6.jar:3.6.6\]
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.\_serialize(DefaultSerializerProvider.java:480) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:219) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler.handleReturnValue(RepresentationModelProcessorHandlerMethodReturnValueHandler.java:134) \~\[spring-hateoas-1.4.4.jar:1.4.4\]
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1070) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) \~\[tomcat-embed-core-9.0.65.jar:4.0.FR\]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) \~\[tomcat-embed-core-9.0.65.jar:4.0.FR\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) \~\[tomcat-embed-websocket-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) \~\[spring-boot-actuator-2.6.11.jar:2.6.11\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at java.base/java.lang.Thread.run(Thread.java:829) \~\[na:na\]
```
``````

Body:
I have two classes (cat/dog) extending one superclass (animals) and one class owner that has a relation to either a dog or a cat

@Data
@Entity
@Table(name = "animals")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING)
public abstract class Animal {
}

@Data
@Entity
@DiscriminatorValue("cat")
public class Cat extends Animal {
}

@Data
@Entity
@DiscriminatorValue("dog")
public class Dog extends Animal {
}

@Data
@Entity
public class Owner {
    @ManyToOne
    @JoinColumn(name = "animal_id", insertable = false, nullable = false, updatable = false)
    private Animal<?> animal;
}

Each of them have a projection

@Projection(name = "light", types = Animal.class)
public interface LightAnimal {
}
@Projection(name = "light", types = Cat.class)
public interface LightCat extends LightAnimal {
}
@Projection(name = "light", types = Dog.class)
public interface LightDog extends LightAnimal {
}

I try to reference the Animal inside another projection

@Projection(name = "light", types = Owner.class)
public interface LightOwner {
    LightAnimal getAnimal();
}

I would have hoped that the animal object would have been properly deserialized either into a dog or a cat when calling the owner with the LightOwner projection, and thus have attributes defined in child projection but it only have the ones defined the parent projection

I tried to add JsonTypeInfo annotation on LightAnimal projection but had the following error:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Type id handling not implemented for type org.springframework.data.projection.TargetAware (by serializer of type org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionSerializer) (through reference chain: org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionResource\["content"\]-\>com.sun.proxy.$Proxy307\["animal"\])
at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1300) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.JsonSerializer.serializeWithType(JsonSerializer.java:160) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:730) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at ch.mfrey.jackson.antpathfilter.AntPathPropertyFilter.serializeAsField(AntPathPropertyFilter.java:205) \~\[jackson-antpathfilter-1.0.2.jar:na\]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFieldsFiltered(BeanSerializerBase.java:825) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ser.impl.UnwrappingBeanSerializer.serialize(UnwrappingBeanSerializer.java:136) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionResourceContentSerializer.serialize(PersistentEntityJackson2Module.java:794) \~\[spring-data-rest-webmvc-3.6.6.jar:3.6.6\]
at org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionResourceContentSerializer.serialize(PersistentEntityJackson2Module.java:767) \~\[spring-data-rest-webmvc-3.6.6.jar:3.6.6\]
at org.springframework.hateoas.EntityModel$MapSuppressingUnwrappingSerializer.serialize(EntityModel.java:246) \~\[spring-hateoas-1.4.4.jar:1.4.4\]
at com.fasterxml.jackson.databind.ser.impl.UnwrappingBeanPropertyWriter.serializeAsField(UnwrappingBeanPropertyWriter.java:127) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.SerializerProvider.defaultSerializeValue(SerializerProvider.java:1142) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$PersistentEntityResourceSerializer.serialize(PersistentEntityJackson2Module.java:193) \~\[spring-data-rest-webmvc-3.6.6.jar:3.6.6\]
at org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$PersistentEntityResourceSerializer.serialize(PersistentEntityJackson2Module.java:153) \~\[spring-data-rest-webmvc-3.6.6.jar:3.6.6\]
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.\_serialize(DefaultSerializerProvider.java:480) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007) \~\[jackson-databind-2.13.3.jar:2.13.3\]
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:219) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.hateoas.server.mvc.RepresentationModelProcessorHandlerMethodReturnValueHandler.handleReturnValue(RepresentationModelProcessorHandlerMethodReturnValueHandler.java:134) \~\[spring-hateoas-1.4.4.jar:1.4.4\]
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1070) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) \~\[tomcat-embed-core-9.0.65.jar:4.0.FR\]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) \~\[spring-webmvc-5.3.22.jar:5.3.22\]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) \~\[tomcat-embed-core-9.0.65.jar:4.0.FR\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) \~\[tomcat-embed-websocket-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) \~\[spring-security-web-5.6.7.jar:5.6.7\]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) \~\[spring-boot-actuator-2.6.11.jar:2.6.11\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) \~\[spring-web-5.3.22.jar:5.3.22\]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) \~\[tomcat-embed-core-9.0.65.jar:9.0.65\]
at java.base/java.lang.Thread.run(Thread.java:829) \~\[na:na\]


问:
The following dependencies do not satisfy the required version: project ':charset_converter' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50
This is the build.gradle with kotlin 1.7.0.

```<code>buildscript {
    ext.kotlin_version = '1.7.20'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.3.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.14'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}
rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

</code>```

Please help me! I don't know what to do.I tried some solutions by searching on google but none of them solved my problem.

Please help me! I don't know what to do.

Body:
This is the build.gradle with kotlin 1.7.0.

buildscript {
    ext.kotlin_version = '1.7.20'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.3.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.14'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}
rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Please help me! I don't know what to do.I tried some solutions by searching on google but none of them solved my problem.

Please help me! I don't know what to do.