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

    Keine Hilfe und Auskunft per PN, da meist von allgemeinem Interesse. Diese Fragen bitte im Forum stellen.

    2 Mal editiert, zuletzt von StS ()

  • Ich habe die Datei in beide Richtungen "geserzt" und es gab damit keine Probleme. Müsste die Datei eigentlich o.k. sein.


    Den PC neu gestartet und damit auch das Tool, Ergebnis: Wie bisher.


    Vielleicht kann @tomy das mal überprüfen. :)

  • 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)

  • 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)

  • 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' :D im Zählerfenster
    Danke für die Mühe.
    StS

    Keine Hilfe und Auskunft per PN, da meist von allgemeinem Interesse. Diese Fragen bitte im Forum stellen.

  • 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? 8)


    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)