Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Авторизация в spring улетает в бесконечный цикл / 25 сообщений из 78, страница 1 из 4
09.12.2021, 19:44
    #40118728
korshun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Cам не могу понять, из-за чего проблема
Подскажите пожалуйста, что я не так делаю ?
Код: 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.
public class UserEntity {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;

  @Column(nullable = false)
  private String name;

  @Column(nullable = false)
  @Email
  private String email;

  @Column(nullable = false)
  private String password;

  @ManyToMany(fetch = FetchType.EAGER)
  @JoinTable(
          name = "user_roles",
          joinColumns = { @JoinColumn(name = "user_id", referencedColumnName = "id") },
          inverseJoinColumns = { @JoinColumn(name = "role_id", referencedColumnName = "id") }
  )
  private Set<RoleEntity> roles;
  
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public class RoleEntity {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;

  @Column(nullable = false)
  private String name;

  @ManyToMany(
          fetch = FetchType.EAGER,
          mappedBy = "roles"
  )
  private List<UserEntity> users;

  @ManyToMany(fetch = FetchType.EAGER)
  @JoinTable(
          name = "roles_authority",
          joinColumns = { @JoinColumn(name = "role_id", referencedColumnName = "id") },
          inverseJoinColumns = { @JoinColumn(name = "autority_id", referencedColumnName = "id") }
  )
  private Set<PrivilegeEntity> privileges;
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class PrivilegeEntity {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;

  @Column(nullable = false)
  private String name;

  @ManyToMany(
          mappedBy = "privileges",
          fetch = FetchType.EAGER
  )
  private Set<RoleEntity> roles;
}



На строке Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(email, password)); все улетает в бесконечный цикл до StackOverflowError
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  @ResponseStatus(HttpStatus.OK)
  @PostMapping("/signin")
  public AuthResponseDto signIn(@RequestBody AuthRequestDto authRequest) {
    try {
      String email = authRequest.getEmail();
      String password = authRequest.getPassword();

      Authentication authentication = authenticationManager.authenticate(
              new UsernamePasswordAuthenticationToken(email, password));

      CustomUserDetails customUserDetails = (CustomUserDetails) authentication.getPrincipal();
      String token = customTokenProvider.generateToken(email, customUserDetails.getRoles());
      return new AuthResponseDto(customUserDetails.getId(), email, token);

    } catch (Exception ex) {
      log.error("Bad email or password." + ex.getMessage());
      throw new BadCredentialsException("Bad email or password");
    }
  }


Спасибо!
...
Рейтинг: 0 / 0
09.12.2021, 19:44
    #40118729
korshun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
з.ы. Вылазит при этом вот такое 100500 раз, это лишь часть:

Код: 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.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
	at ru.korshun.solbeg.entity.PrivilegeEntity.hashCode(PrivilegeEntity.java:10) ~[main/:na]
	at java.base/java.util.HashMap.hash(HashMap.java:339) ~[na:na]
	at java.base/java.util.HashMap.put(HashMap.java:607) ~[na:na]
	at java.base/java.util.HashSet.add(HashSet.java:220) ~[na:na]
	at java.base/java.util.AbstractCollection.addAll(AbstractCollection.java:352) ~[na:na]
	at org.hibernate.collection.internal.PersistentSet.endRead(PersistentSet.java:355) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:239) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:224) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:198) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.CollectionReferenceInitializerImpl.endLoading(CollectionReferenceInitializerImpl.java:154) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.finishLoadingCollections(AbstractRowReader.java:232) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.finishUp(AbstractRowReader.java:190) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl.extractResults(ResultSetProcessorImpl.java:96) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:105) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.collection.plan.AbstractLoadPlanBasedCollectionInitializer.initialize(AbstractLoadPlanBasedCollectionInitializer.java:87) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:710) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:76) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:2217) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection$4.doWork(AbstractPersistentCollection.java:595) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:264) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:591) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:149) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.PersistentSet.hashCode(PersistentSet.java:458) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at ru.korshun.solbeg.entity.RoleEntity.hashCode(RoleEntity.java:9) ~[main/:na]
	at java.base/java.util.HashMap.hash(HashMap.java:339) ~[na:na]
	at java.base/java.util.HashMap.put(HashMap.java:607) ~[na:na]
	at java.base/java.util.HashSet.add(HashSet.java:220) ~[na:na]
	at java.base/java.util.AbstractCollection.addAll(AbstractCollection.java:352) ~[na:na]
	at org.hibernate.collection.internal.PersistentSet.endRead(PersistentSet.java:355) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:239) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:224) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:198) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.CollectionReferenceInitializerImpl.endLoading(CollectionReferenceInitializerImpl.java:154) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.finishLoadingCollections(AbstractRowReader.java:232) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.finishUp(AbstractRowReader.java:190) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl.extractResults(ResultSetProcessorImpl.java:96) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:105) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.collection.plan.AbstractLoadPlanBasedCollectionInitializer.initialize(AbstractLoadPlanBasedCollectionInitializer.java:87) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:710) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:76) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:2217) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection$4.doWork(AbstractPersistentCollection.java:595) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:264) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:591) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:149) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.PersistentSet.hashCode(PersistentSet.java:458) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at ru.korshun.solbeg.entity.PrivilegeEntity.hashCode(PrivilegeEntity.java:10) ~[main/:na]
	at java.base/java.util.HashMap.hash(HashMap.java:339) ~[na:na]
	at java.base/java.util.HashMap.put(HashMap.java:607) ~[na:na]
	at java.base/java.util.HashSet.add(HashSet.java:220) ~[na:na]
	at java.base/java.util.AbstractCollection.addAll(AbstractCollection.java:352) ~[na:na]
	at org.hibernate.collection.internal.PersistentSet.endRead(PersistentSet.java:355) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:239) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:224) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.engine.loading.internal.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:198) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.CollectionReferenceInitializerImpl.endLoading(CollectionReferenceInitializerImpl.java:154) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.finishLoadingCollections(AbstractRowReader.java:232) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.finishUp(AbstractRowReader.java:190) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl.extractResults(ResultSetProcessorImpl.java:96) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:105) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.loader.collection.plan.AbstractLoadPlanBasedCollectionInitializer.initialize(AbstractLoadPlanBasedCollectionInitializer.java:87) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:710) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:76) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:2217) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection$4.doWork(AbstractPersistentCollection.java:595) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:264) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:591) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:149) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at org.hibernate.collection.internal.PersistentSet.hashCode(PersistentSet.java:458) ~[hibernate-core-5.6.1.Final.jar:5.6.1.Final]
	at ru.korshun.solbeg.entity.RoleEntity.hashCode(RoleEntity.java:9) ~[main/:na]
	at java.base/java.util.HashMap.hash(HashMap.java:339) ~[na:na]
	at java.base/java.util.HashMap.put(HashMap.java:607) ~[na:na]
	at java.base/java.util.HashSet.add(HashSet.java:220) ~[na:na]
	at java.base/java.util.AbstractCollection.addAll(AbstractCollection.java:352) ~[na:na]

