Регистрация  |  Вход

в Орге есть класс, который создает объект не существующего класса

в Орге есть класс который создает объект не существующего в орге класса (как это возможно?!). также я не нашел тестов его покрывающих.

и внезапно при деплое в этот Орг, при прогоне всех тестов, ВСЕ классы выпали по ошибке:

Details: line -1, column -1: Previous load of class failed: существующийКласс: line 6, column 64: Invalid type: несуществующийКласс.ЕгоВложенныйКласс.

не знаю, что и сказать. Может это обычное дело, что система при деплое проверяет все классы на конфликты в синтаксисе, даже если эти классы не вызываются тестами. Или это был глюк системы?

также я не могу понять КАК можно было удалить в Орге класс, которые требуется в другом месте кода.
дело в том что в другом Орге (Проде) этот класс сущетсвует, а вот в недавно созданной фул-копи сендбоксе этого класс уже нет!

в Орге есть класс который создает объект не существующего в орге класса (как это возможно?!).  также я не нашел тестов его покрывающих.

и внезапно при деплое в этот Орг, при прогоне всех тестов, ВСЕ классы выпали по ошибке:

Details: line -1, column -1: Previous load of class failed: существующийКласс: line 6, column 64: Invalid type: несуществующийКласс.ЕгоВложенныйКласс.

не знаю, что и сказать. Может это обычное дело, что система при деплое проверяет все классы на конфликты в синтаксисе, даже если эти классы не вызываются тестами. Или это был глюк системы?

также я не могу понять КАК можно было удалить в Орге класс, которые требуется в другом месте кода.
дело в том что в другом Орге (Проде) этот класс сущетсвует, а вот в недавно созданной фул-копи сендбоксе этого класс уже нет!

Очень знакомая ошибка, но не скажу точно причину.
Но то что ничего тут особенного нет точно. Ищи ошибку в коде.
Да, проверяется весь код при деплое и если что-то отвалилось, то может быть такая ошибка.
Короче ничего путного я толком не сказал, но единственная мысль здесь - ищи проблему в своем коде.

Очень знакомая ошибка, но не скажу точно причину. 
Но то что ничего тут особенного нет точно. Ищи ошибку в коде.
Да, проверяется весь код при деплое и если что-то отвалилось, то может быть такая ошибка.
Короче ничего путного я толком не сказал, но единственная мысль здесь :D - ищи проблему в своем коде.

Dmitry Shnyrev
ищи проблему в своем коде

там нет проблем.
просто требуемого класса нет физически.
как его можно было удалить??? система же не позволяет удалять код, если у него есть зависимые классы\тригеры...

и почему система позволита его удалить, но позже "озаботилась" его отсутвием так сильно, что начало выдать ошибку на каждом существующем классе (в тесте)...

PS: да, утверждают, что его действительно просто взяли и удалили...

[quote="Dmitry Shnyrev"]ищи проблему в своем коде[/quote]

там нет проблем. 
просто требуемого класса нет физически. 
как его можно было удалить??? система же не позволяет удалять код, если у него есть зависимые классы\тригеры...

и почему система позволита его удалить, но позже "озаботилась" его отсутвием так сильно, что начало выдать ошибку на каждом существующем классе (в тесте)...

PS: да, утверждают, что его действительно просто взяли и удалили...

Судя по всему, SF с определенного момента потихоньку "оптимизировал", сиречь ускорил деплой и теперь можно запросто грохнуть класс на который есть ссылки из других мест. Это если речь идёт о SB или DEV организации. Но предполагаю что такая ситуация может произойти и в PROD'е, например вот так:
1. деплой осуществлялся посредством unmanaged package - тогда, на сколько я помню, прогоняются тесты только внутри "пакета" и в теории можно похерить что-то рядом
2. деплой осуществлялся с использованием новой фичи

RunSpecifiedTests
и тоже похерилось кое-что лежащее рядом

Судя по всему, SF с определенного момента потихоньку "оптимизировал", сиречь ускорил деплой и теперь можно запросто грохнуть класс на который есть ссылки из других мест. Это если речь идёт о SB или DEV организации. Но предполагаю что такая ситуация может произойти и в PROD'е, например вот так:
1. деплой осуществлялся посредством unmanaged package - тогда, на сколько я помню, прогоняются тесты только внутри "пакета" и в теории можно похерить что-то рядом
2. деплой осуществлялся с использованием новой фичи [code]RunSpecifiedTests[/code] и тоже похерилось кое-что лежащее рядом

спасибо Илья за важные комментарии.

но в том то и дело, что в том фул-копи сендбоксе этот класс был удален вручную через стандартный UI. по крайней мере они так утверждают, и я действительно верю, что это был единственный способ, каким они были "способны" произвести удаление

спасибо Илья за важные комментарии.

но в том то и дело, что в том фул-копи сендбоксе этот класс был удален вручную через стандартный UI. по крайней мере они так утверждают, и я действительно верю, что это был единственный способ, каким они были "способны" произвести удаление

Если класс является интерфейсом и запускается динамически, то убийство этого класса не вызовет никаких ошибок.

Это уже проверено не один раз.

Если класс является интерфейсом и запускается динамически, то убийство этого класса не вызовет никаких ошибок.

Это уже проверено не один раз.


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

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