# Nach Umbenennung der Packages viele Probleme



## Mappenz (11. Aug 2011)

Ich habe ein kleines Plug-in mit einem View und einer Perspective. Nachdem ich die Packages mit refactor>rename geändert habe hatte ich große Probleme mit dem Projekt und mit SVN. Ich denke, dass ich Mitlerweile fast alle Probleme behoben habe. Wenigstens werden die Klassen wieder gefunden. Die Fehler sind Folgende

1. Beim Laden der View wird eine Nullpointerexception geworfen. 
	
	
	
	





```
final Image originalImg  = Activator.getImageDescriptor("icons/artikelen_afbeelding_96790.jpg").createImage();
```
 Ich habe bis jetzt noch kein besonders gutes Verständnis für relative Pfade (besonders im Zusammenhang mit Plug-ins). Während ich mir ziemlich sicher bin, dass der Fehler durch falsche Angabe des Pfades entsteht,komme ich nicht darauf wie es richtig aussehen muss. Das Bild existiert in dem Pfad, wurde vor den Namensänderung auch gefunden und auch nicht mit geändert. Die Klasse die das Bild benutzt liegt aber in der Ordnerstruktur  nun tiefer.

2. Beim Bauen werde ich gefragt ob ich wirklich bauen möchte, denn es existieren noch Fehler im Projekt. Meine Klassen sehen gut aus. Aber in der Plugin.xml habe ich Probleme: 
	
	
	
	





```
No Grammarkonstrains (DTD or XML shema) detected for the document
```
. Ich bin mir sehr sicher, dass das erst seit der Umbenennung ist, daher macht es keinen Sinn irgend ein Dokument zu verlinken.

[XML]<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         point="org.eclipse.ui.perspectives">
      <perspective
            class="de.fzi.se.fischertechnikUI.perspectives.PerspectiveFactory"
            icon="icons/sample.gif"
            id="de.fzi.se.fischertechnikUI.FischertechnikUI"
            name="FischertechnikUI">
      </perspective>
   </extension>
   <extension
         point="org.eclipse.ui.views">
      <category
            id="de.fzi.se.fischertechnikUI.FischertechnikCategory"
            name="FischertechnikUICategory">
      </category>
      <view
            category="de.fzi.se.fischertechnikUI.FischertechnikCategory"
            class="de.fzi.se.fischertechnikUI.views.FischertechnikUI"
            icon="icons/sample.gif"
            id="de.fzi.se.fischertechnikUI.FischertechnikUIView"
            name="FischertechnikUI"
            restorable="true">
      </view>
   </extension>
</plugin>
[/XML]

[XML]Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: FischertechnikUI
Bundle-SymbolicName: fischertechnikUI;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: de.fzi.se.fischertechnikUI.Activator
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.runtime
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6[/XML]



```
source.. = src/
output.. = bin/
bin.includes = plugin.xml,\
               META-INF/,\
               .,\
               icons/
```


----------



## Mappenz (11. Aug 2011)

Die NPE wird von 
	
	
	
	





```
createPartControl(Composite parent)
```
 aus der Klasse die zum View gehört direkt nach dem Eintritt, auch ohne Code geworfen.


----------



## Mappenz (11. Aug 2011)

Im Debugger sehe ich ein komisches Verhalten.
Zunächst kommentiere ich allen Code aus der Funktion 
	
	
	
	





```
createPartControl(Composite parent)
```
 aus. Hier ist auch die einzige stelle in an der ich "/icons/artikelen_afbeelding_96790.jpg" und den Aufruf
	
	
	
	





```
Activator.getImageDescriptor("/icons/artikelen_afbeelding_96790.jpg").createImage();
```
 überhaupt verwende.

Aus der Funktion 
	
	
	
	





```
createPartControl(Composite parent)
```
 herraus wird dann trotzdem 
	
	
	
	





```
Activator.getImageDescriptor("/icons/artikelen_afbeelding_96790.jpg").createImage();
```
 aufgerufen.

Vor Ausführung wird erst mal gecleared.

Schaut euch die Fotos an. Wie kann das sein?


----------



## Gonzo17 (12. Aug 2011)