...
Рейтинг: 0 / 0
09.12.2021, 19:56
    #40118731
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
korshun
На строке
до строки и после поставь вывод в лог свой текст.
Потом лог сюда с этого текста.
...
Рейтинг: 0 / 0
09.12.2021, 20:02
    #40118734
korshun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
PetroNotC Sharp
korshun
На строке
до строки и после поставь вывод в лог свой текст.
Потом лог сюда с этого текста.

Надеюсь правильно понял, о чем речь
Код: java
1.
2.
Hibernate: select userentity0_.id as id1_7_, userentity0_.created_at as created_2_7_, userentity0_.email as email3_7_, userentity0_.first_name as first_na4_7_, userentity0_.last_name as last_nam5_7_, userentity0_.password as password6_7_, userentity0_.updated_at as updated_7_7_ from users userentity0_ where userentity0_.email=?
Hibernate: select roles0_.user_id as user_id1_6_0_, roles0_.role_id as role_id2_6_0_, roleentity1_.id as id1_3_1_, roleentity1_.name as name2_3_1_ from user_roles roles0_ inner join roles roleentity1_ on roles0_.role_id=roleentity1_.id where roles0_.user_id=?


Далее 100500 раз повторяются эти две строки
Код: java
1.
2.
Hibernate: select privileges0_.role_id as role_id1_4_0_, privileges0_.autority_id as autority2_4_0_, privilegee1_.id as id1_2_1_, privilegee1_.name as name2_2_1_ from roles_authority privileges0_ inner join privileges privilegee1_ on privileges0_.autority_id=privilegee1_.id where privileges0_.role_id=?
Hibernate: select roles0_.autority_id as autority2_4_0_, roles0_.role_id as role_id1_4_0_, roleentity1_.id as id1_3_1_, roleentity1_.name as name2_3_1_ from roles_authority roles0_ inner join roles roleentity1_ on roles0_.role_id=roleentity1_.id where roles0_.autority_id=?

...
Рейтинг: 0 / 0
09.12.2021, 20:08
    #40118737
Авторизация в spring улетает в бесконечный цикл
Аутентификация тут не причем - просто hashCode() неправильно объявлен, он зацикливается. Из PrivilegeEntity.hashCode() ты вызываешь у коллекции hashCode(), а та вызывает RoleEntity.hashCode(). А тот ссылается снова на PrivilegeEntity и вызывает у него hashCode().

Если ты работаешь с ORM, то старайся не переопределять equals()/hashCode() вообще. Они обычно не нужны и только приводят к проблемам.

PS: Первое что нужно делать при траблшутинге - хорошенько разобраться со стектрейсом.
...
Рейтинг: 0 / 0
09.12.2021, 20:18
    #40118744
korshun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Stanislav Bashkyrtsev
Аутентификация тут не причем - просто hashCode() неправильно объявлен, он зацикливается. Из PrivilegeEntity.hashCode() ты вызываешь у коллекции hashCode(), а та вызывает RoleEntity.hashCode(). А тот ссылается снова на PrivilegeEntity и вызывает у него hashCode().

Если ты работаешь с ORM, то старайся не переопределять equals()/hashCode() вообще. Они обычно не нужны и только приводят к проблемам.

PS: Первое что нужно делать при траблшутинге - хорошенько разобраться со стектрейсом.

Хм, так hashCode() я и не переопределял и не вызываю его..
А почему они друг на друга ссылаются то ?
Сорри за глупые вопросы конечно..
...
Рейтинг: 0 / 0
09.12.2021, 20:21
    #40118746
SpringMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Покажи весь класс, там может быть какой-нибудь @Data из ломбок-а стоит
...
Рейтинг: 0 / 0
09.12.2021, 20:21
    #40118747
Авторизация в spring улетает в бесконечный цикл
Т.к. ты не показал классы целиком, то я могу лишь догадываться, что ты используешь Lombok. И поставил (и зря) аннотацию @EqualsAndHashcode или @Data (очень зря).
...
Рейтинг: 0 / 0
09.12.2021, 20:26
    #40118750
korshun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Stanislav Bashkyrtsev
Т.к. ты не показал классы целиком, то я могу лишь догадываться, что ты используешь Lombok. И поставил (и зря) аннотацию @EqualsAndHashcode или @Data (очень зря).

Блин, @Data, стоит, да..
Целый день ковыряюсь, глаз замылился уже.
Ты волшебник)) Спасибо!
...
Рейтинг: 0 / 0
10.12.2021, 00:56
    #40118819
adminDontSleep
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
korshun
Stanislav Bashkyrtsev
Т.к. ты не показал классы целиком, то я могу лишь догадываться, что ты используешь Lombok. И поставил (и зря) аннотацию @EqualsAndHashcode или @Data (очень зря).

Блин, @Data, стоит, да..
Целый день ковыряюсь, глаз замылился уже.
Ты волшебник)) Спасибо!

@Data и @Entity рядом быть не должны от слова вообще
ЖПА вообще не требует переопределения eq/hsc так как сравнение идет по Id

ну и мой совет - уходите от таких библиотек- учитесь писать это руками,тем более любая современная IDE на лету сгенерит вам нужный код

мы сейчас столкнулись с проблемой перехода на 17 джаву как раз изза ломбока ,так как ребята почему не позаботились об обратной совсестимости ,да собственно и о прямой тоже в итоге мы выпилили эту либу их проекта,перешли на 17ю и теперь не зависим от каких то ребят,которые проспали на месяц вспышку...
...
Рейтинг: 0 / 0
10.12.2021, 03:23
    #40118837
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
adminDontSleep,

Стас, ты опять забыл перед сном таблетки принять? Нормально компилится все под 17 жаву.
...
Рейтинг: 0 / 0
10.12.2021, 10:21
    #40118866
adminDontSleep
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Андрей Панфилов
adminDontSleep,

Стас, ты опять забыл перед сном таблетки принять? Нормально компилится все под 17 жаву.

почитай релиз лог от 6 октября их и подумай может ли оно нормально работать,пока еще очень много багов - мы решили пару месяцев подождать,пока будет стабильная версия
...
Рейтинг: 0 / 0
10.12.2021, 10:22
    #40118868
