|
|
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
Имеется два приклада. Первый приклад вызывает метод второго по WS. В методе второго приклада Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Из базы через Hibernate извлекается Entity объект, переприсваевается другой переменной и отправляется в ретурн по вебсервису. В чем беда: почему то одно из полей EntityObj с типом java.util.Date при этом обнуляется. Т.е. на втором прикладе оно перед ретурном есть, а в первом его уже нет, после прохождения через SOAP WS. Очень похоже на то, что это поле присваивается какой то локальной переменной, которая уничтожается после отрабатывания метода вебсервиса. Если перед ретурном сделать Код: java 1. или вместо переприсваивания клонировать весь объект EntityObj obj в EntityObj result, то проблема решается. В чем вопрос: с чем связанно такое "выборочное" обнуление полей EntityObj? Почему не обнулились другие поля или весь result? В каких ещё случаях такое возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 15:09 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
Поставить breakpoint на setMagicDate() и посмотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 15:12 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПоставить breakpoint на setMagicDate() и посмотреть? Ставил, не вызывается сеттер. По коду тоже рыскал, не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 15:14 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
new EntityObj().getMagicDate() - вернет null? Или есть какое-то значение по-умолчанию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 15:15 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
Blazkowicznew EntityObj().getMagicDate() - вернет null? Или есть какое-то значение по-умолчанию? null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 15:18 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
Можно поставить field breakpoint. Но тормозить будет жутко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 15:21 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
Листинг EntityObj: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 15:24 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
BlazkowiczМожно поставить field breakpoint. Но тормозить будет жутко. Т.е. Вы думаете, что тут не магия, а какое то прямое присваивание fieldа локальной переменной из кода? Я грешил на какие то особенности маппинга дат хибернетом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 15:28 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
RebeledТ.е. Вы думаете, что тут не магия, а какое то прямое присваивание fieldа локальной переменной из кода? Я грешил на какие то особенности маппинга дат хибернетом. Сложно сказать. А на getter если поставить брейкпоинт? SOAP сериализатор его вызывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 15:34 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
BlazkowiczRebeledТ.е. Вы думаете, что тут не магия, а какое то прямое присваивание fieldа локальной переменной из кода? Я грешил на какие то особенности маппинга дат хибернетом. Сложно сказать. А на getter если поставить брейкпоинт? SOAP сериализатор его вызывает? Да, аж 3 раза. Каждый раз значение не пустое. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. При этом дата перестала пропадать после вызова WS, хотя я убрал все костыли. Причем, судя по логам, она то пропадает, то нет. Вернее на каких то сессиях пропадает стабильно, а на каких то стабильно не пропадает. Короче мистика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 16:11 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
Rebeled, Самописных Thread.dumpStack() я ещё не видел. Ещё и с таким оверхедом по памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 16:15 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
Таки остаётся только одно. Field Breakpoint с условием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 16:16 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
BlazkowiczRebeled, Самописных Thread.dumpStack() я ещё не видел. Ещё и с таким оверхедом по памяти. Не верю(с) =) BlazkowiczТаки остаётся только одно. Field Breakpoint с условием. Не помогает, так как проблема чудесным образом перестала проявляться в дебагере. Условие поставил magicDate==null. Правильно? Никогда условием не пользовался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 16:40 |
|
||
|
Чудесное исчезновение
|
|||
|---|---|---|---|
|
#18+
RebeledНе помогает, так как проблема чудесным образом перестала проявляться в дебагере. Условие поставил magicDate==null. Правильно? Никогда условием не пользовался. Нет. Я имел ввиду, что нужно фильтровать field access/field modification. magicDate==null не отработает в нужный момент, потому что значение не null, в тот момент, когда кто-то присваивает null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 16:45 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38711038&tid=2126786]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
165ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 435ms |

| 0 / 0 |
