Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Никак не поймаю исключение 
:(
    Опции темы
zss
Дата 16.12.2005, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Есть класс, который создает таймер.
По событию таймера парсится XML файл и отоброжаются графики с помощью JFreeChart.

Код

public class fmMain extends JFrame {

    private String filename = null;
    private long timeModified = 0;
    private Timer timer = null;

...
    private void jbInit () throws Exception {

        ActionListener listener = new ActionListener () {
            public void actionPerformed ( ActionEvent event ) {

                File file = new File ( filename );

                if ( file.exists () && ( timeModified < file.lastModified () ) ) {
                    timeModified = file.lastModified ();
                    timer.stop ();
                    readXMLDocument ( file ); // здесь все нормально - все читается
                    timer.start ();
                }
            } // здесь слетает
        };

        timer = new Timer ( 0, listener );
        timer.setRepeats ( true );
        timer.start ();
        timer.setDelay ( 1000 );
...
    }


слетает в совсем неожиданном месте - никак не пойму из-за чего и где smile
Код

sun.dc.pr.PRException: endPath: bad path
    at sun.dc.pr.Rasterizer.endPath(Rasterizer.java:537)
    at sun.java2d.pipe.DuctusRenderer.createShapeRasterizer(DuctusRenderer.java:374)
    at sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:57)
    at sun.java2d.pipe.DuctusShapeRenderer.fill(DuctusShapeRenderer.java:49)
    at sun.java2d.SunGraphics2D.fill(SunGraphics2D.java:2156)
    at org.jfree.chart.renderer.XYBarRenderer.drawItem(XYBarRenderer.java:284)
    at org.jfree.chart.plot.XYPlot.render(XYPlot.java:2097)
    at org.jfree.chart.plot.XYPlot.draw(XYPlot.java:1880)
    at org.jfree.chart.JFreeChart.draw(JFreeChart.java:892)
    at org.jfree.chart.ChartPanel.paintComponent(ChartPanel.java:970)
    at javax.swing.JComponent.paint(JComponent.java:808)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4795)
    at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4748)
    at javax.swing.JComponent._paintImmediately(JComponent.java:4692)
    at javax.swing.JComponent.paintImmediately(JComponent.java:4495)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:410)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
sun.dc.pr.PRException: endPath: bad path
    at sun.dc.pr.Rasterizer.endPath(Rasterizer.java:537)
    at sun.java2d.pipe.DuctusRenderer.createShapeRasterizer(DuctusRenderer.java:374)
    at sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:57)
    at sun.java2d.pipe.DuctusShapeRenderer.draw(DuctusShapeRenderer.java:45)
    at sun.java2d.SunGraphics2D.draw(SunGraphics2D.java:2128)
    at org.jfree.chart.renderer.XYBarRenderer.drawItem(XYBarRenderer.java:288)
    at org.jfree.chart.plot.XYPlot.render(XYPlot.java:2097)
    at org.jfree.chart.plot.XYPlot.draw(XYPlot.java:1880)
    at org.jfree.chart.JFreeChart.draw(JFreeChart.java:892)
    at org.jfree.chart.ChartPanel.paintComponent(ChartPanel.java:970)
    at javax.swing.JComponent.paint(JComponent.java:808)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4795)
    at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4748)
    at javax.swing.JComponent._paintImmediately(JComponent.java:4692)
    at javax.swing.JComponent.paintImmediately(JComponent.java:4495)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:410)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
sun.dc.pr.PRException: endPath: bad path
    at sun.dc.pr.Rasterizer.endPath(Rasterizer.java:537)
    at sun.java2d.pipe.DuctusRenderer.createShapeRasterizer(DuctusRenderer.java:374)
    at sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:57)
    at sun.java2d.pipe.DuctusShapeRenderer.fill(DuctusShapeRenderer.java:49)
    at sun.java2d.SunGraphics2D.fill(SunGraphics2D.java:2156)
    at org.jfree.chart.renderer.XYBarRenderer.drawItem(XYBarRenderer.java:284)
    at org.jfree.chart.plot.XYPlot.render(XYPlot.java:2097)
    at org.jfree.chart.plot.XYPlot.draw(XYPlot.java:1880)
    at org.jfree.chart.JFreeChart.draw(JFreeChart.java:892)
    at org.jfree.chart.ChartPanel.paintComponent(ChartPanel.java:970)
    at javax.swing.JComponent.paint(JComponent.java:808)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:557)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4802)
    at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4748)
    at javax.swing.JComponent.paint(JComponent.java:798)
    at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
    at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
    at java.awt.Container.paint(Container.java:1312)
    at sun.awt.RepaintArea.paint(RepaintArea.java:177)
    at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260)
    at java.awt.Component.dispatchEventImpl(Component.java:3678)
    at java.awt.Container.dispatchEventImpl(Container.java:1627)
    at java.awt.Window.dispatchEventImpl(Window.java:1606)
    at java.awt.Component.dispatchEvent(Component.java:3477)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
sun.dc.pr.PRException: endPath: bad path
    at sun.dc.pr.Rasterizer.endPath(Rasterizer.java:537)
    at sun.java2d.pipe.DuctusRenderer.createShapeRasterizer(DuctusRenderer.java:374)
    at sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:57)
    at sun.java2d.pipe.DuctusShapeRenderer.draw(DuctusShapeRenderer.java:45)
    at sun.java2d.SunGraphics2D.draw(SunGraphics2D.java:2128)
    at org.jfree.chart.renderer.XYBarRenderer.drawItem(XYBarRenderer.java:288)
    at org.jfree.chart.plot.XYPlot.render(XYPlot.java:2097)
    at org.jfree.chart.plot.XYPlot.draw(XYPlot.java:1880)
    at org.jfree.chart.JFreeChart.draw(JFreeChart.java:892)
    at org.jfree.chart.ChartPanel.paintComponent(ChartPanel.java:970)
    at javax.swing.JComponent.paint(JComponent.java:808)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paint(JComponent.java:817)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:557)
    at javax.swing.JComponent.paintChildren(JComponent.java:647)
    at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4802)
    at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4748)
    at javax.swing.JComponent.paint(JComponent.java:798)
    at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
    at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
    at java.awt.Container.paint(Container.java:1312)
    at sun.awt.RepaintArea.paint(RepaintArea.java:177)
    at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260)
    at java.awt.Component.dispatchEventImpl(Component.java:3678)
    at java.awt.Container.dispatchEventImpl(Container.java:1627)
    at java.awt.Window.dispatchEventImpl(Window.java:1606)
    at java.awt.Component.dispatchEvent(Component.java:3477)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)


PM MAIL ICQ   Вверх
chief39
Дата 16.12.2005, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Трудно понять что и где, но судя по стеку
Код

at sun.dc.pr.Rasterizer.endPath(Rasterizer.java:537)
at sun.java2d.pipe.DuctusRenderer.createShapeRasterizer(DuctusRenderer.java:374)

это происходит в JFreeChart'е в момент построения графика по уже считанному файлу.

Код

at sun.dc.pr.Rasterizer.endPath(Rasterizer.java:537)
не сталкивался, но сдаётся мне что просто неправильно описана структура какая-то в файле.

Есть DTD или XMLschema для твоего документа? Или полагаешься на то, что файл правильно заполнен? опиши простенькую дтдшку и включи валидацию при скачивании файла.


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
zss
Дата 16.12.2005, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(chief39 @ 16.12.2005, 15:35)
Есть DTD или XMLschema для твоего документа? Или полагаешься на то, что файл правильно заполнен? опиши простенькую дтдшку и включи валидацию при скачивании файла.

а можно об этом поподробнее
PM MAIL ICQ   Вверх
chief39
Дата 16.12.2005, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(zss @ 16.12.2005, 18:43)
а можно об этом поподробнее

можно, только желательно знать что именно у тебя тут:
Код

readXMLDocument ( file );

и чё в файле

твой хмл документ наверняка придерживается каких-то правил. Вроде... в в таком элементе могут содержаться такие-то элементы, у него обязателен атрибут такой-то
(У элемента машины должно быть описано 4(и только 4!!!) элемента колеса, у колёс (непременно!) должны быть атрибуты радиус и ширина)

DTD - это отдельный файл или текст в том же файле что и хмл, который описывает эту структуру
типа....

Код

<?xml version="1.0" ?>
<!DOCTYPE customer-metadata[

                <!ELEMENT customer-metadata (category*)>
                 <!-- в корне документа может быть 0 или несколько вложенных элементов типа category -->


                <!ELEMENT category (category-attribute+) >
                 <!-- может быть 1 или несколько вложенных элементов типа category-attribute -->

                <!ATTLIST category  <!-- у категории такие атрибуты, причём обязательные -->
                        cat-name     CDATA #REQUIRED
                        cat-type       CDATA #REQUIRED
                        cat-description    CDATA #REQUIRED
                        >

                <!ELEMENT category-attribute EMPTY >
                 <!-- ну а этот элемент ничерта в себе не может содержать - так, просто чтоб был :) -->

] >

<customer-metadata>

   <!-- ну а тут погнал свой ксмл согласно вышеописанного :)-->

</customer-metadata>

потом парсишь

Код

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(true);  // ВКЛЮЧАЕШЬ АВТОПРОВЕРКУ ПО ТВОЕЙ DTD
docBuilder = factory.newDocumentBuilder();
document = docBuilder.parse(file);


Фот... вродь насоображал чёт перед уходом smile

И пробегись вот тут.
Там конкретные руководства от создателей smile

Ну и спрашивай


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1462 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.