Авторизация в spring улетает в бесконечный цикл
Андрей Панфилов, для перехода на новую Java нужно обновлять версию Lombok'a. Но при этом он сломал обратную совместимость - аннотации на полях больше не проставляются на методы по умолчанию. Не знаю насколько это все сложно чинить, может там глобальная конфигурационная опция есть ¯\_(ツ)_/¯

Мне тоже кажется Lombok странноватой зависимостью - доп сложности ради каких-то мелочей.. У меня счас одновременно два проекта: на одном есть, на другом - нет. На 2ом хорошо себя чувствую и без него.
...
Рейтинг: 0 / 0
10.12.2021, 10:51
    #40118875
adminDontSleep
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Stanislav Bashkyrtsev
Андрей Панфилов, для перехода на новую Java нужно обновлять версию Lombok'a. Но при этом он сломал обратную совместимость - аннотации на полях больше не проставляются на методы по умолчанию. Не знаю насколько это все сложно чинить, может там глобальная конфигурационная опция есть ¯\_(ツ)_/¯

Мне тоже кажется Lombok странноватой зависимостью - доп сложности ради каких-то мелочей.. У меня счас одновременно два проекта: на одном есть, на другом - нет. На 2ом хорошо себя чувствую и без него.

у ребят из ломбока было достаточно времении чтобы привести в порядок свой код до релиза 17й,либо там такое количество багов ,что просто отсутсвует капасити на фиксы,либо они просто забили болт- и то и другое неприемлимо - поэтому мы решили сделать ласт трай через пару мес - если не будет адекватных фиксов - ломбок из проекта мы удалим,тем более что в свете 17й джавы он уже теряет прежнюю актуальность
...
Рейтинг: 0 / 0
10.12.2021, 11:06
    #40118877
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Может я ошибаюсь, но мне кажется, что Стас совсем недавно со всей пролетарской ненавистью топил именно за Ломбок. Не?
...
Рейтинг: 0 / 0
10.12.2021, 11:30
    #40118886
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Alexander A. Sak,
Дело в ненависти. У него максимализм, значит обсуждение невозможно. Только священные войны.
...
Рейтинг: 0 / 0
10.12.2021, 13:07
    #40118916
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
adminDontSleep
у ребят из ломбока было достаточно времении чтобы привести в порядок свой код до релиза 17й,либо там такое количество багов ,что просто отсутсвует капасити на фиксы,либо они просто забили болт- и то и другое неприемлимо - поэтому мы решили сделать ласт трай через пару мес - если не будет адекватных фиксов - ломбок из проекта мы удалим,тем более что в свете 17й джавы он уже теряет прежнюю актуальность


Ты *банько из сказки морозко...

если вот тут вот внимательно почитать, то можно выяснить:
- существует вполне работоспособный workaround для maven, кто использует gradle пусть сам с ним приседает, ибо использовать gradle на не ведроидных проектах - это клиника, а в ведроиде там тренд идет на котлин
- автор пишет, что ломбок до сих пор совместим с жавой 1.6 + еще более другие стремные компиляторы поддерживаются - нынешним колхозникам из openjdk до такого уровня совместимости как раком до Китая, там мужик реально грамотный, и не тебе его поносить
- если не думать про то, что эти модули нахрен никому не нужны, а просто позволяют включить режим вахтера у разработчиков, ровно как и private/final методы, то там задается вполне праведный вопрос: какого хрена ограничения возникают в режиме компиляции?
...
Рейтинг: 0 / 0
10.12.2021, 13:23
    #40118924
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Alexander A. Sak
Может я ошибаюсь, но мне кажется, что Стас совсем недавно со всей пролетарской ненавистью топил именно за Ломбок. Не?


Да он и за PostgreSQL одно время топил, потом чет начал поносить
...
Рейтинг: 0 / 0
10.12.2021, 15:23
    #40118998
adminDontSleep
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Андрей Панфилов
adminDontSleep
у ребят из ломбока было достаточно времении чтобы привести в порядок свой код до релиза 17й,либо там такое количество багов ,что просто отсутсвует капасити на фиксы,либо они просто забили болт- и то и другое неприемлимо - поэтому мы решили сделать ласт трай через пару мес - если не будет адекватных фиксов - ломбок из проекта мы удалим,тем более что в свете 17й джавы он уже теряет прежнюю актуальность


Ты *банько из сказки морозко...

