2323import org .springframework .web .context .request .RequestAttributes ;
2424import org .springframework .web .context .request .RequestContextHolder ;
2525import tools .dynamia .domain .util .DomainUtils ;
26+ import tools .dynamia .integration .CloneableThreadLocalObject ;
2627import tools .dynamia .integration .Containers ;
28+ import tools .dynamia .integration .ThreadLocalObjectContainer ;
2729import tools .dynamia .integration .sterotypes .Component ;
2830import tools .dynamia .modules .saas .api .AccountException ;
2931import tools .dynamia .modules .saas .api .dto .AccountDTO ;
3941 */
4042@ Component ("accountSessionHolder" )
4143@ SessionScope
42- public class AccountSessionHolder implements Serializable {
44+ public class AccountSessionHolder implements Serializable , CloneableThreadLocalObject {
4345
4446
4547 @ JsonIgnore
@@ -61,7 +63,7 @@ public AccountSessionHolder(AccountService service) {
6163 public static AccountSessionHolder get () {
6264 AccountSessionHolder accountSessionHolder = null ;
6365 try {
64- accountSessionHolder = Containers . get (). findObject (AccountSessionHolder .class );
66+ accountSessionHolder = ThreadLocalObjectContainer . getObject (AccountSessionHolder .class );
6567 } catch (Exception e ) {
6668 RequestAttributes attributes = RequestContextHolder .getRequestAttributes ();
6769 if (attributes != null ) {
@@ -140,4 +142,15 @@ public ZoneId getAccountTimeZone() {
140142 }
141143 return accountTimeZone ;
142144 }
145+
146+ public AccountSessionHolder clone () {
147+ AccountSessionHolder accountSessionHolder = new AccountSessionHolder (service );
148+ accountSessionHolder .currentId = this .currentId ;
149+ accountSessionHolder .accountLocale = this .accountLocale ;
150+ accountSessionHolder .accountTimeZone = this .accountTimeZone ;
151+ accountSessionHolder .currentDTO = this .currentDTO ;
152+ return accountSessionHolder ;
153+ }
154+
155+
143156}
0 commit comments