Das hört sich schon sehr dubios an. Versuch doch mal in einem frischen Workspace den Code neu auszuchecken und schau, ob es sich genauso verhält. Vielleicht ist das ein Problem von Eclipse, dass da irgendwie (warum auch immer) alter Code verwendet wird. Zumindest machts ja keinen Sinn, dass auskommentierter Code ausgeführt wird.


----------



## Mappenz (12. Aug 2011)

In neuem Workspace ausgeführt bekomme ich andere Probleme. Gestern habe ich im alten Workspace den bin Ordner gelöscht, der Effekt war der Selbe. Klassen können nicht gefunden werden. 
	
	
	
	





```
!ENTRY org.eclipse.osgi 2 0 2011-08-12 10:43:50.254
!MESSAGE The activator de.xx.xx.fischertechnikUI.Activator for bundle fischertechnikUI is invalid
!STACK 0
org.osgi.framework.BundleException: The activator de.xx.xx.fischertechnikUI.Activator for bundle fischertechnikUI is invalid
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:156)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:751)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
...
```
...

```
Root exception:
java.lang.ClassNotFoundException: de.xx.xx.fischertechnikUI.Activator
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
...
```

Ich habe nun aber schon zu viel zeit damit verbracht und obwohl es mir sehr gegen den Strich geht bin ich kurz vorm Aufgeben, nochmal den Activator genau anschauen. Danach wird alles neu gemacht.


----------



## Sonecc (12. Aug 2011)

Schonmal Clean Projects gemacht?
Dass er den Code verarbeitet trotz der Tatsache, dass er auskommentiert wurde spricht dafür, dass die *.class Dateien alt sind und das wiederum dafür, dass nicht komplett neu kompiliert wurde.
Einfach mal ein Clean Projects auf alle Projekte machen und dann nochmal schauen


----------



## Mappenz (12. Aug 2011)

Ja, das habe ich schon gemacht, mit dem neuen Workspace ist das ausführen der alten Binaries kein Problem mehr.


----------



## Sonecc (12. Aug 2011)

Bedeutet dass, das dein Problem gelöst ist oder kriegst du weiterhin fehler die du vorher nicht hattest?

Btw. solltest du möglichst nicht selbst irgendwelche Ordner löschen, sondern das Eclipse machen lassen (wie in dem Fall der bin Ordner). Clean Projects ist genau dafür da.


----------



## Mappenz (12. Aug 2011)

Meine Probleme sind nicht gelöst, sie sehen nur anders aus, so wie im Post von 10:55 beschrieben.


----------



## Sonecc (12. Aug 2011)

Der Activator liegt auch wirklich an de.xx.xx.fischertechnikUI.Activator und ist fehlerfrei? Gibts dort irgendwelche compilermeldungen für?
Ist der Activator bearbeitet worden, also ist dort eigener Code drin oder ist er genauso, wie Eclipse ihn erzeugt hat?


----------



## Mappenz (12. Aug 2011)

Den Activator habe ich bis jetzt nicht angefasst. Als ich Reingeschaut habe ist mir das hier aufgefallen.
	
	
	
	





```
// The plug-in ID
	public static final String PLUGIN_ID = "wscFischertechnik"; //$NON-NLS-1$
```
 Das ist der alte Name.


```
public static final String PLUGIN_ID = "de.xx.xx.fischertechnikUI";
```
 hat erstmal keine Verbesserung gebracht, wo kann ich denn die ID des Plugins ablesen? Compilermeldungen habe ich keine


----------



## Mappenz (12. Aug 2011)

Ich habe auf einem anderen Workspace ein neues Plugin-Projekt gemacht und die Klassen übernommen, nachdem ich hier im Activator die ID richtig eingestellt habe funktioniert es wieder. 

Ich denke auf dem alten Workspace wurde veränderter Quellcode meiner Ansischt nach nicht gebaut. Vor dem Ausführen wurde ich vor Fehlern im Projekt gewarnt. Ich weis nicht wo die Fehler sein sollen. Der Code sieht ok aus, lediglich im plugin.xml habe ich die Warunung mit den grammar constraints.

Ich werde nun das neue Projekt ins SVN repository schieben und damit weiter machen. Hoffe, dass dies wenigstens glatt geht. Danke für die Hilfe, schön dass man ernst genommen wird.


----------