если вот тут вот внимательно почитать, то можно выяснить:
- существует вполне работоспособный workaround для maven, кто использует gradle пусть сам с ним приседает, ибо использовать gradle на не ведроидных проектах - это клиника, а в ведроиде там тренд идет на котлин
- автор пишет, что ломбок до сих пор совместим с жавой 1.6 + еще более другие стремные компиляторы поддерживаются - нынешним колхозникам из openjdk до такого уровня совместимости как раком до Китая, там мужик реально грамотный, и не тебе его поносить
- если не думать про то, что эти модули нахрен никому не нужны, а просто позволяют включить режим вахтера у разработчиков, ровно как и private/final методы, то там задается вполне праведный вопрос: какого хрена ограничения возникают в режиме компиляции?

ну да ломбок настолько хорош,что не дружит с градл)Андрей иди выпей успокоительное)
так же не понял причем тут ведроидный проект- у нас к примеру клиент серверное приложение
...
Рейтинг: 0 / 0
13.12.2021, 04:40
    #40119542
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
adminDontSleep
ну да ломбок настолько хорош,что не дружит с градл)Андрей иди выпей успокоительное)
так же не понял причем тут ведроидный проект- у нас к примеру клиент серверное приложение


такой взрослый, а до сих пор в сказки веришь... Вот если ты английским не владеешь, то на чем твои суждения основываются-то? Харб чтоли читаешь, или товарищ по галере что-то рассказывает?

Объективно (без всяких инсинуаций в духе там хаки, а там не хаки):
- у ломбока есть довольно-такие большое комьюнити, игнорировать которое довольно глупо
- всякие движения в языке проходят довольно неторопливо, при этом результат на самом деле так себе, ну вот толку-то от этих record, если у них полноценных (т.е. как в ломбок) билдеров нет - сиди как дурак и шлепай конструкторы на пол-экрана, да копирования тоже нет (тут обязательно найдется кто-то, кто заявит, что много полей в классе - это якобы плохой дизайн. Нет.), т.е. record - это никакая не замена @Data, а просто детская поделка
- если пойти по ссылке, что я раньше давал, и посмотреть что сделали в ломбоке для того чтобы он без приседаний работал в 16-й жаве, то можно лицезреть картину маслом: чуваки сидели 7(!) лет, при этом в самом проекте jigsaw постулируется какая-то история про безопасность , а автор ломбок взял и через рефлексию все разломал - вот такая вот безопасность, так еще и в догонку задает довольно неприятные вопросы: какая нахрен здесь безопасность, если вы Security Manager убрали, ProcessBuilder в публичном API живет, а на файловой системе живет бинарник java? Вот такой вот "неприятный" автор ломбок.

Т.е. текущее состояние жавки примерно следующее: у нас совершенно ипанутое API для совершенно тривиальных вещей (ну например работа с массивами через пень колоду организована, java.lang.String#substring в UTF8 никак не умеет (сюрприз, да), лямбды такие, что без слез не глянешь + все что наболело), однако при этом у нас есть куча сборщиков мусора (в 1.6 их было 7 штук, сейчас даже считать лень) и никому не нужные модули - на мой взгляд это уже определенно стагнация.

Что касается твоего gradle, то вроде как я нигде не писал, что он не работает с ломбок - я писал, что чтобы пользоваться gradle в современных не ведроидных проектах нужно быть клиническим идиотом.
...
Рейтинг: 0 / 0
13.12.2021, 19:24
    #40119723
adminDontSleep
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Андрей Панфилов
adminDontSleep
ну да ломбок настолько хорош,что не дружит с градл)Андрей иди выпей успокоительное)
так же не понял причем тут ведроидный проект- у нас к примеру клиент серверное приложение


такой взрослый, а до сих пор в сказки веришь... Вот если ты английским не владеешь, то на чем твои суждения основываются-то? Харб чтоли читаешь, или товарищ по галере что-то рассказывает?

Объективно (без всяких инсинуаций в духе там хаки, а там не хаки):
- у ломбока есть довольно-такие большое комьюнити, игнорировать которое довольно глупо
- всякие движения в языке проходят довольно неторопливо, при этом результат на самом деле так себе, ну вот толку-то от этих record, если у них полноценных (т.е. как в ломбок) билдеров нет - сиди как дурак и шлепай конструкторы на пол-экрана, да копирования тоже нет (тут обязательно найдется кто-то, кто заявит, что много полей в классе - это якобы плохой дизайн. Нет.), т.е. record - это никакая не замена @Data, а просто детская поделка
- если пойти по ссылке, что я раньше давал, и посмотреть что сделали в ломбоке для того чтобы он без приседаний работал в 16-й жаве, то можно лицезреть картину маслом: чуваки сидели 7(!) лет, при этом в самом проекте jigsaw постулируется какая-то история про безопасность , а автор ломбок взял и через рефлексию все разломал - вот такая вот безопасность, так еще и в догонку задает довольно неприятные вопросы: какая нахрен здесь безопасность, если вы Security Manager убрали, ProcessBuilder в публичном API живет, а на файловой системе живет бинарник java? Вот такой вот "неприятный" автор ломбок.

Т.е. текущее состояние жавки примерно следующее: у нас совершенно ипанутое API для совершенно тривиальных вещей (ну например работа с массивами через пень колоду организована, java.lang.String#substring в UTF8 никак не умеет (сюрприз, да), лямбды такие, что без слез не глянешь + все что наболело), однако при этом у нас есть куча сборщиков мусора (в 1.6 их было 7 штук, сейчас даже считать лень) и никому не нужные модули - на мой взгляд это уже определенно стагнация.

Что касается твоего gradle, то вроде как я нигде не писал, что он не работает с ломбок - я писал, что чтобы пользоваться gradle в современных не ведроидных проектах нужно быть клиническим идиотом.

чувствую твою боль,спорить про лобмок я с тобой не буду ибо объективно сейчас он не рабочий,но я знаю что ребята его пофиксят и станет норм- и собственно непонятно чего ты заагрился

но самое главное - я бы хотел услышать вот этот момент- ты назвал систему модулей джава никому не нужной - у нас лиды хотя бить проект на модули - очень интересно будет послушать твои аргументы против модульной архтетектуры( пс это не сарказм )
...
Рейтинг: 0 / 0
13.12.2021, 19:40
    #40119725
adminDontSleep
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Андрей Панфилов,
давай без эмоций в отдельной теме поговорим
мне реально интересна твоя позиция,особенно в плане модулей джавы и как выше оказалось - почему ты называешь рекорды поделкой

но самый первый вопрос - почему ты считаешь что только идиоты сейчас будут свитчить на модули?
...
Рейтинг: 0 / 0
13.12.2021, 19:57
    #40119733
adminDontSleep
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Андрей Панфилов


Т.е. текущее состояние жавки примерно следующее: у нас совершенно ипанутое API для совершенно тривиальных вещей (ну например работа с массивами через пень колоду организована, java.lang.String#substring в UTF8 никак не умеет (сюрприз, да), лямбды такие, что без слез не глянешь + все что наболело), однако при этом у нас есть куча сборщиков мусора (в 1.6 их было 7 штук, сейчас даже считать лень) и никому не нужные модули - на мой взгляд это уже определенно стагнация.

Что касается твоего gradle, то вроде как я нигде не писал, что он не работает с ломбок - я писал, что чтобы пользоваться gradle в современных не ведроидных проектах нужно быть клиническим идиотом.

Андрей мне кажется ты либо на пенсию вышел ,либо заболел)
давай аргументы своим словам
ты пишешь градл плохо для всех ,кто не пишет на ведро
я тебе скажу что весь энтерпрайз на градле потому что там можно делать кастомные таски
жду аргументов по всем твоим эпитетам
1.градл плохл
2.Модули плохл
3.рекорды - детская поделка
...
Рейтинг: 0 / 0
13.12.2021, 20:18
    #40119740
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
Модули - суть дисциплина программирования. Это то с чем многие согласны но не могут посчитать в деньгах.
Вот какая дисциплина в JavaScript/Node.JS? Да никакой. Пишут как бох даст. К каждому проекту - персональный
уникальный фреймворк.

Может зайти со стороны секюрити? Ценная тема. Это как пожарная безопаность. Выж не спорите с пожарным
инспектором когда он говорит о статистике пожаров. Да. Пожары - страшная штука. Вот давеча весь мир был в огне.
Горела земля у тех кто Log4j2 затащил к себе в некотором диапазоне версий. Вот если-бы они использовали module-info.
Это помогало-бы локализовать опасные взаимодействия с пользователем? ХЗ.

Может зайти со стороны билда? Модули современного maven проекта? Хрен там. Модули maven и модули java9
пока - ортогональны и не знают друг друга.
...
Рейтинг: 0 / 0
13.12.2021, 20:42
    #40119745
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в spring улетает в бесконечный цикл
adminDontSleep
ты пишешь градл плохо для всех ,кто не пишет на ведро
ну это по факту так. Разве не видно хотя бы по нашей ветке?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Авторизация в spring улетает в бесконечный цикл / 25 сообщений из 78, страница 1 из 4
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]