apache / netbeans

Apache NetBeans
https://netbeans.apache.org/
Apache License 2.0
2.65k stars 851 forks source link

java.lang.AssertionError: isSubtype UNKNOWN while analyzing #3751

Closed barulheira closed 3 months ago

barulheira commented 2 years ago

Apache NetBeans version

Apache NetBeans 13

What happened

Opening a regular Java file in a Maven project. Notification shows up, and syntax highlighting doesn't work at all.

How to reproduce

Opening a regular Java file in a Maven project. Not every file. Just some files. Maybe you cannot reproduce it. That's why we've got stack traces. Right?

Did this work correctly in an earlier version?

Apache NetBeans 12.6

Operating System

FreeBSD 13.0-RELEASE amd64

JDK

OpenJDK Runtime Environment (build 17.0.2+8-1)

Apache NetBeans packaging

Apache NetBeans binary zip

Anything else

It happens always. Dump follows.

package br.com.intersys.systextil.batch.mgto;

import br.com.intersys.systextil.batch.base.BaseThread;
import br.com.intersys.systextil.connection.AppConnection;
import br.com.intersys.systextil.global.TagException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import systextil.magento.dao.ProdutoEstoqueDAO;
import systextil.magento.dto.ProdutoEstoqueDTO;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import java.io.IOException;
import java.util.Objects;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.codehaus.jackson.map.ObjectMapper;
import systextil.magento.dto.AdditionalAttributes;
import systextil.magento.dto.CriaAtualizaSku;
import systextil.magento.dto.QtdeEstoqueDTO;
import systextil.magento.dto.SkuLink;
import systextil.magento.dto.Sku;
import systextil.magento.dto.SkuLinkJson;
import systextil.magento.dto.StockUpdate;

public class mgto_f001 extends BaseThread {

    //final String BASE_URL = "http://gatabakana.convertr.com.br"; //TESTE
    final String BASE_URL = "https://www.gatabakana.com.br";  //PRODUCAO

    @Override
    protected void processarBatch() throws TagException{               

        String urlMagento = "";
        String username = "";
        String apiKey = "";

        AppConnection connGetCredentials = new AppConnection(conn);
        connGetCredentials.setQuery("SELECT mgto_002.url, " +
                                           "mgto_002.usuario, " +
                                           "mgto_002.api_key " +
                                    "FROM mgto_002 " +
                                    "WHERE rownum = 1");
        connGetCredentials.executeQuery();
        if(connGetCredentials.next()) {
            urlMagento = connGetCredentials.getString("url");
            username = connGetCredentials.getString("usuario");
            apiKey = connGetCredentials.getString("api_key");
        }
        connGetCredentials.close();

        ObjectMapper mapper = new ObjectMapper();
        Client client = Client.create();
        WebResource webResource = client.resource(BASE_URL+"/convertr-integrator/stock/getall");
        ClientResponse response;
        try {
            response = webResource.header("username", username).header("apiKey", apiKey).accept("application/json")
                   .get(ClientResponse.class);
        } catch (Exception ex) {
            throw new TagException("ATENÇÃO! Não foi possível se conectar com a API e consultar os estoques. \n"
                    + "Rota: 'stock/getall'\n"
                    + "Erro: " + ex.getMessage());
        }

        String body = response.getEntity(String.class);

        QtdeEstoqueDTO[] qtdeEstoque = {};
        try {
            qtdeEstoque = mapper.readValue(body, QtdeEstoqueDTO[].class);
        } catch(Exception ex) {
            throw new TagException("ATENÇÃO! Ocorreu um erro no processo ao consultar o estoque na API externa. " + ex.getMessage());
        }

        webResource = client.resource(BASE_URL+"/convertr-integrator/product/getall?with_imagescount&with_disabled");

        try {
            response = webResource.header("username", username).header("apiKey", apiKey). accept("application/json")
               .get(ClientResponse.class);
        } catch (Exception ex) {
            throw new TagException("ATENÇÃO! Não foi possível se conectar com a API e consultar os produtos. \n " 
                    + "Rota: 'product/getall?with_imagescount&with_disabled' \n"
                    + "Erro: " + ex.getMessage());
        }

        body = response.getEntity(String.class);

        Sku[] skuObject = {};
        try {
            skuObject = mapper.readValue(body, Sku[].class);
        } catch(Exception ex) {
            ex.printStackTrace();
            throw new TagException("ATENÇÃO! Houve um erro ao converter a resposta da requisição. \n " 
                    + "Rota: 'product/getall?with_imagescount&with_disabled' \n"
                    + "Resposta da requisição: " + body + "\n" 
                    + "Erro: " + ex.getMessage());
        }

        HashMap<String, Integer> qtdeEstoqueMap = new HashMap<>();
        HashMap<String, String> skuMapStatus = new HashMap<>();
        HashMap<String, String> skuMapName = new HashMap<>();
        HashMap<String, String> skuMapPrice = new HashMap<>();
        HashMap<String, Integer> skuMapImageCount = new HashMap<>();

        for (QtdeEstoqueDTO qtde : qtdeEstoque) {
            qtdeEstoqueMap.put(qtde.sku, qtde.qty);
        }

        for (Sku sku : skuObject) {
            skuMapStatus.put(sku.sku, sku.status);
            skuMapImageCount.put(sku.sku, sku.images_count);
            skuMapName.put(sku.sku, sku.name);
            skuMapPrice.put(sku.sku, sku.price);
        }

        List<ProdutoEstoqueDTO> products = ProdutoEstoqueDAO.listFather(conn);
        StockUpdate stockUpdate = new StockUpdate();
        stockUpdate.stocks = new ArrayList<>();
        int skuUpdated = 0;

        for (ProdutoEstoqueDTO product : products) {

            List<String> tamanhos = ProdutoEstoqueDAO.listTam(conn, product.grupo, product.item);
            Integer statusSku = 1;

            for (String tamanho : tamanhos) {

                Integer estoque = ProdutoEstoqueDAO.listEstoque(conn, product.grupo, tamanho, product.item);

                /** 
                 * Verifica se o produto atual veio no getAll dos produtos, se não vier
                 * significa que ainda não foi criado no Magento
                 */
                if (skuMapStatus.containsKey(product.grupo+"-"+product.item)) {

                    /**
                     * Verifica se a qtde de estoque atual no Systextil é a mesma que no Magento
                     * se não for, adiciona o produto atual em objeto para atualizar o estoque 
                     * após a criação/atualização de SKU
                     */ 
                    if (!Objects.equals(qtdeEstoqueMap.get(product.grupo+"." + tamanho + "." + product.item), estoque)) {

                        final String sku = product.grupo+"." + tamanho + "." + product.item;
                        final Integer qty = estoque;
                        HashMap<String, Object> stockMap = new HashMap();
                        stockMap.put("sku", sku);
                        stockMap.put("qty", qty);
                        stockUpdate.stocks.add(stockMap);
                    }
                } else {

                    final String sku = product.grupo+"." + tamanho + "." + product.item;
                    final Integer qty = estoque;
                    HashMap<String, Object> stockMap = new HashMap();
                    stockMap.put("sku", sku);
                    stockMap.put("qty", qty);
                    stockUpdate.stocks.add(stockMap);
                }
            }

            String keyProduct = product.grupo+"-"+product.item;
            boolean shouldUpdatePrice = false;
            boolean shouldUpdateStatus = false;
            boolean shouldCreateProduct = false;

            product.preco = buscarValorUnitarioTabelaPreco(product.grupo);

            if (skuMapPrice.containsKey(keyProduct)) {
                double precoMgto = Double.parseDouble(skuMapPrice.get(keyProduct));

                /**
                 * Se o preço for diferente entre Systextil e Magento, deve 
                 * atualizar o SKU com o preço do Systextil
                 */ 
                if (precoMgto != product.preco) {
                    shouldUpdatePrice = true;
                }
            } else {
                /**
                 * Se não tiver preço, é porque é SKU nova, que ainda não consta 
                 * no Magento. Logo, as regras posteriores, que verifica a contagem
                 * de imagens e os status divergentes não serão levadas em conta e
                 * o status padrão será 2 - Desabilitado
                 */
                shouldCreateProduct = true;
                statusSku = 2; //desabilitado
            }

            if (!shouldCreateProduct) {

                Integer statusImage = 1; //habilitado

                /* Se não houver imagem, o produto deve ficar com status "desabilitado" */
                if (skuMapImageCount.containsKey(keyProduct)) {
                    if (skuMapImageCount.get(keyProduct) == 0) {
                        statusImage = 2; //desabilitado
                    }
                } 

                /**
                 * Se tiver divergência entre o status atual do produto (skuMapStatus)
                 * e o status referente a regra de imagens (statusImage), atualiza o SKU
                 */ 
                if (skuMapStatus.containsKey(keyProduct)) {
                    if (!skuMapStatus.get(keyProduct).equals(statusImage.toString())) {
                        shouldUpdateStatus = true;
                        statusSku = statusImage;
                    }
                }
            }

            if (shouldUpdatePrice || shouldUpdateStatus || shouldCreateProduct) {

                String jsonCreateUpdateSKU = "";

                if (tamanhos.size()>0) {

                    CriaAtualizaSku skuJson = new CriaAtualizaSku();
                    skuJson.sku = product.grupo+"-"+product.item;

                    System.out.println("Criando/atualizando SKU: " + product.grupo+"-"+product.item);
                    skuUpdated++;

                    /**
                     * Se o produto já existir, deve ser utilizado a descrição que 
                     * está cadastrada no magento, pois a mesma pode ter sido alterada
                     * manualmente
                     */
                    if (skuMapName.containsKey(product.grupo+"-"+product.item)) {
                        skuJson.name = skuMapName.get(product.grupo+"-"+product.item);
                    } else {
                        skuJson.name = product.descricao;
                    }

                    skuJson.price = product.preco;
                    skuJson.status = statusSku;
                    skuJson.variations.put("tamanho", new ArrayList<>());
                    skuJson.variations.get("tamanho").addAll(tamanhos);

                    AdditionalAttributes add_atrib = new AdditionalAttributes();
                    HashMap<String, String> data = new HashMap<>();

                    data.put("key", "cor");
                    data.put("value", product.item);
                    add_atrib.single_data.add(data);

                    data = new HashMap<>();
                    data.put("key", "volume_comprimento");
                    data.put("value", "42");
                    add_atrib.single_data.add(data);

                    data = new HashMap<>();
                    data.put("key", "volume_largura");
                    data.put("value", "31");
                    add_atrib.single_data.add(data);

                    data = new HashMap<>();
                    data.put("key", "volume_altura");
                    data.put("value", "3");                
                    add_atrib.single_data.add(data);

                    skuJson.additional_attributes = add_atrib;

                    try {
                        jsonCreateUpdateSKU = mapper.writeValueAsString(skuJson);
                    } catch (IOException ex) {
                        Logger.getLogger(mgto_f001.class.getName()).log(Level.SEVERE, null, ex);
                        throw new TagException("ATENÇÃO! Ocorreu um erro ao formar o JSON (SKU "+ product.grupo + " - " + product.item + "). " + ex.getMessage());
                    }
                }
                else  {

                    CriaAtualizaSku skuJson = new CriaAtualizaSku();
                    skuJson.sku = product.grupo+"-"+product.item;

                    System.out.println("Criando/atualizando SKU: " + product.grupo+"-"+product.item);
                    skuUpdated++;

                    /**
                     * Se o produto já existir, deve ser utilizado a descrição que 
                     * está cadastrada no magento, pois a mesma pode ter sido alterada
                     * manualmente
                     */ 
                    if (skuMapName.containsKey(product.grupo+"-"+product.item)) {
                        skuJson.name = skuMapName.get(product.grupo+"-"+product.item);
                    } else {
                        skuJson.name = product.descricao;
                    }

                    skuJson.price = product.preco;
                    skuJson.status = statusSku;

                    AdditionalAttributes add_atrib = new AdditionalAttributes();
                    HashMap<String, String> data = new HashMap<>();

                    data.put("key", "cor");
                    data.put("value", product.item);
                    add_atrib.single_data.add(data);

                    data = new HashMap<>();
                    data.put("key", "volume_comprimento");
                    data.put("value", "42");
                    add_atrib.single_data.add(data);

                    data = new HashMap<>();
                    data.put("key", "volume_largura");
                    data.put("value", "31");
                    add_atrib.single_data.add(data);

                    data = new HashMap<>();
                    data.put("key", "volume_altura");
                    data.put("value", "3");                
                    add_atrib.single_data.add(data);

                    skuJson.additional_attributes = add_atrib;

                    try {
                        jsonCreateUpdateSKU = mapper.writeValueAsString(skuJson);
                    } catch (IOException ex) {
                        Logger.getLogger(mgto_f001.class.getName()).log(Level.SEVERE, null, ex);
                        throw new TagException("ATENÇÃO! Ocorreu um erro ao formar o JSON (SKU "+ product.grupo + " - " + product.item + "). " + ex.getMessage());
                    }
                }

                webResource = client.resource(BASE_URL+"/convertr-integrator/product/create");

                try {
                    response = webResource.header("username", username).header("apiKey", apiKey).accept("application/json")
                       .post(ClientResponse.class, jsonCreateUpdateSKU);
                } catch (Exception ex) {
                    throw new TagException("ATENÇÃO! Não foi possível se conectar com a API e criar/atualizar os produtos. \n " 
                        + "Rota: 'product/create' \n"
                        + "JSON: " + jsonCreateUpdateSKU + "\n"
                        + "Erro: " + ex.getMessage());
                }

                SkuLink skuLinkReturnAPI = null;
                body = response.getEntity(String.class);

                if (!body.isEmpty()) {

                    try {
                        skuLinkReturnAPI = mapper.readValue(body, SkuLink.class);
                    } catch(Exception ex) {
                        ex.printStackTrace();
                        throw new TagException("ATENÇÃO! Ocorreu um erro no processo de criação/atualização do produto (SKU "+ product.grupo + " - " + product.item + "). \n" +
                                "JSON: " + jsonCreateUpdateSKU + "\n" +
                                "Resposta da requisição: " + body + "\n" +
                                "Erro: " + ex.getMessage());
                    }
                } else skuLinkReturnAPI.needAssign = false; 

                if (skuLinkReturnAPI.needAssign) {

                    /* Código comentado abaixo usado para retirar os vínculos para posteriormente
                        vincular com tamanhos adicionais que vieram da ficha ténica

                    String jsonUnLinkChildrens = "";

                    SkuLinkJson skuUnLinkChildrens = new SkuLinkJson();
                    skuUnLinkChildrens.sku = skuLinkReturnAPI.sku;
                    skuUnLinkChildrens.configurable_attributes = skuLinkReturnAPI.configurable_attributes;
                    skuUnLinkChildrens.associated_skus = new ArrayList<>();

                    try {
                        jsonUnLinkChildrens = mapper.writeValueAsString(skuUnLinkChildrens);
                    } catch (IOException ex) {
                        throw new TagException("ATENÇÃO! Ocorreu um erro no processo ao desvincular os tamanhos (SKU "+ product.grupo + " - " + product.item + "). " + ex.getMessage());                    
                    }

                    webResource = client.resource(BASE_URL+"/convertr-integrator/product/configurableassign");

                    /*  
                    *   Envia requisição para retirar todos os vínculos existentes
                    *   no SKU pai
                    *
                    try {
                        response = webResource.header("username", username).header("apiKey", apiKey).accept("application/json")
                           .post(ClientResponse.class, jsonUnLinkChildrens);
                    } catch (Exception ex) {
                        throw new TagException("ATENÇÃO! Não foi possível se conectar com a API e desvincular os produtos. \n " 
                            + "Rota: '/convertr-integrator/product/configurableassign' \n"
                            + "JSON: " + jsonUnLinkChildrens + "\n"
                            + "Erro: " + ex.getMessage());
                    }

                    body = response.getEntity(String.class);*/

                    String jsonLink = "";

                    SkuLinkJson skuLink = new SkuLinkJson();
                    skuLink.sku = skuLinkReturnAPI.sku;
                    skuLink.configurable_attributes = skuLinkReturnAPI.configurable_attributes;
                    skuLink.associated_skus = skuLinkReturnAPI.associated_skus;

                    try {
                        jsonLink = mapper.writeValueAsString(skuLink);
                    } catch (IOException ex) {
                        throw new TagException("ATENÇÃO! Ocorreu um erro no processo ao vincular os tamanhos (SKU "+ product.grupo + " - " + product.subgru + "). " + ex.getMessage());                    
                    }

                    /**
                     * Envia requisição para vincultar todos os tamanhos existentes ao SKU pai
                     */
                    webResource = client.resource(BASE_URL+"/convertr-integrator/product/configurableassign");

                    try {
                        response = webResource.header("username", username).header("apiKey", apiKey).accept("application/json")
                           .post(ClientResponse.class, jsonLink);
                    } catch (Exception ex) {
                        throw new TagException("ATENÇÃO! Não foi possível se conectar com a API e vincular os produtos. \n " 
                            + "Rota: '/convertr-integrator/product/configurableassign' \n"
                            + "JSON: " + jsonLink + "\n"
                            + "Erro: " + ex.getMessage());
                    }

                    body = response.getEntity(String.class);

                }
            }
        }

        System.out.println("Quantidade de SKUs atualizados: " + skuUpdated);

        /**
         * Verifica se existe SKU que necessita atualizar estoque
         */ 
        if (!stockUpdate.stocks.isEmpty()) {

            String jsonStockUpdate = "";

            try {
                jsonStockUpdate = mapper.writeValueAsString(stockUpdate);
            } catch (IOException ex) {
                throw new TagException("ATENÇÃO! Ocorreu um erro ao formar o JSON para atualizar o estoque. " + ex.getMessage());
            }

            webResource = client.resource(BASE_URL+"/convertr-integrator/stock/multiupdate");
            try {
                response = webResource.header("username", username).header("apiKey", apiKey).accept("application/json")
                    .post(ClientResponse.class, jsonStockUpdate);
            } catch (Exception ex) {
                throw new TagException("ATENÇÃO! Não foi possível se conectar com a API e atualizar os estoques. \n " 
                        + "Rota: 'stock/multiupdate' \n"
                        + "JSON: " + jsonStockUpdate + "\n"
                        + "Erro: " + ex.getMessage());
            }

            body = response.getEntity(String.class);
        }
    }

