java.lang. VerifyError на методе, который работавший минуту назад

Извинения заранее, но я никогда не видел эту ошибку прежде и не знаю, что включать. Я использую NetBeans и внезапно начал получать эту ошибку:

Exception in thread "AWT-EventQueue-0" java.lang.VerifyError: (class: market/CostOperations, method: <init> signature: ()V) Constructor must call super() or this()
            at Bluebuild.Main.refreshTables(Main.java:748)
            at Bluebuild.Main.formComponentShown(Main.java:649)
            at Bluebuild.Main.access$100(Main.java:28)
            at Bluebuild.Main$2.componentShown(Main.java:374)
            at java.awt.Component.processComponentEvent(Component.java:6095)
            at java.awt.Component.processEvent(Component.java:6043)
            at java.awt.Container.processEvent(Container.java:2041)
            at java.awt.Window.processEvent(Window.java:1836)
            at java.awt.Component.dispatchEventImpl(Component.java:4630)
            at java.awt.Container.dispatchEventImpl(Container.java:2099)
            at java.awt.Window.dispatchEventImpl(Window.java:2478)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

У меня нет подсказки, что произошло. Я даже не изменил market/CostOperations.

Вот конструктор хотя:

public CostOperations() throws ParserConfigurationException, SAXException, IOException {

        //Open the xml file
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        f = new File(dbName);
        doc = builder.parse(f);
        System.out.println(f.canWrite());

        //Create the XPath
        XPathFactory xpfactory = XPathFactory.newInstance();
        path = xpfactory.newXPath();

    }

В Режиме отладки я получаю это:

debug:
Have no FileObject for C:\Program Files (x86)\Java\jdk1.6.0_20\jre\lib\sunrsasign.jar
Have no FileObject for C:\Program Files (x86)\Java\jdk1.6.0_20\jre\classes

Я просто должен знать то, что вызывает ошибку и как зафиксировать ее.Спасибо!

7
задан Travis 11 June 2010 в 00:03
поделиться

4 ответа

A VerifyError означает, что байткод недействителен, что указывает на проблему компилятора. Я бы попробовал все пересобрать в надежде, что ошибка исчезнет, но в противном случае вам следует зарегистрировать ошибку. Байткод необходим для вызова конструктора суперкласса вручную через invokenonvirtual superclass/()V, но вам не нужно добавлять super(); в исходник, компилятор должен справиться с этим

.
9
ответ дан 7 December 2019 в 03:11
поделиться

Я бы сильно сомневался, что это ошибка компилятора Java. Скорее всего, что-то подобное было бы замечено кем-то другим и сообщено как ошибка. Но вы можете проверить это, перекомпилировав файл и используя javap для разборки байткодов. Найдите в коде конструктора следующую инструкцию:

    invokespecial #1 <Method java.lang.Object()>

Я думаю, более вероятно, что что-то изменяет байткоды после того, как компилятор их написал. Возможные варианты: какой-то профилировщик, который модифицирует байткоды, чтобы внедрить крючки профилирования, или какой-то обработчик аннотаций, который внедряет зависимости, точки отсечения и т.д.

1
ответ дан 7 December 2019 в 03:11
поделиться

Подтверждено: ошибка компилятора.

0
ответ дан 7 December 2019 в 03:11
поделиться

Просто попробуйте поместить super () в начало вашего конструктора, как указано в сообщении об ошибке.

Я думал, что это обычно подразумевается и добавляется без ограничений для записи, возможно, в суперклассе CostOperations нет пустого конструктора ..

0
ответ дан 7 December 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: