kriegaex / Galileo-Openbook-Cleaner

HTML cleaner for Galileo Computing's openbooks, implemented in Java
Other
64 stars 6 forks source link

MD5MismatchException bei JAVA_INSEL #13

Closed UnixDaemon closed 11 years ago

UnixDaemon commented 11 years ago

Hallo Alexander Kriegisch,

erst einmal vielen Dank für das Entwickeln und die Bereitstellung des Programms unter der GPL.

Systemdaten: Ubuntu 12.04 64-Bit

$uname -r
Kernel: 3.2.0-37-generic

$java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

Wenn ich nun versuche "Java ist auch eine Insel" mit dem GOC herunterzuladen und zu reinigen, werden mir folgende Exceptions vor die Füße geschmissen:

Das Programm hat mit Log-Level 1 gearbeitet.

$ java -jar '/home/sobol/Downloads/galileo_openbook_cleaner-1.0.1.jar' -d /home/sobol/Arbeitsfläche/ -l1 java_insel
    1   Book: java_insel
    1     Downloading, verifying (MD5) and unpacking
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: de.scrum_master.util.FileDownloader$MD5MismatchException: /home/sobol/Arbeitsfläche/galileocomputing_javainsel.zip: expected 3f7fa5da11cbec50e9a2f4c7952f0499, got dbf5dd60502be22fd0ac42d44584309f
    at de.scrum_master.util.FileDownloader.download(FileDownloader.java:101)
    at de.scrum_master.galileo.Downloader.downloadBook(Downloader.java:48)
    ....

Ich fange gerade erst an Java zu lernen und kann nichts Brauchbares mit dem Output anfangen, ausser zu vermuten, dass in einer der Java-Dateien ein MD5-Hash einer alten Version der Insel liegt und nun auf Grund des, der neuen Auflage der Insel geschuldeten, abweichenden Hashes, das Programm nörgelt.

Grüße, Sobol

PS: Ich hoffe, eines Tages ausreichend Erfahrung in Java haben zu können, um den Code noch ein wenig weiterentwickeln zu können. Jedes mal den Sourcecode zu überarbeiten, wenn eine neue Auflage eines Buches erscheint, ist mühsam. Auch ein automatischer Scan, der zur Verfügung stehenden openBooks und die anschließende Auflistung dieser im GOC wäre ein duftes Feature.

kriegaex commented 11 years ago

Ja, der Download hat sich offenbar geändert. Ich werde das im Quellcode nachziehen. Aber Du kannst nach dem Download einfach den Cleaner nochmal starten, das Buch sollte entpackt und gesäubert werden.

Deine erste Anregung habe ich in Ticket #5 übrigens bereits eingetütet, ich komme nur selten zum Entwickeln. Wie auf der Hauptseite steht, habe ich das Tool hautpsächlich für mich selbst entwickelt. Wenn ich dazu komme, erweitere ich es gern. Aber meine Firma geht momentan vor. Vielleicht mal am Wochenende oder zwischendurch.

Die zweite Anregung wird wohl erst mal nicht kommen, aber ich behalte sie mal im Hinterkopf.

Theoretisch könnte ich die MD5-Prüfung auch ausschalten, aber dann würde ich ja nicht mehr mitkriegen, daß sich ein gleichnamiger Download geändert hat. Es könnte eine minimale Änderung oder eine Layout-Änderung im HTML-Code sein, die evtl. eine Programmanpassung zur Folge haben könnte.

kriegaex commented 11 years ago

MD5 ist wieder korrekt in v1.0.3.

kriegaex commented 11 years ago

Info: In der Entwicklerversion (Branch master, Commit 3593c814 oder neuer) ist jetzt die Bücherliste konfigurierbar, falls Du das mal testen willst. Die nächste Version (noch nicht freigegeben) wird das dann enthalten, eine Vorabversion gibt es unter http://scrum-master.de/download/GalileoOpenbookCleaner/galileo_openbook_cleaner-dev.jar.

kriegaex commented 11 years ago

Ist im neuen Release 1.1.0 enthalten, siehe Hauptseite. Außerdem gibt es nun zwei Diagnose-Modi, mit denen Du prüfen kannst, (a) ob die MD5-Prüfsummen aller bekannter Downloads noch stimmen und (b) ob auf der Webseite neue Bücher aufgetaucht sind. Ich habe also Deine Wünsche erfüllt. :-)