bei wem funktioniert UPnP?

Hier finden YaCy User Hilfe wenn was nicht funktioniert oder anders funktioniert als man dachte. Bei offensichtlichen Fehlern diese bitte gleich in die Bugs (http://bugs.yacy.net) eintragen.
Forumsregeln
In diesem Forum geht es um Benutzungsprobleme und Anfragen für Hilfe. Wird dabei ein Bug identifiziert, wird der thread zur Bearbeitung in die Bug-Sektion verschoben. Wer hier also einen Thread eingestellt hat und ihn vermisst, wird ihn sicherlich in der Bug-Sektion wiederfinden.

bei wem funktioniert UPnP?

Beitragvon Orbiter » Fr Jun 25, 2010 9:31 am

ich hab ja meinen Router immer manuell konfiguriert und habe nun aber mal eine UPnP Konfiguration ausprobiert. Geht nicht. Ja, ich hab im Router das Flag 'UPnP aktivieren' angemacht und den Router neu gebootet (ist ein Alice 1121 im freigehackten 'advanced'-Modus).

Hat jemand eine YaCy-UPnP-konfiguration funktionieren laufen?
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: bei wem funktioniert UPnP?

Beitragvon Lotus » Sa Jun 26, 2010 7:58 am

Es könnte am Betriebssystem liegen:
http://www.sbbi.net/site/upnp/compatibility.html

Das war damals die einzig passable Lösung für UPnP. Ich kann das im Moment mangels Hardware nicht mehr testen. Ich hatte allerdings das Gefühl, dass es ziemlich ausgereift ist.
Soweit ich weiß ist/war dulcedo ein UPnP-Anwender.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: bei wem funktioniert UPnP?

Beitragvon Copro » Do Jul 08, 2010 12:00 am

Habe es gerade mal mit meiner Fritz!Box 7270 ausprobiert und da scheint es nicht zu funktionieren - getestete Version ist YaCy 0.96 SVN 6963 unter Windows XP

S 2010/07/08 00:53:05 STARTUP YaCy version: 0.96/6963
S 2010/07/08 00:53:05 STARTUP Java version: 1.6.0_20
S 2010/07/08 00:53:05 STARTUP Operation system: Windows XP
S 2010/07/08 00:53:05 STARTUP Application root-path: C:\Programme\YaCy
S 2010/07/08 00:53:05 STARTUP Time zone: UTC+0200; UTC+0000 is 1278543185312
S 2010/07/08 00:53:05 STARTUP Maximum file system path length: 255
S 2010/07/08 00:53:05 BusyThread thread 'de.anomic.net.UPnP.addPortMapping' deployed, starting job.
I 2010/07/08 00:53:05 HeapReader saturation of api.bheap.zsLTJk77AmQy.idx: keylength = 11, vallength = 2, possible saving: 0 MB
I 2010/07/08 00:53:05 HeapReader using a dump of the index of C:\Programme\YaCy\DATA\WORK\api.bheap.
I 2010/07/08 00:53:05 HeapReader generating index for C:\Programme\YaCy\DATA\WORK\pkcounter.bheap, 0 MB. Please wait.
I 2010/07/08 00:53:05 HeapReader finished index generation for C:\Programme\YaCy\DATA\WORK\pkcounter.bheap, 1 entries, 0 gaps.
I 2010/07/08 00:53:05 HeapReader generating index for C:\Programme\YaCy\DATA\WORK\robots.bheap, 0 MB. Please wait.
I 2010/07/08 00:53:05 HeapReader finished index generation for C:\Programme\YaCy\DATA\WORK\robots.bheap, 1 entries, 0 gaps.
I 2010/07/08 00:53:10 UPNP no device found
I 2010/07/08 00:53:10 UPNP listening for device
S 2010/07/08 00:53:10 BusyThread thread 'de.anomic.net.UPnP.addPortMapping' terminated.



Da im Webinterface die Ports die über UPnP geöffnet wurden gelistet werden habe ich in uTorrent ebenfalls UPnP Port Mapping angeschalten und die Ports wurden problemlos eingetragen. Da scheint es sich also um ein Problem mit der UPnP Port Mapping Routine zu handeln.

Update: Ich habe nun auch mal direkt versucht mit etwas höherem Timeout in der Referenzmethode Discovery und derselben Klasse sbbi-upnplib-1.0.4.jar den Router zu finden aber auch hier findet er kein Gerät.
Die Bibliothek funktioniert nicht mehr mit commons-jxpath-1.2.jar oder der aktuell verwendeten commons-jxpath-1.3.jar
Dabei wird die folgende xpath Zuweisung zum Pointer nicht mehr ausgeführt:
Pointer rootPtr = context.getPointer( "UPNPRootDevice/root" );
--> org.apache.commons.jxpath.JXPathNotFoundException: No value for xpath: UPNPDevice/root

Mit der in der Distribution gepackten und ältesten JxPath 1.1 Bibliothek funktioniert das jedoch problemlos und damit auch das Portmapping und IGD Erkennung.
Copro
 
Beiträge: 207
Registriert: Do Dez 13, 2007 3:37 am

Re: bei wem funktioniert UPnP?

Beitragvon Copro » So Jul 18, 2010 3:50 pm

Habe die verwendete Library gepatched und da JxPath 1.3 auch keine default namespaces unterstützt alles manuell den verwendeten UPnP namespaces zugewiesen. Die Änderungen betreffen die beiden Klassen
net.sbbi.upnp.devices.UPNPRootDevice (xmlns="urn:schemas-upnp-org:device-1-0")
net.sbbi.upnp.services.UPNPService (xmlns="urn:schemas-upnp-org:service-1-0")
in denen ich einfach den Namespace hartcodiert habe.
In JxPath 1.1 wurden die Namespaces einfach ignoriert aber seit Version 1.2 der Library werden sonst keine Nodes im XML mehr gefunden wenn nicht der richtige Namespace angegeben ist.

Die fertig kompilierte gepatchte Library ist hier verfügbar und muss einfach in lib/ ersetzt werden damit UPnP wieder funktioniert: sbbi-upnplib-1.0.4.jar
Da ich nicht genau weiss, oh ich das einfach so einchecken soll / kann / darf habe ich hier auch den Sourcecode mit den Änderungen:
sbbi-upnplib-src-1.0_patched_for_JxPath-1.3_namespace_awareness.zip

Das Portmapping funktioniert damit wieder einwandfrei:
I 2010/07/18 16:29:43 UPNP found device: FBW63 UPnP/1.0 AVM FRITZ!Box Fon WLAN 7270 54.04.80
I 2010/07/18 16:29:44 UPNP mapped port 8080 on device FBW63 UPnP/1.0 AVM FRITZ!Box Fon WLAN 7270 54.04.80
(...)
I 2010/07/18 16:47:13 UPNP unmapped port 8080 on device FBW63 UPnP/1.0 AVM FRITZ!Box Fon WLAN 7270 54.04.80
S 2010/07/18 16:47:13 SHUTDOWN goodbye. (this is the last line)
Copro
 
Beiträge: 207
Registriert: Do Dez 13, 2007 3:37 am

Re: bei wem funktioniert UPnP?

Beitragvon Orbiter » Mi Jul 21, 2010 12:30 am

Copro: super! Sorry ich war im Urlaub und arbeite jetzt alles liegengebliebene auf.

Ja da habe ich ja noch vor ein paar Wochen die Sourcen der upnp lib aus YaCy raus genommen.. also ich muss nochmal aufschreiben wie es zu den Sourcen der Lib in YaCy kam:
- ein Fedora release Manager wollte YaCy in Fedora aufnehmen und nach viel Recherche kam heraus dass die verwendete UPnP Lib nicht in Fedora ist und somit kann YaCy nicht in Fedora aufgenommen werden es sei denn wir nehmen den Source code auf. Den UPnP code als Lib in Fedora aufzunehmen ging auch nicht weil der Code als 'nicht maintained' gilt.
- also hat lotus die UPnP Library im Source Code eingecheckt. Damit wurde der Source Code Teil von YaCy und wir wurden der Maintainer für die Lib
- ich konnte es nicht lassen und hab am Code rumgefriemelt. Als dann UPnP nicht mehr ging hatte ich den Eindruck ich hätte was kaputt gemacht.
- der nächste Plan war dann, den UPnP Code wieder raus zu schmeissen (weil nicht ging), statt dessen die Library wieder rein zu nehmen und die dann aber nur über Reflection anzusprechen. Dann hätte man YaCy auch ohne die UPnP lib reif für Fedora machen können
- Dann kam der Urlaub dazwischen und ich hab nicht weiter dran gearbeitet.

Lotus, sorry dass ich das nicht mit dir kommuniziert habe.
Nun haben wir den Salat: Copro hätte einen Fix für den wir den Source code bräuchten. Jetzt sagten mir die FSFE Leute beim Linuxtag mit denen ich den Sachverhalt auch besprochen habe: wir sollten den Source code in die YaCy Package Domäne verschieben damit es klar ist das es ein anderer Code ist. Ich fand das ein wenig merkwürdig weil es wie 'klauen' aussieht aber die FSFE Leute meinten das sei so richtig und sollte besser so gemacht werden.

Jetzt würde ich folgendes vorschlagen: wir nehmen den Code wieder komplett in YaCy hinein, aber in eine YaCy Package-Domäne und betrachten das ganze dann aber als YaCy sub-Projekt. Lotus und Copro werden die Maintainer der Library. Den Code könnte man sogar extern als git repository hosten und er bleibt dann in YaCy so lange bis wir es schaffen das Ding in die Releases von Fedora und ggf. von debian zu pushen. Das sollte nicht so schwer sein wenn wir eine Maintenance nachweisen können. Copro, Lotus: wäre das was für euch?
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: bei wem funktioniert UPnP?

Beitragvon Lotus » Mi Jul 21, 2010 8:06 am

Ja, dann nehmen wir den Code wieder rein. Soweit ich das gesehen habe, hast du nur ein paar Compiler-Warnungen und (final) Variablen geändert.
Ich nehme mir das bis Ende der Woche vor.
Copro, dann kannst du den Patch einspielen.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: bei wem funktioniert UPnP?

Beitragvon Copro » Mi Jul 21, 2010 7:34 pm

Urlaub muss sein und jetzt habe ich auch schon wieder mal ein bisschen mit Java gespielt ;-]
@Lotus: Die Compiler-Warnungen hat wohl Netbeans mit angepasst, denn auch die Anzahl der kompilierten Klassen ist nicht 1:1 das was im Original jar drin steckte.

Wenn aber sowieso der ganze Sourcecode wieder mit aufgenommen werden soll kann es sein dass man da gar nicht alle Klassen für braucht. Das sbbi-upnplib Paket bringt ja auch einen Server - Client Teil mit den YaCy gar nicht verwendet - und den könnte man dann ja weglassen.

Nur so nebenbei ....
Beim Rumprobieren mit den Code Samples wie IGDPortsTest bin ich auch auf einige deprecated Funktionen gestossen die von neuen UPnP Geräten gar nicht mehr unterstützt werden wie z.B. die Abfrage der stateVariable "PortMappingNumberOfEntries". Da die letzte Änderung am Code aber auch schon fast 4 Jahre zurückliegt ist das nicht weiter verwunderlich. Ob das also so richtig maintained werden kann ist fraglich - klingt aber trotzdem interessant.

Und nachdem ich anfangs mit sbbi-upnplib gar nicht klargekommen bin habe ich mir die UPnP Implementierung von Vuze (ehemals Azureus) angesehen und das sieht dann schon ganz anders aus als diese Library 8-)
Copro
 
Beiträge: 207
Registriert: Do Dez 13, 2007 3:37 am

Re: bei wem funktioniert UPnP?

Beitragvon Lotus » Mi Jul 21, 2010 9:43 pm

Ja, ich habe damals von der sbbi upnplib einiges gelöscht nach dem Motto, wenn es nicht mehr kompiliert war es das falsche. Ich weiß allerdings nicht mehr ob das auch den Source betroffen hat oder nur die Libraries.

Vuze habe ich mir damals auch angesehen. Dort wurde allerdings eine fette Library (mehrere MB) mitgeschleppt, die wir gar nicht benötigen.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: bei wem funktioniert UPnP?

Beitragvon Lotus » Do Jul 22, 2010 7:06 pm

Ich hab den Source nun unter dem YaCy Package in r6986 eingecheckt.
Copro: hier kannst du den Fix einspielen und gucken ob es noch funktioniert. Ich habe zur Zeit keine passende Hardware zum testen.

Orbiter hat geschrieben:Jetzt sagten mir die FSFE Leute beim Linuxtag mit denen ich den Sachverhalt auch besprochen habe: wir sollten den Source code in die YaCy Package Domäne verschieben damit es klar ist das es ein anderer Code ist. Ich fand das ein wenig merkwürdig weil es wie 'klauen' aussieht aber die FSFE Leute meinten das sei so richtig und sollte besser so gemacht werden.

In der Lizenz steht sogar drin, dass man abgewandelte Produkte nicht mehr sbbi nennen soll. Also machen wir das richtig.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: bei wem funktioniert UPnP?

