Neues Tool: RWInfo
-
-
Schau Dir bitte die Datei mit RW-Tools an, ob die komplett ist, nicht das ich noch eine defekte erwischt habe.
Gleicher Aufbau wie Lampione... 1, 2, 3.
Den Effekt hatte ich auch. Dann hab ich das Tool nochmals gestartet, kann sein,das der Rechner zwischenzeitlich unten war. Evtl. steht noch was im Arbeitsspeicher, obwohl das Tool formal beendet ist. Schau mal im Taskmanager.
StS -
-
Ich bin an den beiden Problemen dran, habe aber auch noch andere Verpflichtungen (Singen mit einem Chor, Tanzkurs, ...).
Ich schaue wo ich etwas Zeit abzwacken kann.
Thomas
-
Junge, es sind Feiertage, lass Dir Zeit, das Leben geht vor.
StS -
-
So, ein erster Hotfix ist auf meiner Dropbox verfügbar.
Damit werden die Fehlermeldungen in bewährter Weise ins Log-Fenster geschrieben und der Einleseprozess läuft weiter.
Insbesondere die Fehlermeldung "InvalidNestingException" kann natürlich weiter auftauchen (einfach etwas versteckt).
Dies dann, wenn die Filestruktur unvollständig ist, wenn also eine Datei nach dem Dekodieren durch serz so ähnlich aussieht:Code<cBlueprintLoader> <xyBlueprint> ... weiterer Inhalt ... ... hier fehlt dann </xyBlueprint> ... hier fehlt </cBlueprintLoader>
Gruss,
Thomas -
Ich bekomme jetzt (nach dem Patch) in der Asset Datenbank einen Fehler:
RWInfo Version 1.4.1-hf-1
Uncaught exception on thread Thread[Thread-5,6,main]javax.jdo.JDOFatalDataStoreException: Cannot create PoolableConnectionFactory (Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@8fb8262c[file =C:\Users\Matthias\AppData\Roaming\RWInfo\db\rwa.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2015-04-03 22:24:19 heartbeat - read: -9363 ms.)
at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:532)
at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.freezeConfiguration(JDOPersistenceManagerFactory.java:800)
at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.getPersistenceManager(JDOPersistenceManagerFactory.java:831)
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@8fb8262c[file =C:\Users\Matthias\AppData\Roaming\RWInfo\db\rwa.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2015-04-03 22:24:19 heartbeat - read: -9363 ms.)
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) -
Dann ist noch eine zweite Instanz von RWInfo am Laufen.
Kannst Du bitte im Taskmanager prüfen, ob alle Java-Instanzen beendet worden sind und sonst diese zwangsweise beenden?
Gruss,
Thomas -
Gerade geprüft. Ja, da war noch ein Java gehängt. Nachdem ich es rausgeschmissen hatte, kein Absturz mehr.
Allerdings kann ich in der Asset Datenbank kein "Refresh" machen. Ist ausgegraut.
Und meine Strecke wird mit der neuen Version nicht mehr ausgelesen (mit einer der alten hat es noch funktioniert) -
Danke @tomy das letzte Problem wurde mit dem Update behoben.
Jedoch erhalte ich am Ende des Asset Datenbank Refresh folgende Meldung (am Ende geht´s noch weiter, aber ich kann nicht mehr markieren):
RWInfo Version 1.4.1-hf-1
Uncaught exception on thread Thread[Thread-8,6,main]
java.lang.IllegalArgumentException: Execution of method "add" on field "products" caused an error : Insert of object "ch.tkl.rw.asset.model.Product@1f158bd" using statement "INSERT INTO PRODUCT ("NAME",PROVIDER_ID) VALUES (?,?)" failed : data exception: string data, right truncation; table: PRODUCT column: NAME
Insert of object "ch.tkl.rw.asset.model.Product@1f158bd" using statement "INSERT INTO PRODUCT ("NAME",PROVIDER_ID) VALUES (?,?)" failed : data exception: string data, right truncation; table: PRODUCT column: NAME
org.datanucleus.exceptions.NucleusDataStoreException: Insert of object "ch.tkl.rw.asset.model.Product@1f158bd" using statement "INSERT INTO PRODUCT ("NAME",PROVIDER_ID) VALUES (?,?)" failed : data exception: string data, right truncation; table: PRODUCT column: NAME
at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:507)
at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162)
at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138)
at org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3448)
at org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3424)
at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2000)
at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2097)
at org.datanucleus.store.types.SCOUtils.validateObjectForWriting(SCOUtils.java:1295)
at org.datanucleus.store.rdbms.scostore.ElementContainerStore.validateElementForWriting(ElementContainerStore.java:368)
at org.datanucleus.store.rdbms.scostore.FKSetStore.add(FKSetStore.java:434)
at org.datanucleus.store.types.wrappers.backed.HashSet.add(HashSet.java:566)
at org.datanucleus.store.types.SCOUtils.attachCopyElements(SCOUtils.java:647)
at org.datanucleus.store.types.wrappers.HashSet.attachCopy(HashSet.java:203)
at org.datanucleus.store.types.wrappers.HashSet.attachCopy(HashSet.java:39)
at org.datanucleus.store.fieldmanager.AttachFieldManager.storeObjectField(AttachFieldManager.java:224)
at org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:1460)
at org.datanucleus.state.StateManagerImpl.providedObjectField(StateManagerImpl.java:117)
at ch.tkl.rw.asset.model.Provider.dnProvideField(Provider.java)
at ch.tkl.rw.asset.model.Provider.dnProvideFields(Provider.java)
at org.datanucleus.state.StateManagerImpl.provideFields(StateManagerImpl.java:1174)
at org.datanucleus.state.StateManagerImpl.internalAttachCopy(StateManagerImpl.java:4241)
at org.datanucleus.state.StateManagerImpl.attachCopy(StateManagerImpl.java:4190)
at org.datanucleus.state.StateManagerImpl.attachCopy(StateManagerImpl.java:117)
at org.datanucleus.ExecutionContextImpl.attachObjectCopy(ExecutionContextImpl.java:2565)
at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:1917)
at org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1843)
at org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1698)
at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:720)
at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:745)
at ch.tkl.rw.asset.DataManager.findProduct(DataManager.java:144)
at ch.tkl.rw.asset.RefreshBlueprints.findProducts(RefreshBlueprints.java:152)
at ch.tkl.rw.asset.RefreshBlueprints.findFiles(RefreshBlueprints.java:140)
at ch.tkl.rw.asset.RefreshBlueprints.access$100(RefreshBlueprints.java:32)
at ch.tkl.rw.asset.RefreshBlueprints$4.run(RefreshBlueprints.java:99)
Caused by: java.sql.SQLDataException: data exception: string data, right truncation; table: PRODUCT column: NAME
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown Source)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
at org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:393)
at org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:431)
at org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:412)
... 33 more
Caused by: org.hsqldb.HsqlException: data exception: string data, right truncation; table: PRODUCT column: NAME
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.Table.enforceTypeLimits(Unknown Source)
at org.hsqldb.Table.insertSingleRow(Unknown Source)
at org.hsqldb.StatementDML.insertRowSet(Unknown Source)
at org.hsqldb.StatementInsert.getResult(Unknown Source) -
-
hier meine Fehlermeldung als Anhang:
Erst die Meldung, dann das Loggingfenster, dann der Inhalt der letzten zwei Zeilen.
Ich vermute ziemlichen Datenmist bei mir auf der Platte.
StS -
-
So, eine neue Version ist wieder über meine DropBox erreichbar.
- Product.Name darf jetzt bis 64 Zeichen lang sein
- bei fehlenden Endtags wird der Blueprintpfad jetzt als Warnung ins Logfenster geschrieben
- bei fehlenden Bodentexturen im Bodentexturviewer wird der Pfad ausgegeben
- Blueprints ohne Kategorie werden jetzt als "uncategorised" kategorisiert
@StS: kannst Du mir die Datei per PN zusenden? Ich würde diese gerne noch etwas genauer studieren...
Gruss,
Thomas -
@tomy Danke für die Weiterentwicklung.
Der Blueprint Refresh lief mit dem neuen Release nun erheblich länger, endete jedoch mit dieser Fehlermeldung.
RWInfo Version 1.4.1-hf-2
Uncaught exception on thread Thread[Thread-8,6,main]
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at ch.tkl.rw.asset.model.Blueprint.initCategory(Blueprint.java:107)
at ch.tkl.rw.asset.model.Blueprint.<init>(Blueprint.java:47) -
-
-
-
@tomy
Alles OK, auf zwei Rechnern problemlos durchgelaufen. Über 77000 Dateien.
Für die Weiterentwicklung, die Datei sollte wie Tain18 schon schrieb, speicherbar sein. Dann wenn Fehler gefunden werden, kaputte Datei wie gehabt, bitte Protokoll was, ich würde die gerne von der Platte werfen. Die machen nur Ärger. Kleiner musikalischer Schreibfehler 'new Bluesprints' im Zählerfenster
Danke für die Mühe.
StS -
Soeben die Version 1.4.1 veröffentlicht auf http://www.10a.ch/rwinfo
Diese Version enthält alle Bugfixes der 1.4.1-hf-1 bis 1.4.1-hf-3 Versionen.
Zusätzlich habe ich noch als Feature das Schreiben einer Log-Datei (%APPDATA%\RWInfo\rwinfo.log) eingebaut.
Die Assetdatenbank selber ist als HSQL-Datenbank im Verzeichnis %APPDATA%\RWInfo\db abgelegt und kann zum Beispiel auch mit LibreOffice Base angeschaut werden.
... Übrigens, ist schon mal jemandem aufgefallen, dass es in der Route München-Garmisch ein Untergrundsignal hat, das rund 400 Meter tief im Boden steckt?
Gruss,
Thomas -
Danke @tomy für die Informationen.
Beim Asset-Refresh kommt diese Fehlermeldung:
RWInfo Version 1.4.1
Uncaught exception on thread Thread[Thread-9,6,main]
javax.jdo.JDODataStoreException: Insert of object "ch.tkl.rw.asset.model.Blueprint@15419ab" using statement "INSERT INTO BLUEPRINT (BLUEPRINTTYPE_ID,CATEGORY_ID,"NAME","PATH",PRODUCT_ID,PROVIDER_ID,VALIDINSCENARIOS) VALUES (?,?,?,?,?,?,?)" failed : integrity constraint violation: unique constraint or index violation; BLUEPRINT_PPP table: BLUEPRINT
at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:546)
at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:725)
at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:745)
java.sql.SQLIntegrityConstraintViolationException: integrity constraint violation: unique constraint or index violation; BLUEPRINT_PPP table: BLUEPRINT
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source) -
-