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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Падает jvm при rescale 
V
    Опции темы
W0LF
Дата 6.3.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



рескейл делаю так : 
Код

public static byte[] getScaledImageData(byte[] notScaledImageData, int h, boolean rotate) throws ImageFormatterException {
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        BufferedImage inImage;

        try {
            inImage = ImageIO.read(new ByteArrayInputStream(notScaledImageData));
        } catch (IOException e) {
            Logger.logError(ImageFormatter.class.getName(), "can't create image from it data", e);
            throw new ImageFormatterException(e, null);
        } catch (IllegalArgumentException iae) {
            Logger.logError(ImageFormatter.class.getName(), "can't create image from it data", iae);
            throw new ImageFormatterException(iae, null);
        } catch (Exception ee) {
            Logger.logError(ImageFormatter.class.getName(), "can't create image from it data", ee);
            throw new ImageFormatterException(ee, null);
        }
        if (inImage == null) {
            throw new ImageFormatterException(null, "can't create image from it data");
        }
        if (rotate && (inImage.getHeight() < inImage.getWidth()) ) {
            inImage = rotate(inImage);
        }

        double fScale = (double) h / (double) inImage.getHeight();
        while (fScale < 0.5f) {
            inImage = scale(0.5f, inImage);
            fScale *= 2;
        }

        inImage = scale(fScale, inImage);

        try {
            ImageIO.write(inImage, "jpeg", out);
            out.close();
        } catch (IOException e) {
            Logger.logError(ImageFormatter.class.getName(), "can't write image to stream", e);
            throw new ImageFormatterException(e, null);
        }
        return out.toByteArray();
        //return notScaledImageData;
    }


    public static BufferedImage scale(double scale, BufferedImage srcImg) {
        RenderingHints hints = new RenderingHints(null);
        hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        hints.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
        hints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);

        BufferedImage target = new BufferedImage((int) (srcImg.getWidth() * scale),
                (int) (srcImg.getHeight() * scale),
                BufferedImage.TYPE_INT_RGB);

        Graphics2D g = target.createGraphics();
        AffineTransform affineTransform = AffineTransform.getScaleInstance(scale, scale);
        g.setRenderingHints(hints);
        g.drawRenderedImage(srcImg, affineTransform);

        g.dispose();
        return target;
    }


Вот в чем суть - 
Есть три потока в которых происходит скачивание, и rescale изображений
Так вот, выкачивают эти три потока картинок эдак 25000 и jvm слетает при следующем рескейле.Если именно эту картинку(на которой слетела) рескейлить отдельно - все нормал.

операционка : freebsd 6.2 amd 64, java : 1.5.0_07-b01
лог java core - 
Цитата

Stack: [0x00007fffff068000,0x00007fffff0a8000),  sp=0x00007fffff0a64a0,  free space=249k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libcmm.so+0x833e3]  fut_lock_fut+0x1e3
C  [libcmm.so+0x83242]  fut_lock_fut+0x42
C  [libcmm.so+0x30462]  PTCombine+0xb2
C  [libcmm.so+0x29c9c]  SpConnectSequenceImp+0xac
C  [libcmm.so+0x2a4dd]  SpConnectSequenceEx+0x5dd
C  [libcmm.so+0x2a73a]  SpConnectSequence+0x5a
C  [libcmm.so+0xfe92]  Java_sun_awt_color_CMM_cmmCombineTransforms+0x112
j  sun.awt.color.CMM.cmmCombineTransforms([JLsun/awt/color/ICC_Transform;)I+0

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  sun.awt.color.CMM.cmmCombineTransforms([JLsun/awt/color/ICC_Transform;)I+0
v  ~C2IAdapter
J  sun.awt.color.ICC_Transform.<init>([Lsun/awt/color/ICC_Transform;)V
J  java.awt.color.ICC_ColorSpace.toRGB([F)[F
J  java.awt.image.BufferedImage.getRGB(IIII[III)[I
v  ~I2CAdapter
v  ~StubRoutines::call_stub
j  sun.awt.image.ImagingLib.transformBI(Ljava/awt/image/BufferedImage;Ljava/awt/image/BufferedImage;[DI)I+0
v  ~C2IAdapter
J  sun.awt.image.ImagingLib.filter(Ljava/awt/image/BufferedImageOp;Ljava/awt/image/BufferedImage;Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage;
v  ~I2CAdapter
j  java.awt.image.AffineTransformOp.filter(Ljava/awt/image/BufferedImage;Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage;+356
j  sun.java2d.pipe.DrawImage.renderImageXform(Lsun/java2d/SunGraphics2D;Ljava/awt/Image;Ljava/awt/geom/AffineTransform;IIIIILjava/awt/Color;)V+391
j  sun.java2d.pipe.DrawImage.transformImage(Lsun/java2d/SunGraphics2D;Ljava/awt/Image;IILjava/awt/geom/AffineTransform;I)V+366
j  sun.java2d.pipe.DrawImage.transformImage(Lsun/java2d/SunGraphics2D;Ljava/awt/Image;Ljava/awt/geom/AffineTransform;Ljava/awt/image/ImageObserver;)Z+17
j  sun.java2d.pipe.ValidatePipe.transformImage(Lsun/java2d/SunGraphics2D;Ljava/awt/Image;Ljava/awt/geom/AffineTransform;Ljava/awt/image/ImageObserver;)Z+17
j  sun.java2d.SunGraphics2D.drawImage(Ljava/awt/Image;Ljava/awt/geom/AffineTransform;Ljava/awt/image/ImageObserver;)Z+35
j  sun.java2d.SunGraphics2D.drawRenderedImage(Ljava/awt/image/RenderedImage;Ljava/awt/geom/AffineTransform;)V+21
v  ~C2IAdapter
J  src.util.ImageFormatter.getScaledImageData([BIZ)[B
J  src.parsers.HtmlParser.parsePictures(Ljava/lang/String;I)V
v  ~I2CAdapter
j  src.parsers.HtmlParser.parseSubGalleries(Ljava/lang/String;I)V+765
j  src.threads.RefreshIndividualSubGallery.run()V+114 


 smile 


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
W0LF
Дата 6.3.2008, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



хм. нашел в гугле такой баг
запустил тот тест, который валит jvm, он удачно ие завалил. придется наверно на фряхе джаву обновлять :((


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
v2v
Дата 6.3.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



Цитата(W0LF @  6.3.2008,  14:23 Найти цитируемый пост)

запустил тот тест, который валит jvm, он удачно ие завалил. придется наверно на фряхе джаву обновлять :(( 

разве они написали что в новой версии пофиксено!?


--------------------
PM   Вверх
W0LF
Дата 7.3.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



они написали что это не баг, бо юзаюццо нативные типа апи

Добавлено через 1 минуту и 2 секунды
у мну ошибка такая же, как и этот тест дает, тока ее я могу увидеть спустя 15 часов, используя свою программу, а этот тест выдает сразу. попробуем джаву на гребаной фряхе переставить..


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
v2v
Дата 7.3.2008, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



а ты на виндовой jvm тестил? какие результаты?


--------------------
PM   Вверх
W0LF
Дата 10.3.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



на виндовой ниполучаеццо =(
вот запустил позавчера а картинок тока 14000 скачалось и продолжает работать - инет не сильно кароший :(
а тест - он не компилится под шестой джавой, типа несовместимость апи


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
W0LF
Дата 12.3.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



 в общем шестая джава поборола этот проблем


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

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

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


 




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


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

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