From 90138ca93d7a583929a8109bad0824259ea360b1 Mon Sep 17 00:00:00 2001 From: DyCTaTOR <125912249+DyCTaTOR@users.noreply.github.com> Date: Thu, 23 May 2024 20:53:38 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B0?= =?UTF-8?q?=20=D1=81=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=D0=BC=D0=B8,?= =?UTF-8?q?=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B0=20=D1=81=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=D0=BC=D0=B8,=20=D1=81=20=D0=BA=D0=B0=D1=84=D0=B5=D0=B4?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=B8,=20=D0=BD=D0=B0=D1=87=D0=B0=D1=82?= =?UTF-8?q?=D0=B0=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B0=20?= =?UTF-8?q?=D1=81=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8F=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data.mv.db | Bin 811008 -> 958464 bytes data.trace.db | 386 ++++++++++++++++++ gradle/wrapper/gradle-wrapper.properties | 3 + .../demo/core/error/AdviceController.java | 53 +++ .../department/api/DepartmentController.java | 83 ++-- .../directions/api/DirectionsController.java | 2 +- .../entrysData/api/EntrysDataController.java | 36 +- .../api/EntrysDataGroupedDepartmentDto.java | 40 ++ .../model/EntrysDataGroupedDepartment.java | 8 + .../repository/EntrysDataRepository.java | 5 + .../entrysData/service/EntrysDataService.java | 7 + .../demo/news/service/NewsService.java | 2 +- src/main/resources/templates/default.html | 10 +- .../resources/templates/department-edit.html | 28 ++ src/main/resources/templates/departments.html | 53 +++ .../resources/templates/direction-edit.html | 4 +- src/main/resources/templates/directions.html | 2 +- src/main/resources/templates/error.html | 37 ++ src/main/resources/templates/user-edit.html | 0 src/main/resources/templates/users.html | 57 +++ src/main/resources/templates/usersGroup.html | 57 +++ 21 files changed, 839 insertions(+), 34 deletions(-) create mode 100644 src/main/java/com/example/demo/core/error/AdviceController.java create mode 100644 src/main/java/com/example/demo/entrysData/api/EntrysDataGroupedDepartmentDto.java create mode 100644 src/main/java/com/example/demo/entrysData/model/EntrysDataGroupedDepartment.java create mode 100644 src/main/resources/templates/department-edit.html create mode 100644 src/main/resources/templates/departments.html create mode 100644 src/main/resources/templates/error.html create mode 100644 src/main/resources/templates/user-edit.html create mode 100644 src/main/resources/templates/users.html create mode 100644 src/main/resources/templates/usersGroup.html diff --git a/data.mv.db b/data.mv.db index 6302d81a0794cf35fd1337c34693dc96e6bf8d6e..6be687021a18eb80e3c20156e6bcc365fe32e591 100644 GIT binary patch delta 57536 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 delta 7219 zcmcIpd2k%%mH)b@d#0}$$<|?6mZcflQY1XK`<&?>1C|4Jyv8@-u!{wHS~J+OEeT6v zfvTX9ae+C)u?{@r&4xI&B#>imVaiPw76f=%Fj>G!mI8KJVE>>hn**zM0h3Lw_VqD` zj7?IzVX8E*zv=II-}`>wd%yQon#`3Zm9Et}HJ#r%= zM=q~s@9+8&Jan%haf)MUdd4y*uKhvXygy<9UmhSFeSi9qx?7{k+oMSe|7iS+xX~m- z$=9e_dS_t(^%%0RD-7q%^e+3xoGKS(d>G1QWIermaBw82I;MkK$*LwhT6$#ru0k$v z%LOOzWYRYjb`NhK96(*Q^g!Xpk(^OXj|@6Fr6Ak;C&pIA1VSiUxEqdc6sDQ;g(DQ~ zyC`8rga_ycO8nLc-xh(?#fjn0c76}DkB<>rxkOp3tYdrDv%MSG-i>T8A%y)vYGL8f zusANrS`3w2g37t?|5<#5p%n+Nze(yqxqtlVF+C$|5qyb*x+5<}2}Ke5#Xgd_=HCeY z(j=jCSGS~j-@Hp~vq(r&s`*zj_r9G%J;f{Gi#$w3BX_yia_qW@JH0)&E^_Qs_S+oX zbClzu=M#QmQ`Was#?s{U&h0l8)}h(7BG{ks7f14n36Fllry`DAfLV9Pe*p9M@ErVj zO6-QITZFqQ1>So{YTnOz7@4^|RPk$(vewbYOJ2&|k4NoGda8aka+e3N)33 zB&EVstJn;K$D-2yBX7hK{WWSS2J9*ct#eJ&TSZsQ+7ndzv-W3aRbjFuG&P%)5-*>; zoX;8=uVq5(M`Di_;6YaNdZF4UlXvuLD{DLc2p>7JrNXLlVJRODw2N@dxL{1_tG_CBP>ah~r3~d- zKo)lvMx1Sh-8l{SuH}mgB69uyQj&3}2N~|Ylxq9|{KN4vp|h8_a!T8?K#d!Pw0ppW1G5&JjSuy^b5aXg&#<;4(3X#6!i$b{ur*4eYqWqj5q>A!l zHeWCUJnA(l*L;-odf8jT{TD=9&jIv#b3B-ziF2pF2(K5J#(3?tdM(T?{}PsAZpi`6 z!(T&~hpiCiVJn1r*a~1SbHQw10LsgNt%YO-<>>oltyo1lOxH2I%MG!o$Kd_{WJ`@t zQNeAotxRali~$p0ms;0)9{IEeHaJZ3dXnIAJib4bPP*nxR{TFc|2?tX0gH z9Tr@FK0EJxtG{xD-f~_{$Y_~DdeCu3hwK68rd-kgJXX;uAL?W%aA<<+fUA}>bI!Bv z@XF=O%V&Hf8MdvImp3ph85T@D7j0~IYF5qrtE!G|!E<~0W|(>|x)3&gi;30gPIaG( zBSX*gQ46*tq9ScMaLe=26m2~Qhn|n75p|wnw2T82zvmj@gXg0f9NfcW$9~AX5KVTd zisvWotbgP>DuQ0m&idX~HV{ZBk4K*zqmt;l7WEM-*++=B1{)JbW5ti-b<}}N`#r44A7NQF+uA8t!WL|A~ z6E{>M^yasH$$X>L+aZZQ47kM=!46e_hg!`J)#?tFqLJ6k>JD$8u8ZPd%$=^|xFabw z6Alg-li{O7^#X3lm|(0lBVuF%_~x?#77g3-SP_S;h`cFYO5oTgp{xB_LYR3iK2eFx z*-B_^vu_2G+jS5=-6Skzx{@6!NNpCjaZyV8E=6||pmwv3FgDH|f@^*juZP@i(XY7A z{w)40250BqVZKh&tpt+)#WX_w*VuV*RbOnvUHw)(7j@-JnV(RLQHSn%PGkm0dbvcH z&NDeuGI1{xa3oQ$#1G?(j2~xs`-Z?j`GzhNE*L;w(|rziZ`6>dVzvO!trQyS@)+-{ zjx+H8uxzWuNAOLVl}SyR;7~mpTwcp`;OLlO!J9=!q72}XbrM_?_PTinpDv_SX~B973?C zmnhykeYhUmv%0@9q_Vx9(6Co``xA9ON|6%sYugDuffuBsttC~<cC0@h zk0tCH$f!2lI>LF~PKXEglb;DCUZ@~j7~)gt>ri?WdXzy|-$%%v6@k3tfG_Cy;_HByrwO3&Ok z{M}IOwIs$m�NM&bsZdc)TvYFre^3*8kj#h1q>hDK;8y&L1Y^fR5jqgU^Qmd*BS z{f1T!W9Z;{bnpUqs#CH2f!Q!6R)U;3iwQ*N;Z^wElvtA!-~d1G4Ly7YgBwn}vd8oA zN%5Pc#79Vg=K#)Bc$+-ELA;29CpHR~&F*2>uXYCejnxD8E@SmDe&DuE!jfH&(6opd zECvK(UycF7lUMqIg52BeOX{Z&`tLs{fcWplMf6M~LqerH=-CA`F# zkK;d&&~0$flyt%!j7ifGC_PDc$Jj+YVet3+)I^8-RRtxTjzc2fweYx&zX(hcb2ZPtGVdQ z999>ajrG1gH+bLJ4Zmk}GZwl0UT^x9!)sR!53lhgDZf2WUR&cu0l6yVHUn@j%Ry^>n)^Ni2 zt%*_VgSy*!nlSq)!uG&3r&yV0d*Q=VtTEPZov!~JpK7+wI=4@4FqPSNdh@b9`>4Rp zcA2{yW;oWf_*M3U3+`^D&Lb>x7kG47yjhTyu(+ZI#T6`84BaFpQQUu%^rRsxSXxoh zFx_ggX$Eb0v5(BYp}l2EtwXNg(z(2uw7}F7<^%V2OWawi=q9fk06dhQF7T^k=3aVk|&!Ixb&)VUczZE68 zr85zO?~e(MR;U72_QGeYA4eP3?Fg8PlAQMyyXqsv!s1=_qABvJK zA4+xx)5f#}3vC1##fN2J9eldB6_5;;;9aeS^D6VwOfGhC~rcgG{Wu678#Z#H!K+OD}4=Q>bLS zFug(GJ4_#!Mo17WKUpx4AcXt?4i}jPH6_Eae1fHN@9yc@{(_ePwgw5{pA$d4pFrij z@Q#vt3|`tKELeh%kzS0@FHaJB$5#Ip`}c2GBRIb2uD~`*VPGrF-7E|-Y_jef?p>7B z#$t{r-c5gQj>zM{P4RalbO#(-LtPE+t?VrKojKCK@G)WA9G9WnVf+o@r2Eu%@g5#K zb6YzXv-DgTpBr7{{v<2$9LK$L-rDFNkz-m1Vl#pT>MR{@Kcf!cnLfsaIc6mYsM)i* z{xv-O_bKsBznTt4Nmy{M?9hS_nP?l8g(pfviZ1>TCJIcNvS54*+d%g_pj;xZ#J5wM z;>o#qJ2UFQkd3YToe)zV3+SkKLO#OrWIXAeh$rzxP~t8h zxiyf7%fL%BLCRJJQ3ZFZS;buzRnX1al+7Lgj~EqmzmvkWJxJcuIB|FVj~L&u&tO&P zdsh=0rSSB(XBxJC3$ffyz+G0)Hgy`kQNaIo9Dv_G#W%u{W%#vJh^mwhPp^{Zi{+SW z7tb1V|Azklvm2!-^&~W$7Sf^BGa5p_oF~I&r!h-@?_*4E#`wO49rv2m8NZM|nd?q#sJcj#8BDdO#KR)OgZb1_Y+*@A*KJNrt> zf?q}$k;abhl~St7&-L>K--~Nldh{}~0xbWj@EUl4=zJpt#48>kkQ{#Ng+St|cpp5K m30tp&(iqQm1sO)Q6k!)@d`{M}b=@+&DpB~KifNI$_J08>EcdAZ diff --git a/data.trace.db b/data.trace.db index c87f3a7..21b8db1 100644 --- a/data.trace.db +++ b/data.trace.db @@ -26159,3 +26159,389 @@ java.sql.SQLClientInfoException: Client info name 'ApplicationName' not supporte at org.jkiss.dbeaver.ui.LoadingJob.run(LoadingJob.java:78) at org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:115) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) +2024-05-23 14:35:29.633369+04:00 database: flush +org.h2.message.DbException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" +General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" [50000-224] + at org.h2.message.DbException.get(DbException.java:212) + at org.h2.message.DbException.convert(DbException.java:407) + at org.h2.mvstore.db.Store.lambda$new$0(Store.java:122) + at org.h2.mvstore.MVStore.handleException(MVStore.java:1546) + at org.h2.mvstore.MVStore.panic(MVStore.java:371) + at org.h2.mvstore.MVStore.(MVStore.java:291) + at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2035) + at org.h2.mvstore.db.Store.(Store.java:133) + at org.h2.engine.Database.(Database.java:326) + at org.h2.engine.Engine.openSession(Engine.java:92) + at org.h2.engine.Engine.openSession(Engine.java:222) + at org.h2.engine.Engine.createSession(Engine.java:201) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343) + at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:125) + at org.h2.Driver.connect(Driver.java:59) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:100) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) + at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.getConnectionUrl(H2ConsoleAutoConfiguration.java:94) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395) + at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258) + at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) + at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) + at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) + at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622) + at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627) + at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.logDataSources(H2ConsoleAutoConfiguration.java:86) + at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.lambda$h2Console$0(H2ConsoleAutoConfiguration.java:69) + at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.withThreadContextClassLoader(H2ConsoleAutoConfiguration.java:78) + at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.h2Console(H2ConsoleAutoConfiguration.java:69) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:578) + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1335) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1165) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:210) + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:201) + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addServletContextInitializerBeans(ServletContextInitializerBeans.java:96) + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.(ServletContextInitializerBeans.java:85) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:266) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:240) + at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:52) + at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4866) + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) + at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) + at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866) + at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845) + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) + at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) + at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866) + at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240) + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) + at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433) + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) + at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:921) + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) + at org.apache.catalina.startup.Tomcat.start(Tomcat.java:437) + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:126) + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.(TomcatWebServer.java:105) + at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:499) + at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:218) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:188) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:162) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:618) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) + at com.example.demo.DemoApplication.main(DemoApplication.java:38) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:578) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.h2.jdbc.JdbcSQLNonTransientException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" +General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" [50000-224] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:566) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) + ... 99 more +Caused by: org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7] + at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996) + at org.h2.mvstore.SingleFileStore.lockFileChannel(SingleFileStore.java:143) + at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:117) + at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:81) + at org.h2.mvstore.MVStore.(MVStore.java:286) + ... 93 more +2024-05-23 14:35:31.977445+04:00 database: flush +org.h2.message.DbException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" +General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" [50000-224] + at org.h2.message.DbException.get(DbException.java:212) + at org.h2.message.DbException.convert(DbException.java:407) + at org.h2.mvstore.db.Store.lambda$new$0(Store.java:122) + at org.h2.mvstore.MVStore.handleException(MVStore.java:1546) + at org.h2.mvstore.MVStore.panic(MVStore.java:371) + at org.h2.mvstore.MVStore.(MVStore.java:291) + at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2035) + at org.h2.mvstore.db.Store.(Store.java:133) + at org.h2.engine.Database.(Database.java:326) + at org.h2.engine.Engine.openSession(Engine.java:92) + at org.h2.engine.Engine.openSession(Engine.java:222) + at org.h2.engine.Engine.createSession(Engine.java:201) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343) + at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:125) + at org.h2.Driver.connect(Driver.java:59) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:100) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:428) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:276) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:107) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) + at org.hibernate.boot.model.relational.Database.(Database.java:45) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:223) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:191) + at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:170) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1432) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1503) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1234) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) + at com.example.demo.DemoApplication.main(DemoApplication.java:38) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:578) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.h2.jdbc.JdbcSQLNonTransientException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" +General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" [50000-224] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:566) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) + ... 64 more +Caused by: org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7] + at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996) + at org.h2.mvstore.SingleFileStore.lockFileChannel(SingleFileStore.java:143) + at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:117) + at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:81) + at org.h2.mvstore.MVStore.(MVStore.java:286) + ... 58 more +2024-05-23 14:36:30.468177+04:00 database: flush +org.h2.message.DbException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" +General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" [50000-224] + at org.h2.message.DbException.get(DbException.java:212) + at org.h2.message.DbException.convert(DbException.java:407) + at org.h2.mvstore.db.Store.lambda$new$0(Store.java:122) + at org.h2.mvstore.MVStore.handleException(MVStore.java:1546) + at org.h2.mvstore.MVStore.panic(MVStore.java:371) + at org.h2.mvstore.MVStore.(MVStore.java:291) + at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2035) + at org.h2.mvstore.db.Store.(Store.java:133) + at org.h2.engine.Database.(Database.java:326) + at org.h2.engine.Engine.openSession(Engine.java:92) + at org.h2.engine.Engine.openSession(Engine.java:222) + at org.h2.engine.Engine.createSession(Engine.java:201) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343) + at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:125) + at org.h2.Driver.connect(Driver.java:59) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:100) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) + at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.getConnectionUrl(H2ConsoleAutoConfiguration.java:94) + at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395) + at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258) + at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258) + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) + at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) + at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) + at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) + at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622) + at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627) + at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.logDataSources(H2ConsoleAutoConfiguration.java:86) + at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.lambda$h2Console$0(H2ConsoleAutoConfiguration.java:69) + at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.withThreadContextClassLoader(H2ConsoleAutoConfiguration.java:78) + at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.h2Console(H2ConsoleAutoConfiguration.java:69) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:578) + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1335) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1165) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:210) + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:201) + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addServletContextInitializerBeans(ServletContextInitializerBeans.java:96) + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.(ServletContextInitializerBeans.java:85) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:266) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:240) + at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:52) + at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4866) + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) + at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) + at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866) + at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845) + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) + at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) + at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866) + at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240) + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) + at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433) + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) + at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:921) + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) + at org.apache.catalina.startup.Tomcat.start(Tomcat.java:437) + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:126) + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.(TomcatWebServer.java:105) + at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:499) + at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:218) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:188) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:162) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:618) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) + at com.example.demo.DemoApplication.main(DemoApplication.java:38) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:578) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.h2.jdbc.JdbcSQLNonTransientException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" +General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" [50000-224] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:566) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) + ... 99 more +Caused by: org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7] + at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996) + at org.h2.mvstore.SingleFileStore.lockFileChannel(SingleFileStore.java:143) + at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:117) + at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:81) + at org.h2.mvstore.MVStore.(MVStore.java:286) + ... 93 more +2024-05-23 14:36:32.717810+04:00 database: flush +org.h2.message.DbException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" +General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" [50000-224] + at org.h2.message.DbException.get(DbException.java:212) + at org.h2.message.DbException.convert(DbException.java:407) + at org.h2.mvstore.db.Store.lambda$new$0(Store.java:122) + at org.h2.mvstore.MVStore.handleException(MVStore.java:1546) + at org.h2.mvstore.MVStore.panic(MVStore.java:371) + at org.h2.mvstore.MVStore.(MVStore.java:291) + at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2035) + at org.h2.mvstore.db.Store.(Store.java:133) + at org.h2.engine.Database.(Database.java:326) + at org.h2.engine.Engine.openSession(Engine.java:92) + at org.h2.engine.Engine.openSession(Engine.java:222) + at org.h2.engine.Engine.createSession(Engine.java:201) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343) + at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:125) + at org.h2.Driver.connect(Driver.java:59) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:100) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:428) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:276) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:107) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) + at org.hibernate.boot.model.relational.Database.(Database.java:45) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:223) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:191) + at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:170) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1432) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1503) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) + at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1234) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) + at com.example.demo.DemoApplication.main(DemoApplication.java:38) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:578) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.h2.jdbc.JdbcSQLNonTransientException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" +General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7]" [50000-224] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:566) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) + ... 64 more +Caused by: org.h2.mvstore.MVStoreException: The file is locked: D:/html-prog/Semestr 2/repos/Internet_Programming_2/data.mv.db [2.2.224/7] + at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996) + at org.h2.mvstore.SingleFileStore.lockFileChannel(SingleFileStore.java:143) + at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:117) + at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:81) + at org.h2.mvstore.MVStore.(MVStore.java:286) + ... 58 more diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1af9e09..9705300 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -5,3 +5,6 @@ networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists +org.gradle.daemon=true +org.gradle.parallel=true +org.gradle.configureondemand=true \ No newline at end of file diff --git a/src/main/java/com/example/demo/core/error/AdviceController.java b/src/main/java/com/example/demo/core/error/AdviceController.java new file mode 100644 index 0000000..baa254c --- /dev/null +++ b/src/main/java/com/example/demo/core/error/AdviceController.java @@ -0,0 +1,53 @@ +package com.example.demo.core.error; + +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.servlet.ModelAndView; + +import jakarta.servlet.http.HttpServletRequest; + +@ControllerAdvice +public class AdviceController { + private final Logger log = LoggerFactory.getLogger(AdviceController.class); + + private static Throwable getRootCause(Throwable throwable) { + Throwable rootCause = throwable; + while (rootCause.getCause() != null && rootCause.getCause() != rootCause) { + rootCause = rootCause.getCause(); + } + return rootCause; + } + + private static Map getAttributes(HttpServletRequest request, Throwable throwable) { + final Throwable rootCause = getRootCause(throwable); + final StackTraceElement firstError = rootCause.getStackTrace()[0]; + return Map.of( + "message", rootCause.getMessage(), + "url", request.getRequestURL(), + "exception", rootCause.getClass().getName(), + "file", firstError.getFileName(), + "method", firstError.getMethodName(), + "line", firstError.getLineNumber()); + } + + @ExceptionHandler(value = Exception.class) + public ModelAndView defaultErrorHandler(HttpServletRequest request, Throwable throwable) throws Throwable { + if (AnnotationUtils.findAnnotation(throwable.getClass(), + ResponseStatus.class) != null) { + throw throwable; + } + + log.error("{}", throwable.getMessage()); + throwable.printStackTrace(); + final ModelAndView model = new ModelAndView(); + model.addAllObjects(getAttributes(request, throwable)); + model.setViewName("error"); + return model; + } +} diff --git a/src/main/java/com/example/demo/department/api/DepartmentController.java b/src/main/java/com/example/demo/department/api/DepartmentController.java index 9a83f47..5b70bf0 100644 --- a/src/main/java/com/example/demo/department/api/DepartmentController.java +++ b/src/main/java/com/example/demo/department/api/DepartmentController.java @@ -1,26 +1,28 @@ package com.example.demo.department.api; -import java.util.List; - import org.modelmapper.ModelMapper; -import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.example.demo.core.configuration.Constants; -import com.example.demo.department.service.DepartmentService; import com.example.demo.department.model.DepartmentEntity; +import com.example.demo.department.service.DepartmentService; import jakarta.validation.Valid; -@RestController -@RequestMapping(Constants.API_URL + "/departments") +@Controller +@RequestMapping(DepartmentController.URL) public class DepartmentController { + public static final String URL = "/departments"; + private static final String DEPARTMENTS_VIEW = "departments"; + private static final String DEPARTMENTS_EDIT_VIEW = "department-edit"; + private static final String DEPARTMENTS_ATTRIBUTE = "departments"; private final DepartmentService departmentService; private final ModelMapper modelMapper; @@ -38,27 +40,62 @@ public class DepartmentController { } @GetMapping - public List getAll() { - return departmentService.getAll().stream().map(this::toDto).toList(); + public String getAll(Model model) { + model.addAttribute(DEPARTMENTS_ATTRIBUTE, + departmentService.getAll().stream().map(this::toDto).toList()); + return DEPARTMENTS_VIEW; } - @GetMapping("/{id}") - public DepartmentDto get(@PathVariable(name = "id") Long id) { - return toDto(departmentService.get(id)); + @GetMapping("/edit/") + public String create( + Model model) { + model.addAttribute(DEPARTMENTS_ATTRIBUTE, new DepartmentDto()); + return DEPARTMENTS_EDIT_VIEW; } - @PostMapping - public DepartmentDto create(@RequestBody @Valid DepartmentDto dto) { - return toDto(departmentService.create(toEntity(dto))); + @PostMapping("/edit/") + public String create( + Model model, + @ModelAttribute(name = DEPARTMENTS_ATTRIBUTE) @Valid DepartmentDto department, + BindingResult bindingResult){ + if (bindingResult.hasErrors()) { + return DEPARTMENTS_EDIT_VIEW; + } + departmentService.create(toEntity(department)); + return Constants.REDIRECT_VIEW + URL; } - @PutMapping("/{id}") - public DepartmentDto update(@PathVariable(name = "id") Long id, @RequestBody DepartmentDto dto) { - return toDto(departmentService.update(id, toEntity(dto))); + @GetMapping("/edit/{id}") + public String Update( + @PathVariable(name = "id") Long id, + Model model) { + if (id <= 0){ + throw new IllegalArgumentException(); + } + model.addAttribute(DEPARTMENTS_ATTRIBUTE, toDto(departmentService.get(id))); + return DEPARTMENTS_EDIT_VIEW; } - @DeleteMapping("/{id}") - public DepartmentDto delete(@PathVariable(name = "id") Long id) { - return toDto(departmentService.delete(id)); + @PostMapping("/edit/{id}") + public String update( + @PathVariable(name = "id") Long id, + @ModelAttribute(name = DEPARTMENTS_ATTRIBUTE) @Valid DepartmentDto department, + BindingResult bindingResult, + Model model) { + if (bindingResult.hasErrors()) { + return DEPARTMENTS_EDIT_VIEW; + } + if (id <= 0) { + throw new IllegalArgumentException(); + } + departmentService.update(id, toEntity(department)); + return Constants.REDIRECT_VIEW + URL; + } + + @PostMapping("/delete/{id}") + public String delete( + @PathVariable(name = "id") Long id){ + departmentService.delete(id); + return Constants.REDIRECT_VIEW + URL; } } diff --git a/src/main/java/com/example/demo/directions/api/DirectionsController.java b/src/main/java/com/example/demo/directions/api/DirectionsController.java index c8ee00b..dfd0c6f 100644 --- a/src/main/java/com/example/demo/directions/api/DirectionsController.java +++ b/src/main/java/com/example/demo/directions/api/DirectionsController.java @@ -78,7 +78,7 @@ public class DirectionsController { @GetMapping("/edit/") public String create(Model model, @RequestParam(name = PAGE_ATTRIBUTE, defaultValue = "0") int page) { - model.addAttribute(DIRECTIONS_ATTRIBUTE, new DirectionsGroupedDto()); + model.addAttribute(DIRECTIONS_ATTRIBUTE, new DirectionsDto()); model.addAttribute(DEPARTMENT_ATTRIBUTE, getDepartments()); model.addAttribute(PAGE_ATTRIBUTE, page); return DIRECTIONS_EDIT_VIEW; diff --git a/src/main/java/com/example/demo/entrysData/api/EntrysDataController.java b/src/main/java/com/example/demo/entrysData/api/EntrysDataController.java index 805d003..b43ef63 100644 --- a/src/main/java/com/example/demo/entrysData/api/EntrysDataController.java +++ b/src/main/java/com/example/demo/entrysData/api/EntrysDataController.java @@ -1,8 +1,11 @@ package com.example.demo.entrysData.api; import java.util.List; +import java.util.Map; import org.modelmapper.ModelMapper; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -11,19 +14,25 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import com.example.demo.core.api.PageAttributesMapper; import com.example.demo.core.configuration.Constants; import com.example.demo.department.service.DepartmentService; import com.example.demo.entrysData.model.EntrysDataEntity; import com.example.demo.entrysData.model.EntrysDataGrouped; +import com.example.demo.entrysData.model.EntrysDataGroupedDepartment; import com.example.demo.entrysData.service.EntrysDataService; import jakarta.validation.Valid; -@RestController -@RequestMapping(Constants.API_URL + "/entrysData") +@Controller +@RequestMapping(EntrysDataController.URL) public class EntrysDataController { + public static final String URL = "/users"; + private static final String USERS_VIEW = "users"; + private static final String USERS_EDIT_VIEW = "user-edit"; + private static final String USERS_ATTRIBUTE = "users"; + private static final String PAGE_ATTRIBUTE = "page"; private final EntrysDataService entrysDataService; private final ModelMapper modelMapper; private final DepartmentService departmentService; @@ -39,10 +48,14 @@ public class EntrysDataController { return modelMapper.map(entity, EntrysDataDto.class); } - private EntrysDataGroupedDto toGroupedDto(EntrysDataGrouped entity) { + private EntrysDataGroupedDto toDto(EntrysDataGrouped entity) { return modelMapper.map(entity, EntrysDataGroupedDto.class); } + private EntrysDataGroupedDepartmentDto toDto(EntrysDataGroupedDepartment entity){ + return modelMapper.map(entity, EntrysDataGroupedDepartmentDto.class); + } + private EntrysDataEntity toEntity(EntrysDataDto dto) { final EntrysDataEntity entity = modelMapper.map(dto, EntrysDataEntity.class); entity.setDepartment(departmentService.get(dto.getDepartmentId())); @@ -57,6 +70,19 @@ public class EntrysDataController { // return PageDtoMapper.toDto(entrysDataService.getAll(departmentId, page, size), this::toDto); // } + @GetMapping + public String getAll( + @RequestParam(name = "departmentId", defaultValue = "0") Long departmentId, + @RequestParam(name = PAGE_ATTRIBUTE, defaultValue = "0") int page, + Model model){ + final Map attributes = PageAttributesMapper. + toAttributes(entrysDataService.getAllWithDepartment(page, Constants.DEFAULT_PAGE_SIZE), + this::toDto); + model.addAllAttributes(attributes); + model.addAttribute(PAGE_ATTRIBUTE, page); + return USERS_VIEW; + } + @GetMapping("/{id}") public EntrysDataDto get(@PathVariable(name = "id") Long id) { return toDto(entrysDataService.get(id)); @@ -86,6 +112,6 @@ public class EntrysDataController { @GetMapping("/count") public List getCount() { - return entrysDataService.getCount().stream().map(this::toGroupedDto).toList(); + return entrysDataService.getCount().stream().map(this::toDto).toList(); } } diff --git a/src/main/java/com/example/demo/entrysData/api/EntrysDataGroupedDepartmentDto.java b/src/main/java/com/example/demo/entrysData/api/EntrysDataGroupedDepartmentDto.java new file mode 100644 index 0000000..5af89ae --- /dev/null +++ b/src/main/java/com/example/demo/entrysData/api/EntrysDataGroupedDepartmentDto.java @@ -0,0 +1,40 @@ +package com.example.demo.entrysData.api; + +public class EntrysDataGroupedDepartmentDto { + private String DepartmentName; + private Long Id; + private String Login; + private String Role; + + public Long getId(){ + return Id; + } + + public void setId(Long Id){ + this.Id = Id; + } + + public String getLogin(){ + return Login; + } + + public void setLogin(String Login){ + this.Login = Login; + } + + public String getRole(){ + return Role; + } + + public void setRole(String Role){ + this.Role = Role; + } + + public String getDepartmentName(){ + return DepartmentName; + } + + public void setDepartmentName(String DepartmentName){ + this.DepartmentName = DepartmentName; + } +} diff --git a/src/main/java/com/example/demo/entrysData/model/EntrysDataGroupedDepartment.java b/src/main/java/com/example/demo/entrysData/model/EntrysDataGroupedDepartment.java new file mode 100644 index 0000000..1b0c51b --- /dev/null +++ b/src/main/java/com/example/demo/entrysData/model/EntrysDataGroupedDepartment.java @@ -0,0 +1,8 @@ +package com.example.demo.entrysData.model; + +public interface EntrysDataGroupedDepartment { + Long getId(); + String getLogin(); + String getRole(); + String getDepartmentName(); +} diff --git a/src/main/java/com/example/demo/entrysData/repository/EntrysDataRepository.java b/src/main/java/com/example/demo/entrysData/repository/EntrysDataRepository.java index 643e763..ce36c43 100644 --- a/src/main/java/com/example/demo/entrysData/repository/EntrysDataRepository.java +++ b/src/main/java/com/example/demo/entrysData/repository/EntrysDataRepository.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Repository; import com.example.demo.entrysData.model.EntrysDataEntity; import com.example.demo.entrysData.model.EntrysDataGrouped; +import com.example.demo.entrysData.model.EntrysDataGroupedDepartment; @Repository public interface EntrysDataRepository extends CrudRepository { @@ -26,4 +27,8 @@ public interface EntrysDataRepository extends CrudRepository getCountEntrysInDepartment(); + @Query("select e.department.name as departmentName, e.login as login, e.role as role, e.id as id " + + "from EntrysDataEntity e " + + "group by departmentName order by id desc") + Page findAllWithDepartment(Pageable pageable); } diff --git a/src/main/java/com/example/demo/entrysData/service/EntrysDataService.java b/src/main/java/com/example/demo/entrysData/service/EntrysDataService.java index 943df25..20157aa 100644 --- a/src/main/java/com/example/demo/entrysData/service/EntrysDataService.java +++ b/src/main/java/com/example/demo/entrysData/service/EntrysDataService.java @@ -12,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional; import com.example.demo.core.error.NotFoundException; import com.example.demo.entrysData.model.EntrysDataEntity; import com.example.demo.entrysData.model.EntrysDataGrouped; +import com.example.demo.entrysData.model.EntrysDataGroupedDepartment; import com.example.demo.entrysData.repository.EntrysDataRepository; @Service @@ -104,4 +105,10 @@ public class EntrysDataService { public List getCount() { return repository.getCountEntrysInDepartment(); } + + @Transactional + public Page getAllWithDepartment(int page, int size) { + final Pageable pageRequest = PageRequest.of(page, size); + return repository.findAllWithDepartment(pageRequest); + } } diff --git a/src/main/java/com/example/demo/news/service/NewsService.java b/src/main/java/com/example/demo/news/service/NewsService.java index a08d51a..eed08f2 100644 --- a/src/main/java/com/example/demo/news/service/NewsService.java +++ b/src/main/java/com/example/demo/news/service/NewsService.java @@ -2,6 +2,7 @@ package com.example.demo.news.service; import java.util.List; import java.util.stream.StreamSupport; + import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -55,7 +56,6 @@ public class NewsService { @Transactional public NewsEntity update(Long id, NewsEntity entity) { final NewsEntity existsEntity = get(id); - checkName(entity.getName()); existsEntity.setDate(entity.getDate()); existsEntity.setName(entity.getName()); existsEntity.setDescription(entity.getDescription()); diff --git a/src/main/resources/templates/default.html b/src/main/resources/templates/default.html index c118093..8f58487 100644 --- a/src/main/resources/templates/default.html +++ b/src/main/resources/templates/default.html @@ -30,9 +30,17 @@ Новости + th:classappend="${activeLink.startsWith('/directions') ? 'active' : ''}"> Направления + + Кафедры + + + Пользователи + diff --git a/src/main/resources/templates/department-edit.html b/src/main/resources/templates/department-edit.html new file mode 100644 index 0000000..f67c4d0 --- /dev/null +++ b/src/main/resources/templates/department-edit.html @@ -0,0 +1,28 @@ + + + + + Редактировать кафедру + + + +
+
+
+ + +
+
+ + +
+
+
+ + Отмена +
+
+
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/departments.html b/src/main/resources/templates/departments.html new file mode 100644 index 0000000..136c8a2 --- /dev/null +++ b/src/main/resources/templates/departments.html @@ -0,0 +1,53 @@ + + + + + + + Новости + + + +
+ + Кафедры + + + + + + + + + + + + + + + + + + + + +
IDНазвание
+
+ +
+
+
+ +
+
+
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/direction-edit.html b/src/main/resources/templates/direction-edit.html index 067dc70..cde0648 100644 --- a/src/main/resources/templates/direction-edit.html +++ b/src/main/resources/templates/direction-edit.html @@ -7,7 +7,7 @@
-
@@ -44,7 +44,7 @@
- Отмена + Отмена
diff --git a/src/main/resources/templates/directions.html b/src/main/resources/templates/directions.html index 899a486..831f44a 100644 --- a/src/main/resources/templates/directions.html +++ b/src/main/resources/templates/directions.html @@ -12,7 +12,7 @@ diff --git a/src/main/resources/templates/error.html b/src/main/resources/templates/error.html new file mode 100644 index 0000000..cfdb69c --- /dev/null +++ b/src/main/resources/templates/error.html @@ -0,0 +1,37 @@ + + + + + Ошибка + + + +
+
    + +
  • + Неизвестная ошибка +
  • +
    + +
  • + Ошибка: [[${message}]] +
  • +
    + +
  • + Адрес: [[${url}]] +
  • +
  • + Класс исключения: [[${exception}]] +
  • +
  • + [[${method}]] ([[${file}]]:[[${line}]]) +
  • +
    +
+ На главную +
+ + + \ No newline at end of file diff --git a/src/main/resources/templates/user-edit.html b/src/main/resources/templates/user-edit.html new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/templates/users.html b/src/main/resources/templates/users.html new file mode 100644 index 0000000..2435214 --- /dev/null +++ b/src/main/resources/templates/users.html @@ -0,0 +1,57 @@ + + + + + + + Пользователи + + + +
+ + Пользователи + + +
+ + + + + + + + + + + + + + + + + + + + + +
IDЛогинРольКафедра
+
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/usersGroup.html b/src/main/resources/templates/usersGroup.html new file mode 100644 index 0000000..6908122 --- /dev/null +++ b/src/main/resources/templates/usersGroup.html @@ -0,0 +1,57 @@ + + + + + + + Новости + + + +
+ + Новости + + + + + + + + + + + + + + + + + + + + + + + + +
IDДата публикацииЗаголовокОписание
+
+ +
+
+
+ +
+
+
+ + + \ No newline at end of file