Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > как отследить какой класс создает папки


Автор: barin_Student 28.9.2009, 08:51
Проблема:
классы которые в более ранних версиях проекта создавали папки, сейчас уже изменил код этих классов, в их коде не присутствует создание этих папок, но при каждом запуске проекта папки создаються, почему?  smile . Как узнать что за класс создает эти папки, и вообще как это исправить?

Автор: agR 28.9.2009, 10:01
Как вариант просто задать поиск в коде по имени папки. Если имя не совпадает с ключевыми словами (например, new, public и т.д.) то найденных файлов будет немного. А там разберешься.
Ну или искать уже метод, который создает папку - mkdir().

Автор: barin_Student 28.9.2009, 11:27
Цитата(agR @ 28.9.2009,  13:01)
Как вариант просто задать поиск в коде по имени папки. Если имя не совпадает с ключевыми словами (например, new, public и т.д.) то найденных файлов будет немного. А там разберешься.
Ну или искать уже метод, который создает папку - mkdir().

Поиск ничаго не даст, но счас сделаю...
ПС: я знаю в каком классе создавались они раньше, но уже давно я код переписал, и нигде не создаються(по моему коду), а в реальности папки создаются..каламбур какойто.. но это так... счас пройдусь поиском. smile

Добавлено через 2 минуты и 17 секунд
поиск результатов не дал smile 

Автор: AntonSaburov 28.9.2009, 12:52
Проверь - не лежат ли где-то старые версии твоих классов. Может ClassLoader их юзает вместо твоих.

Автор: barin_Student 28.9.2009, 13:07
Цитата(AntonSaburov @ 28.9.2009,  15:52)
Проверь - не лежат ли где-то старые версии твоих классов. Может ClassLoader их юзает вместо твоих.

Скажем так:
у меня есть два класса , которые в первой версии выполняли создание папок:
LOG
ERROR
сейчас они создают(кто первый создаст)
log

То что с маленькой и с большой не пугайтесь..это имеет значение(*NIX).
Как то так.. так что наверное я более подробно изложился.. smile 

Автор: Dims 28.9.2009, 18:40
Помешайте созданию папок (например, ограничьте права на запись или создайте файл с тем же именем) и отследите, откуда вылетит исключение.

Автор: barin_Student 29.9.2009, 05:58
Цитата(Dims @ 28.9.2009,  21:40)
Помешайте созданию папок (например, ограничьте права на запись или создайте файл с тем же именем) и отследите, откуда вылетит исключение.

делал, просто напросто, я думаю старый класс как то кешируеться(ХЗ как это вообще может быть)...а в нем проверка:
есть папка, не создавать, нету папки - создать.. и как экспешн вызвать-Вопрос smile 

Автор: magicfly 29.9.2009, 10:01
чем билдите? 
попробуй билдить либо антом либо руками. 

Автор: Dims 29.9.2009, 16:27
Можно сделать, чтоб папки не было, но убрать права на создание папки. Или можно сделать скрытую папку с тем же именем -- проверка покажет, что папки нет, а попытка создать провалится.

Старый класс может валяться где-то в одном из старых JAR-ов, если их много подключается. И в каком порядке их джавамашина просматривает -- неизвестно.

Автор: ivanovpv 29.9.2009, 17:05
Запрети создание папок на уровне ОС - Java немедленно выкинет Exception - по которому оттрассируешь кто этот негодяй, что создает каталоги

Автор: barin_Student 30.9.2009, 09:18
Цитата(magicfly @ 29.9.2009,  13:01)
чем билдите? 
попробуй билдить либо антом либо руками.

NetBeans)

Добавлено через 27 секунд
Цитата(ivanovpv @ 29.9.2009,  20:05)
Запрети создание папок на уровне ОС - Java немедленно выкинет Exception - по которому оттрассируешь кто этот негодяй, что создает каталоги

вот это уже идея.. попробую smile

Добавлено через 1 минуту и 56 секунд
Цитата(Dims @ 29.9.2009,  19:27)
Старый класс может валяться где-то в одном из старых JAR-ов, если их много подключается. И в каком порядке их джавамашина просматривает -- неизвестно.


Такая же мысля.. поробую вызвать Ексепшн и тода я буду очень зол smile 

Автор: LSD 30.9.2009, 11:03
Вообще-то mkdir()/mkdirs() кидает только SecurityException, а если папку создать не удалось, то просто вернет false. Так что если файлы в эти папки не пишутся, то способ на запрет создания папок может и не сработать.

Зато можно установить свой SecurityManager и в нем контролировать какой код пытается создать папку smile

Автор: barin_Student 1.10.2009, 08:05
Запретил создание папки..
Экспешн не вылез... тему закрыл.. потому что некогда заниматься ею пока smile ... спасибо всем за помощь)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)