    private double buscarValorUnitarioTabelaPreco(String cditem_grupo){

        double preco = 0.00;

        try (AppConnection conn1 = new AppConnection(conn)) {
            conn1.setQuery("select pedi_095.val_tabela_preco" +
                    " from pedi_095, pedi_090 " +
                    " where (pedi_090.col_tabela_preco = pedi_095.tab_col_tab " +
                    "   and pedi_090.mes_tabela_preco = pedi_095.tab_mes_tab "  +
                    "   and pedi_090.seq_tabela_preco = pedi_095.tab_seq_tab )" +
                    "   and pedi_090.disponivel_b2b = 1 "+
                    "   and pedi_095.grupo_estrutura = ? "+
                    "   and pedi_095.nivel_preco = 1 " +
                    "   and rownum = 1 "+
                    " order by pedi_090.data_ini_tabela desc ");
            conn1.setString(1, cditem_grupo);
            conn1.executeQuery();
            if(conn1.next()) preco = conn1.getDouble(1);
        }

        return preco;
    }    
}

----- Classpath: ---------------------------------------------
bootPath: 
classPath: /home/sergio/.m2/repository/systextil/web/systextil-function/1.0-SNAPSHOT/systextil-function-1.0-SNAPSHOT.jar:/home/sergio/.m2/repository/com/sun/jersey/jersey-client/1.19/jersey-client-1.19.jar:/home/sergio/.m2/repository/com/sun/jersey/jersey-core/1.19/jersey-core-1.19.jar:/home/sergio/.m2/repository/systextil/systextil-controller-api/1.0.1/systextil-controller-api-1.0.1.jar:/home/sergio/.m2/repository/systextil/systextil-util/1.30.1/systextil-util-1.30.1.jar:/home/sergio/.m2/repository/systextil/systextil-connection/1.7/systextil-connection-1.7.jar:/home/sergio/.m2/repository/systextil/erp/systextil-security/2.3/systextil-security-2.3.jar:/home/sergio/.m2/repository/systextil/systextil-agentbatch/1.7.2/systextil-agentbatch-1.7.2.jar:/home/sergio/.m2/repository/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar:/home/sergio/.m2/repository/systextil/systextil-jpa-api/0.1/systextil-jpa-api-0.1.jar:/home/sergio/.m2/repository/javax/persistence/javax.persistence-api/2.2/javax.persistence-api-2.2.jar:/home/sergio/.m2/repository/systextil/erp/systextil-plugins-api/1.0-SNAPSHOT/systextil-plugins-api-1.0-SNAPSHOT.jar:/home/sergio/.m2/repository/systextil/systextil-ws-base/1.2.3/systextil-ws-base-1.2.3.jar:/home/sergio/.m2/repository/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar:/home/sergio/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/home/sergio/.m2/repository/systextil/systextil-crystal/0.3.2/systextil-crystal-0.3.2.jar:/home/sergio/.m2/repository/systextil/crystal/CrystalReportsRuntime/12.2.214.1733/CrystalReportsRuntime-12.2.214.1733.jar:/home/sergio/.m2/repository/systextil/crystal/jrcerom/12.2.214.1733/jrcerom-12.2.214.1733.jar:/home/sergio/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.6/jackson-mapper-asl-1.9.6.jar:/home/sergio/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.6/jackson-core-asl-1.9.6.jar:/home/sergio/.m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar:/home/sergio/.m2/repository/javax/ws/rs/javax.ws.rs-api/2.1.1/javax.ws.rs-api-2.1.1.jar:/home/sergio/.m2/repository/javax/xml/soap/javax.xml.soap-api/1.4.0/javax.xml.soap-api-1.4.0.jar:/home/sergio/.m2/repository/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar:/home/sergio/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar:/home/sergio/.m2/repository/javax/mail/javax.mail-api/1.6.2/javax.mail-api-1.6.2.jar:/home/sergio/.m2/repository/log4j/log4j/1.2.8/log4j-1.2.8.jar:/home/sergio/.m2/repository/javax/javaee-api/6.0/javaee-api-6.0.jar:/home/sergio/.m2/repository/com/betfair/net/java/opendmk/core/1.0-b02/core-1.0-b02.jar:/usr/home/sergio/Systextil/workspace/systextil-magento/target/classes
sourcePath: /usr/home/sergio/Systextil/workspace/systextil-magento/src/main/java:/usr/home/sergio/Systextil/workspace/systextil-magento/src/main/resources:/usr/home/sergio/Systextil/workspace/systextil-magento/sources/Classes:/usr/home/sergio/Systextil/workspace/systextil-magento/script_sql:/usr/home/sergio/Systextil/workspace/systextil-magento/public
----- Original exception ---------------------------------------------
java.lang.IllegalStateException: java.lang.AssertionError: isSubtype UNKNOWN
    at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:383)
    at org.netbeans.modules.java.source.parsing.JavacParser.moveToPhase(JavacParser.java:769)
    at org.netbeans.modules.java.source.parsing.JavacParser.getResult(JavacParser.java:539)
    at org.netbeans.modules.java.source.parsing.JavacParser.getResult(JavacParser.java:140)
    at org.netbeans.modules.parsing.impl.TaskProcessor.callGetResult(TaskProcessor.java:608)
    at org.netbeans.modules.parsing.impl.SourceCache.getResult(SourceCache.java:239)
    at org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.run(TaskProcessor.java:775)
    at org.openide.util.lookup.Lookups.executeWith(Lookups.java:279)
    at org.netbeans.modules.parsing.impl.TaskProcessor$RequestPerformer.execute(TaskProcessor.java:702)
    at org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(TaskProcessor.java:663)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
    at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
    at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)