Beitragvon Copro » Do Jul 22, 2010 8:19 pm

Fix ist mit SVN 6988 drin und funktioniert noch - bitte auch mal mit anderen Routern testen.
Habe durch zu schnelles Klicken in 6987 beide Dateien einzeln committed ;-)
Copro
 
Beiträge: 207
Registriert: Do Dez 13, 2007 3:37 am

Re: bei wem funktioniert UPnP?

Beitragvon Orbiter » Fr Jul 23, 2010 8:55 am

ah super! sieht auch so aus als seien das weniger Dateien als vorher?
ich bekomme aber hier noch einen Haufen Warnings beim Compilieren:
Code: Alles auswählen
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/impls/InternetGatewayDevice.java:229: warning: [dep-ann] deprecated item is not annotated with @Deprecated
    [javac]   public static InternetGatewayDevice[] getIPDevices( int timeout ) throws IOException {
    [javac]                                         ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/impls/InternetGatewayDevice.java:241: warning: [dep-ann] deprecated item is not annotated with @Deprecated
    [javac]   public static InternetGatewayDevice[] getPPPDevices( int timeout ) throws IOException {
    [javac]                                         ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/impls/InternetGatewayDevice.java:258: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Set
    [javac]           valid.add( new InternetGatewayDevice( devices[i], WANIPConnection, WANPPPConnection ) );
    [javac]                    ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/devices/UPNPDevice.java:168: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
    [javac]       rtrVal.add( device );
    [javac]                 ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/devices/UPNPDevice.java:171: warning: [unchecked] unchecked call to addAll(java.util.Collection<? extends E>) as a member of the raw type java.util.List
    [javac]         rtrVal.addAll( found );
    [javac]                      ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/devices/UPNPDevice.java:188: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
    [javac]       rtrVal.add( device );
    [javac]                 ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/devices/UPNPDevice.java:229: warning: [unchecked] unchecked call to addAll(java.util.Collection<? extends E>) as a member of the raw type java.util.List
    [javac]     rtrVal.addAll( services );
    [javac]                  ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/devices/UPNPDevice.java:281: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
    [javac]         rtrVal.add( service );
    [javac]                   ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/devices/UPNPRootDevice.java:309: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
    [javac]       device.childDevices.add( childDevice );
    [javac]                              ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/devices/UPNPRootDevice.java:356: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
    [javac]       device.services.add( service );
    [javac]                          ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/devices/UPNPRootDevice.java:391: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
    [javac]       device.deviceIcons.add( ico );
    [javac]                             ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/services/UPNPService.java:219: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
    [javac]             orderedActionArguments.add( arg );
    [javac]                                       ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/services/UPNPService.java:227: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]         UPNPServiceActions.put( action.getName(), action );
    [javac]                               ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/services/UPNPService.java:272: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Set
    [javac]           srvStateVar.allowedvalues.add( allowedValue );
    [javac]                                        ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/services/UPNPService.java:292: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]       UPNPServiceStateVariables.put( srvStateVar.getName(), srvStateVar );
    [javac]                                    ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/messages/ActionResponse.java:86: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]     outArguments.put( arg.getName(), arg );
    [javac]                     ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/messages/ActionResponse.java:87: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]     outArgumentsVals.put( arg.getName(), value );
    [javac]                         ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/messages/ActionMessage.java:310: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
    [javac]     inputParameters.add( container );
    [javac]                        ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/services/ServiceAction.java:183: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
    [javac]         rtrVal.add( actArg );
    [javac]                   ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/services/ServiceAction.java:196: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
    [javac]         rtrVal.add( actArg.getName() );
    [javac]                   ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/Discovery.java:172: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]               devices.put( usn, device );
    [javac]                          ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/DiscoveryAdvertisement.java:127: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]           aliveRegistered.put( nt, handlers );
    [javac]                              ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/DiscoveryAdvertisement.java:129: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Set
    [javac]         handlers.add( eventHandler );
    [javac]                     ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/DiscoveryAdvertisement.java:134: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]           byeByeRegistered.put( nt, handlers );
    [javac]                               ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/DiscoveryAdvertisement.java:136: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Set
    [javac]         handlers.add( eventHandler );
    [javac]                     ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/DiscoveryAdvertisement.java:302: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]          USNPerIP.put( usn, from );
    [javac]                      ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/DiscoveryListener.java:115: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]         registeredHandlers.put( searchTarget, handlers );
    [javac]                               ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/DiscoveryListener.java:117: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Set
    [javac]       handlers.add( resultsHandler );
    [javac]                   ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/HttpResponse.java:96: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]             fields.put( key, value );
    [javac]                       ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/ServiceEventMessageParser.java:81: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]         changedStateVars.put( currentPropName, newChars );
    [javac]                             ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/ServiceEventMessageParser.java:83: warning: [unchecked] unchecked call to put(K,V) as a member of the raw type java.util.Map
    [javac]         changedStateVars.put( currentPropName, origChars + newChars );
    [javac]                             ^
    [javac] /Volumes/Raptor/Data/workspace1/yacy/source/net/yacy/upnp/ServicesEventing.java:194: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
    [javac]             registered.add( sub );
    [javac]                           ^
    [javac] 32 warnings
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: bei wem funktioniert UPnP?

Beitragvon Copro » Sa Jul 24, 2010 3:36 am

Die beiden Funktionen mit @Deprecated zu versehen ist kein Problem.
Das festlegen der Werte für Set, HashSet und List schaue ich mir an - vielleicht kann ich das ausbessern.
Ansonsten könnte man diese Warnungen unterdrücken: @SuppressWarnings("unchecked")
Copro
 
Beiträge: 207
Registriert: Do Dez 13, 2007 3:37 am

Re: bei wem funktioniert UPnP?

Beitragvon Orbiter » Sa Jul 24, 2010 11:53 am

wenn wir uns schon den Code aneignen dann kann man auch gleich mal gucken ob die Typisierung so ok ist. Wenn es das ist dann sollte ein Hinzufügen der Generics an den angewarnten Stellen auch gelingen, wenn nicht ist da sowieso ein Strukturproblem, was ich aber nicht vermute. Die bessere Alternative wäre das Hinzufügen der Generics, aber ich wollte da nicht gleich selber wieder drin rumfingern, sonst mache ich wieder was falsch..
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: bei wem funktioniert UPnP?

Beitragvon Copro » Sa Jul 24, 2010 3:02 pm

Da ich so strenge Typisierung noch gar nicht gesehen habe kann ich wohl das Meiste davon lernen.
Habe mir also die Warnungen in SVN 6993 vorgenommen und die jeweiligen Dateien angepasst und UPnP hat danach auch noch anständig funktioniert.

Die einzig übrigen 8 Warnungen beim Compilieren sind nun folgende:
\trunk\build.xml:213: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
Compiling 1 source file to \trunk\classes
\trunk\build.xml:223: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
Compiling 458 source files to \trunk\classes
\trunk\source\net\yacy\document\parser\images\genericImageParser.java:48: warning: com.sun.image.codec.jpeg.ImageFormatException is Sun proprietary API and may be removed in a future release
import com.sun.image.codec.jpeg.ImageFormatException;
\trunk\source\net\yacy\document\parser\images\genericImageParser.java:49: warning: com.sun.image.codec.jpeg.JPEGCodec is Sun proprietary API and may be removed in a future release
import com.sun.image.codec.jpeg.JPEGCodec;
\trunk\source\net\yacy\document\parser\images\genericImageParser.java:50: warning: com.sun.image.codec.jpeg.JPEGDecodeParam is Sun proprietary API and may be removed in a future release
import com.sun.image.codec.jpeg.JPEGDecodeParam;
\trunk\source\net\yacy\document\parser\images\genericImageParser.java:51: warning: com.sun.image.codec.jpeg.JPEGImageDecoder is Sun proprietary API and may be removed in a future release
import com.sun.image.codec.jpeg.JPEGImageDecoder;
\trunk\source\net\yacy\document\parser\images\genericImageParser.java:117: warning: com.sun.image.codec.jpeg.JPEGImageDecoder is Sun proprietary API and may be removed in a future release
JPEGImageDecoder jpegDecoder = JPEGCodec.createJPEGDecoder(sourceStream);
\trunk\source\net\yacy\document\parser\images\genericImageParser.java:117: warning: com.sun.image.codec.jpeg.JPEGCodec is Sun proprietary API and may be removed in a future release
JPEGImageDecoder jpegDecoder = JPEGCodec.createJPEGDecoder(sourceStream);
\trunk\source\net\yacy\document\parser\images\genericImageParser.java:121: warning: com.sun.image.codec.jpeg.ImageFormatException is Sun proprietary API and may be removed in a future release
} catch (ImageFormatException e) {
\trunk\source\net\yacy\document\parser\images\genericImageParser.java:126: warning: com.sun.image.codec.jpeg.JPEGDecodeParam is Sun proprietary API and may be removed in a future release
JPEGDecodeParam decodeParam = jpegDecoder.getJPEGDecodeParam();
8 warnings


Eine Warnung die erst zur Laufzeit auftritt ist die fehlende log4j Konfiguration.
log4j:WARN No appenders could be found for logger (net.yacy.upnp.Discovery).
log4j:WARN Please initialize the log4j system properly.

Aber egal wo ich die folgende log4j.properties abgelegt habe konnte ich die Meldung nicht beseitigen - vielleicht kann ja jemand aushelfen.
Code: Alles auswählen
#### Use two appenders, one to log to console, another to log to a file 
log4j.rootCategory=info, stdout, R 
 
#### First appender writes to console 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
 
# Pattern to output the caller's file name and line number. 
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F%L) - %m%n 

Soweit ich das sehen kann würden die Ausgaben vom log4j System dann auch einfach ans stdout der Console angehängt.

Kurzfristig hatte ich ein Problem bei dem auf einmal nur noch 127.0.0.1 beim Aufruf von myPublicLocalIP() zurückgeliefert wurde - deswegen habe ich auch die Datei angefasst und ein Debug Statement korrigiert und den Namen der Datei in den Headern geändert. (serverDNSCache.java -> Domains.java)
Copro
 
Beiträge: 207
Registriert: Do Dez 13, 2007 3:37 am

Re: bei wem funktioniert UPnP?

Beitragvon Lotus » Sa Jul 24, 2010 7:41 pm

Copro hat geschrieben:Eine Warnung die erst zur Laufzeit auftritt ist die fehlende log4j Konfiguration.
log4j:WARN No appenders could be found for logger (net.yacy.upnp.Discovery).
log4j:WARN Please initialize the log4j system properly.

Aber egal wo ich die folgende log4j.properties abgelegt habe konnte ich die Meldung nicht beseitigen - vielleicht kann ja jemand aushelfen.
[code]

Die habe ich bislang einfach ignoriert, weil ich sie nur beim Start aus Eclipse gesehen habe. Ich habe auch schon probiert sie zu beseitigen, aber nicht auf Anhieb geschafft.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: bei wem funktioniert UPnP?

Beitragvon Copro » Mo Jul 26, 2010 9:23 pm

Habe nun die folgende log4.properties Datei eingecheckt:
Code: Alles auswählen
#### Use only the log to console appender
log4j.rootCategory=info, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F%L) - %m%n 

SVN 6998: http://svn.berlios.de/wsvn/yacy/trunk/s ... properties
Copro
 
Beiträge: 207
Registriert: Do Dez 13, 2007 3:37 am


Zurück zu Fragen und Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast