integer-overflow beim Import

indukult
2012-12-14
2013-04-07
  • indukult
    indukult
    2012-12-14

    Würde ja gern dieses attraktive Prog testen. Beim Import von gpx-Tracks trat jedoch ein integer-overflow auf mit der Folge, dass alle gespeicherten Touren fort waren. Mir fallen nur zwei mögliche Ursachen ein:
    Zu viele Touren in Datenbank? (derzeit ca. 860)
    Zu alte Touren (Fehler trat auf beim Import einer Tour vor dem Jahr 2002)
    System Winxp sp 3
    Fehler-Dump:
    eclipse.buildId=unknown
    java.version=1.7.0_09
    java.vendor=Oracle Corporation
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
    Command-line arguments:  -os win32 -ws win32 -arch x86

    Fehler
    Fri Dec 14 20:21:36 CET 2012
    The resulting value is outside the range for the data type INTEGER.

    java.sql.SQLException: The resulting value is outside the range for the data type INTEGER.
    at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
    at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
    at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
    at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeQuery(Unknown Source)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
    at net.tourbook.ui.views.tourBook.TVITourBookRoot.fetchChildren(TVITourBookRoot.java:74)
    at net.tourbook.ui.TreeViewerItem.fetchChildrenInternal(TreeViewerItem.java:67)
    at net.tourbook.ui.TreeViewerItem.getFetchedChildrenAsArray(TreeViewerItem.java:102)
    at net.tourbook.ui.views.tourBook.TourBookView$TourBookContentProvider.getElements(TourBookView.java:274)
    at org.eclipse.jface.viewers.StructuredViewer.getRawChildren(StructuredViewer.java:1010)
    at org.eclipse.jface.viewers.ColumnViewer.getRawChildren(ColumnViewer.java:703)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1351)
    at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:391)
    at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:917)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:620)
    at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:820)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:797)
    at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644)
    at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:768)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1548)
    at org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:833)
    at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1532)
    at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443)
    at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403)
    at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404)
    at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1525)
    at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280)
    at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
    at net.tourbook.ui.views.tourBook.TourBookView.reloadViewer(TourBookView.java:1997)
    at net.tourbook.ui.views.tourBook.TourBookView$2.propertyChange(TourBookView.java:346)
    at org.eclipse.ui.preferences.ScopedPreferenceStore$3.run(ScopedPreferenceStore.java:375)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.preferences.ScopedPreferenceStore.firePropertyChangeEvent(ScopedPreferenceStore.java:372)
    at org.eclipse.ui.preferences.ScopedPreferenceStore.setValue(ScopedPreferenceStore.java:695)
    at net.tourbook.tour.TourTypeFilterManager$2.run(TourTypeFilterManager.java:600)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4144)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at net.tourbook.application.Application.start(Application.java:36)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
    Caused by: ERROR 22003: The resulting value is outside the range for the data type INTEGER.
    at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    at org.apache.derby.iapi.types.DataType.outOfRange(Unknown Source)
    at org.apache.derby.iapi.types.NumberDataType.plus(Unknown Source)
    at org.apache.derby.impl.sql.execute.SumAggregator.accumulate(Unknown Source)
    at org.apache.derby.impl.sql.execute.SystemAggregator.accumulate(Unknown Source)
    at org.apache.derby.impl.sql.execute.GenericAggregator.accumulate(Unknown Source)
    at org.apache.derby.impl.sql.execute.GenericAggregator.accumulate(Unknown Source)
    at org.apache.derby.impl.sql.execute.AggregateSortObserver.insertDuplicateKey(Unknown Source)
    at org.apache.derby.impl.store.access.sort.SortBuffer.insert(Unknown Source)
    at org.apache.derby.impl.store.access.sort.MergeInserter.insert(Unknown Source)
    at org.apache.derby.impl.sql.execute.GroupedAggregateResultSet.loadSorter(Unknown Source)
    at org.apache.derby.impl.sql.execute.GroupedAggregateResultSet.openCore(Unknown Source)
    at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown Source)
    at org.apache.derby.impl.sql.execute.SortResultSet.openCore(Unknown Source)
    at org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(Unknown Source)
    at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
    at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
    … 59 more
    Sitzungsdaten:
    eclipse.buildId=unknown
    java.version=1.7.0_09
    java.vendor=Oracle Corporation
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
    Command-line arguments:  -os win32 -ws win32 -arch x86

     
  • Wolfgang
    Wolfgang
    2012-12-15

    Kannst du mir die Datei senden bei der der Fehler auftrat.

    Wenn eine Tour in der SQL DB gespeichert ist, geht sie nicht mehr verloren auch bei einem Programmabsturz, hast du sie importiert aber noch nicht gespeichert?

    Ich habe z.Z 1800 Touren in der DB

     
  • Wolfgang
    Wolfgang
    2012-12-16

    Ich konnte deinen Fehler nachvollziehen mit version 12.6.1

    Eine Aenderung im Datenmodell in Version 12.12 beseitigt jedoch diesen Integer Overflow Fehler (der Daten Typ für TourRecordingTime und TourDrivingTime wurde von Integer auf Long geändert)

    Wenn du also die neueste Version 12.12 verwendest sollte der Fehler nicht mehr auftreten, so war es zumindest bei mir und ich konnte alle Touren in der Tourenliste anzeigen. Der Fehler hat also mit dem Datenimport warscheinlich nichts zu tun sondern nur beim Laden der Touren in die Tourenliste.

     
  • Wolfgang
    Wolfgang
    2012-12-16

    Ich habe nochmals deine Daten in der Tourenliste angeschaut und dort sieht man, dass bei manchen Touren die Dauer einer Tour mehrere Jahre sein können, z.B. die Tour vom 8.6.2002 dauert bis 14.2.2044

     
  • indukult
    indukult
    2012-12-17

    Bingo!
    Diese inkonsisten Daten habe ich  nur importiert, um das Prog einem Härtetest zu unterziehen;-)
    Danke!

     
  • Wolfgang
    Wolfgang
    2012-12-17

    zum Glück habe ich diese Aenderung in 12.12 eingebaut sonst wäre es deutlich schwiriger gewesen das Probem zu finden