Caused by: java.lang.AssertionError: isSubtype UNKNOWN
    at com.sun.tools.javac.code.Types$4.visitType(Types.java:1127)
    at com.sun.tools.javac.code.Types$4.visitType(Types.java:1104)
    at com.sun.tools.javac.code.Type.accept(Type.java:228)
    at com.sun.tools.javac.code.Types$DefaultTypeVisitor.visit(Types.java:4900)
    at com.sun.tools.javac.code.Types.isSubtype(Types.java:1100)
    at com.sun.tools.javac.code.Types.isSubtype(Types.java:1071)
    at com.sun.tools.javac.comp.Check.subset(Check.java:1575)
    at com.sun.tools.javac.comp.Check.incl(Check.java:1592)
    at com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitTry(Flow.java:1273)
    at com.sun.tools.javac.tree.JCTree$JCTry.accept(JCTree.java:1446)
    at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
    at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:444)
    at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57)
    at com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitBlock(Flow.java:1188)
    at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1091)
    at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
    at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:444)
    at com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitMethodDef(Flow.java:1154)
    at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:921)
    at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
    at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:444)
    at com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitClassDef(Flow.java:1117)
    at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:819)
    at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
    at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:444)
    at com.sun.tools.javac.comp.Flow$FlowAnalyzer.analyzeTree(Flow.java:1532)
    at com.sun.tools.javac.comp.Flow$FlowAnalyzer.analyzeTree(Flow.java:1522)
    at com.sun.tools.javac.comp.Flow.analyzeTree(Flow.java:222)
    at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1377)
    at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1341)
    at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:404)
    at com.sun.tools.javac.api.JavacTaskImpl.lambda$analyze$1(JavacTaskImpl.java:379)
    at com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
    at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:379)
    ... 15 more

Are you willing to submit a pull request?

No

Code of Conduct

Yes

mbien commented 3 months ago

unfortunately I can't even reproduce this with NB 12.6, and we are already at NB 23. Closing as "can't reproduce"