From caf68237c0f8b9d0c32ed799940664c7ddfdb5ae Mon Sep 17 00:00:00 2001 From: Luca Nitttscher <lnittsch@uni-bremen.de> Date: Mon, 13 Jul 2020 18:52:07 +0200 Subject: [PATCH] extended Inventoryclosebutton to work for map --- .../InGameButtons/InventoryCloseButton.java | 15 +- .../View/UI/Events/ShopUI.java | 2 +- .../View/UI/Inventory/InventoryUI.java | 2 +- .../View/UI/Map/MapUI.java | 9 +- database.mv.db | Bin 57344 -> 57344 bytes database.trace.db | 160 ++++++++++++++++++ 6 files changed, 184 insertions(+), 4 deletions(-) create mode 100644 database.trace.db diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/InventoryCloseButton.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/InventoryCloseButton.java index dbd1aa5f..23192191 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/InventoryCloseButton.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/InventoryCloseButton.java @@ -11,6 +11,7 @@ import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.Button; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.ImButton; import com.galaxytrucker.galaxytruckerreloaded.View.UI.Events.ShopUI; import com.galaxytrucker.galaxytruckerreloaded.View.UI.Inventory.InventoryUI; +import com.galaxytrucker.galaxytruckerreloaded.View.UI.Map.MapUI; /** * used to close the inventory @@ -28,6 +29,12 @@ public class InventoryCloseButton extends ImButton { */ private ShopUI shop; + /** + * map ui, if Button on map + * otherwise null + */ + private MapUI map; + /** * the inventory ui, if button on inventory * otherwise null @@ -45,17 +52,23 @@ public class InventoryCloseButton extends ImButton { else if(inventory != null) { inventory.disposeInventoryUI(); } + + else if (map != null) { + map.disposeMapUI(); + } } /** * constructor * @param ui the shop ui this is on, or null * @param inventory the inventory ui this is on, or null + * @param map the map ui this is on, or null */ - public InventoryCloseButton(float x, float y, float width, float height, ShopUI ui, InventoryUI inventory) { + public InventoryCloseButton(float x, float y, float width, float height, ShopUI ui, InventoryUI inventory, MapUI map) { super(new Texture("close_on.png"), x, y, width, height); shop = ui; this.inventory = inventory; + this.map = map; this.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { leftClick(); diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Events/ShopUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Events/ShopUI.java index 76cc4f21..caf1f2c3 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Events/ShopUI.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Events/ShopUI.java @@ -97,7 +97,7 @@ public class ShopUI { sellElements.add(new ShopSellElement(main, stage, new Texture("laser.png"), 0, 0, this, w, 0)); } - closeButton = new InventoryCloseButton(0, 0, 10, 10, this, null); + closeButton = new InventoryCloseButton(0, 0, 10, 10, this, null, null); stage.addActor(closeButton); background = new Texture("shop/storeback.png"); diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryUI.java index e2a6cbe2..b42d1427 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryUI.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Inventory/InventoryUI.java @@ -55,7 +55,7 @@ public class InventoryUI { x = main.WIDTH/2 - inventoryBackground.getWidth()/2; y = main.HEIGHT/2 - inventoryBackground.getHeight()/2; - closeButton = new InventoryCloseButton(x+700, y+15, 248, 50, null, this); + closeButton = new InventoryCloseButton(x+700, y+15, 248, 50, null, this, null); stage.addActor(closeButton); slots = new LinkedList<>(); diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Map/MapUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Map/MapUI.java index da4bc9f0..5bd7e356 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Map/MapUI.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Map/MapUI.java @@ -5,6 +5,7 @@ import com.badlogic.gdx.scenes.scene2d.Stage; import com.galaxytrucker.galaxytruckerreloaded.Main; import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Overworld; import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Planet; +import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.InventoryCloseButton; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.MapButton; import com.galaxytrucker.galaxytruckerreloaded.View.UI.Ship.ShipView; @@ -20,6 +21,8 @@ public class MapUI { private List<MapButton> locations; + private InventoryCloseButton closeButton; + private Main main; private Stage stage; @@ -45,6 +48,9 @@ public class MapUI { x = main.WIDTH/2 - mapTexture.getWidth()/2; y = main.HEIGHT/2 - mapTexture.getHeight()/2; + closeButton = new InventoryCloseButton(x+700, y+15, 248, 50, null, null, this); + stage.addActor(closeButton); + locations = new LinkedList<>(); //TODO for(Planet f : map.getPlanetMap()) { @@ -75,7 +81,7 @@ public class MapUI { m.remove(); } shipView.deleteMap(); - + closeButton.remove(); } /** @@ -87,6 +93,7 @@ public class MapUI { boolean success = shipView.travel(planet); if(success) { disposeMapUI(); + closeButton.remove(); } } diff --git a/database.mv.db b/database.mv.db index 982aa38872a423ec994a4705c17b56540fec7336..295d5ca0598077516abad325732fc29c2ee30934 100644 GIT binary patch literal 57344 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%0Adee5>X^km3h9h=H+OcnPV8(S z?FPGZ%}y*Cc#;1*Q1FLy3x3SgqSKC$ILr~JDjH-y=}@IDPBk=nsKJ*?Tr15(jTo#f z9rIA58GIo!<GJ(o2i!oXY-@pT@O!5(;FN9gU;UJA?EydZEjCZtI_hk#>o{98m2N*< zn+qnaXIy|jKU)*(m<vORI9pSipr}O)MIaKDXKM-21SHoi1_j0hCx39t))nf8bO5pr z4RX2#>$g+=aXeC^P|3zLVLj06x}Rxj(dfF71JN{wtF?jwU!+$kH!`_Q4Sv9~5hza< zi=x)?JIS({sKxJ8#_zb3#RtMSj;?|)Mofz@MufggsoE_5<g(=ll11r8DBbAsv(WrI z`&Pp@_U%X&8z5FAr57`nKIq$Ry}zi>sFdsQ?WQm&<X{m)d;>Xsld7dVyGYCYM+E}v z`@W47{DyPdRRZ~w!W>DI$%=*(OZdj>27HmMKpL@H18nXX5@31ov3z|eXJf(J$stv* zSBwIDC1sj_t>#p!X5>?~wH9@!3)yVJfG@V4RgyS+sb?~#O6OHJQniNpCC=8-tOd;% z2G)G99}DK{UkB<x-Cg}AC<EC5@Y+8chz~FG9}UVmV?f==AM#zxRiwo0Weyy~Qi{H6 zU*f3XM)NoZBzV4$dB|_R?rR(ALft^QP`7%eQp}{vikX<snW;><q0B-QmQy8g4=$Ee zt<-1WTQ7^16nG4~*MKT8FV`wpXrwz)-&`!=Komy6tg-`}mFKU%a+^99Z0Zzun-WM4 zWKh6m{|qVt2DKj4xvjTBiHXI(bC#=A6!n<(*qVOOMWUwEf$+TnxIVk6H(STgO7*v; zR4J9qq)L@Zi@hkWLYwgWCB;5Xz!mmsAtY<eR?Rg^^p7si(>P(gHeW2>nGdF@kUujd zAr!^(Ym6Pm=2vVxD$K8(l@+K0{~=()rGZU2JRGonp}Rvn!`zbn%fOV+bT?)D8v|K1 zFx@|k4ueJeUjfE-Rv!;#6Gr@68@DifO%DsV{_dOvR+$?i{L21wtCp!(AuPyL^s$W5 z7#6O&2iK`ov5*!r&i9$b_E1o4d0@rDPqsT0YnMoB_At=wE-%g6UKvQWz;^#stD|ZU z2So4d=QrTTm?V&CK1bz35e}_W8WNMK2h=)zk+zXnOV7MFAvmoSDzzRxRAy##nX+dO zY4TXAT1W(IBF2^GiYUr6<xDMS21uf`lq#3!w=Jb++?&_wOT2BKi)`jqU^9aU$j<Lr zw|tQ{C}}xZibsS@4F|FhV6lJpp}`-vAH4T~XBPh@UytkezZxv-9eoxg^<#x%nmYZn z(?Xp7Uey!iuK|uHxp17n|5n>I*psXMf2*T4<I%al-u^!%HiYe-`+s?>QSCYtbg6OP z{y#Zq?mC;H7ry_$p6~xR{O{QRuRq`s*ZqGp__yBwzk9y94ZQt-fk`0uEWpD4e^M_N zjN$c|1i?gwNJ%X0{}=ZE3;TZ&^>}Wv7WV%#w>dykabf@OmR(-h|GO<f3;TZ+y~~|f zrIzU(;V<m}@vy^kqG34!S=j#vh8On#-uAJu|2OyF=Keoq?*BU>*#9T~3j6>62mI%v A^#A|> literal 57344 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 Z{Q2KHe_QAOmUaG*>Tv#V{{_zf{}<EMpz;6! diff --git a/database.trace.db b/database.trace.db new file mode 100644 index 00000000..2ea0861a --- /dev/null +++ b/database.trace.db @@ -0,0 +1,160 @@ +2020-07-13 18:48:28 database: flush +org.h2.message.DbException: Allgemeiner Fehler: "java.lang.IllegalStateException: The file is locked: nio:/Users/lnittsch/Documents/UniMaterial/ReSWP2/galaxytrucker/database.mv.db [1.4.199/7]" +General error: "java.lang.IllegalStateException: The file is locked: nio:/Users/lnittsch/Documents/UniMaterial/ReSWP2/galaxytrucker/database.mv.db [1.4.199/7]" [50000-199] + at org.h2.message.DbException.get(DbException.java:194) + at org.h2.message.DbException.convert(DbException.java:347) + at org.h2.mvstore.db.MVTableEngine$1.uncaughtException(MVTableEngine.java:90) + at org.h2.mvstore.MVStore.handleException(MVStore.java:2787) + at org.h2.mvstore.MVStore.panic(MVStore.java:441) + at org.h2.mvstore.MVStore.<init>(MVStore.java:404) + at org.h2.mvstore.MVStore$Builder.open(MVStore.java:3343) + at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:162) + at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:95) + at org.h2.engine.Database.getPageStore(Database.java:2739) + at org.h2.engine.Database.open(Database.java:769) + at org.h2.engine.Database.openDatabase(Database.java:319) + at org.h2.engine.Database.<init>(Database.java:313) + at org.h2.engine.Engine.openSession(Engine.java:69) + at org.h2.engine.Engine.openSession(Engine.java:201) + at org.h2.engine.Engine.createSessionAndValidate(Engine.java:178) + at org.h2.engine.Engine.createSession(Engine.java:161) + at org.h2.engine.Engine.createSession(Engine.java:31) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:336) + at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:169) + at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:148) + at org.h2.Driver.connect(Driver.java:69) + at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38) + at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:331) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:250) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:228) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:369) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:98) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:73) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:107) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:246) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) + at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:176) + at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:118) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1224) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1255) + at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) + at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) + at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) + at com.galaxytrucker.galaxytruckerreloaded.Server.Database.Database.<clinit>(Database.java:28) + at com.galaxytrucker.galaxytruckerreloaded.Server.Persistence.ObjectDAO.<init>(ObjectDAO.java:13) + at com.galaxytrucker.galaxytruckerreloaded.Server.Persistence.UserDAO.<init>(UserDAO.java:8) + at com.galaxytrucker.galaxytruckerreloaded.Server.Services.UserService.<init>(UserService.java:15) + at com.galaxytrucker.galaxytruckerreloaded.Server.ServerServiceCommunicator.<init>(ServerServiceCommunicator.java:27) + at com.galaxytrucker.galaxytruckerreloaded.Server.Server.runServer(Server.java:38) + at com.galaxytrucker.galaxytruckerreloaded.Main.startServer(Main.java:46) + at com.galaxytrucker.galaxytruckerreloaded.View.Screen.ShipSelector.startGame(ShipSelector.java:265) + at com.galaxytrucker.galaxytruckerreloaded.View.Buttons.MenuButtons.CreateGameButton.leftClick(CreateGameButton.java:18) + at com.galaxytrucker.galaxytruckerreloaded.View.Buttons.MenuButtons.CreateGameButton$1.clicked(CreateGameButton.java:26) + at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:88) + at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:59) + at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:351) + at com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:360) + at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:221) + at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:128) +Caused by: org.h2.jdbc.JdbcSQLNonTransientException: Allgemeiner Fehler: "java.lang.IllegalStateException: The file is locked: nio:/Users/lnittsch/Documents/UniMaterial/ReSWP2/galaxytrucker/database.mv.db [1.4.199/7]" +General error: "java.lang.IllegalStateException: The file is locked: nio:/Users/lnittsch/Documents/UniMaterial/ReSWP2/galaxytrucker/database.mv.db [1.4.199/7]" [50000-199] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:427) + ... 67 more +Caused by: java.lang.IllegalStateException: The file is locked: nio:/Users/lnittsch/Documents/UniMaterial/ReSWP2/galaxytrucker/database.mv.db [1.4.199/7] + at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:883) + at org.h2.mvstore.FileStore.open(FileStore.java:172) + at org.h2.mvstore.MVStore.<init>(MVStore.java:390) + ... 61 more +2020-07-13 18:49:57 database: flush +org.h2.message.DbException: Allgemeiner Fehler: "java.lang.IllegalStateException: The file is locked: nio:/Users/lnittsch/Documents/UniMaterial/ReSWP2/galaxytrucker/database.mv.db [1.4.199/7]" +General error: "java.lang.IllegalStateException: The file is locked: nio:/Users/lnittsch/Documents/UniMaterial/ReSWP2/galaxytrucker/database.mv.db [1.4.199/7]" [50000-199] + at org.h2.message.DbException.get(DbException.java:194) + at org.h2.message.DbException.convert(DbException.java:347) + at org.h2.mvstore.db.MVTableEngine$1.uncaughtException(MVTableEngine.java:90) + at org.h2.mvstore.MVStore.handleException(MVStore.java:2787) + at org.h2.mvstore.MVStore.panic(MVStore.java:441) + at org.h2.mvstore.MVStore.<init>(MVStore.java:404) + at org.h2.mvstore.MVStore$Builder.open(MVStore.java:3343) + at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:162) + at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:95) + at org.h2.engine.Database.getPageStore(Database.java:2739) + at org.h2.engine.Database.open(Database.java:769) + at org.h2.engine.Database.openDatabase(Database.java:319) + at org.h2.engine.Database.<init>(Database.java:313) + at org.h2.engine.Engine.openSession(Engine.java:69) + at org.h2.engine.Engine.openSession(Engine.java:201) + at org.h2.engine.Engine.createSessionAndValidate(Engine.java:178) + at org.h2.engine.Engine.createSession(Engine.java:161) + at org.h2.engine.Engine.createSession(Engine.java:31) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:336) + at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:169) + at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:148) + at org.h2.Driver.connect(Driver.java:69) + at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38) + at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:331) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:250) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:228) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:369) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:98) + at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:73) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:107) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:246) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) + at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:176) + at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:118) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1224) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1255) + at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) + at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) + at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) + at com.galaxytrucker.galaxytruckerreloaded.Server.Database.Database.<clinit>(Database.java:28) + at com.galaxytrucker.galaxytruckerreloaded.Server.Persistence.ObjectDAO.<init>(ObjectDAO.java:13) + at com.galaxytrucker.galaxytruckerreloaded.Server.Persistence.UserDAO.<init>(UserDAO.java:8) + at com.galaxytrucker.galaxytruckerreloaded.Server.Services.UserService.<init>(UserService.java:15) + at com.galaxytrucker.galaxytruckerreloaded.Server.ServerServiceCommunicator.<init>(ServerServiceCommunicator.java:27) + at com.galaxytrucker.galaxytruckerreloaded.Server.Server.runServer(Server.java:38) + at com.galaxytrucker.galaxytruckerreloaded.Main.startServer(Main.java:46) + at com.galaxytrucker.galaxytruckerreloaded.View.Screen.ShipSelector.startGame(ShipSelector.java:265) + at com.galaxytrucker.galaxytruckerreloaded.View.Buttons.MenuButtons.CreateGameButton.leftClick(CreateGameButton.java:18) + at com.galaxytrucker.galaxytruckerreloaded.View.Buttons.MenuButtons.CreateGameButton$1.clicked(CreateGameButton.java:26) + at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:88) + at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:59) + at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:351) + at com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:360) + at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:221) + at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:128) +Caused by: org.h2.jdbc.JdbcSQLNonTransientException: Allgemeiner Fehler: "java.lang.IllegalStateException: The file is locked: nio:/Users/lnittsch/Documents/UniMaterial/ReSWP2/galaxytrucker/database.mv.db [1.4.199/7]" +General error: "java.lang.IllegalStateException: The file is locked: nio:/Users/lnittsch/Documents/UniMaterial/ReSWP2/galaxytrucker/database.mv.db [1.4.199/7]" [50000-199] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:427) + ... 67 more +Caused by: java.lang.IllegalStateException: The file is locked: nio:/Users/lnittsch/Documents/UniMaterial/ReSWP2/galaxytrucker/database.mv.db [1.4.199/7] + at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:883) + at org.h2.mvstore.FileStore.open(FileStore.java:172) + at org.h2.mvstore.MVStore.<init>(MVStore.java:390) + ... 61 more -- GitLab