Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: DaHias am 17.05.10 - 15:53:22

Titel: NullPointerException
Beitrag von: DaHias am 17.05.10 - 15:53:22
Hi zusammen,

Ich erhalte bei folgendem Code eine NullPointerException:

Code
package com.esg.print.pdf;

import lotus.domino.*;

import java.io.*;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;

import com.ibm.notes.java.ui.*;
import com.ibm.notes.java.ui.documents.NotesUIDocument;
import com.ibm.notes.java.api.*;
import com.ibm.notes.java.api.util.NotesSessionJob;
import org.osgi.framework.BundleActivator;
import org.eclipse.core.runtime.Platform;
import org.eclipse.osgi.util.NLS;

public class PDFPrinter extends AgentBase {

	public void NotesMain() {

		try {

			NotesSessionJob job = new NotesSessionJob("BG Operation") {
				protected IStatus runInNotesThread(Session session,
						IProgressMonitor monitor) throws NotesException {

					// compute something here

					return Status.OK_STATUS;
				}
			};
			job.schedule();

		} catch (Exception e) {
			System.err.println(e.getClass().getName() + ": " + e.getMessage());
		}
	}
}

Zitat
java.lang.NullPointerException: null

Das kann doch eigentlich nur den job betreffen oder? Aber wieso? Ich habe diesen Code lediglich kopiert, weil dazu geraten wird so etwas zu nutzen wenn man für den Client etwas programmiert.

Vielen Dank für die Hilfe!

Grüße,
Mathias
Titel: Re: NullPointerException
Beitrag von: MadMetzger am 18.05.10 - 07:07:20
Lass dir mal den Stacktrace der Exception ausgeben, da siehst du besser, wo die NPE exakt geworfen wird. Auf den ersten Blick sehe ich da nix, wo eine NPE fliegen kann, es sei denn du hast mit dem "compute something here" noch weiteren Code ersetzt.
Titel: Re: NullPointerException
Beitrag von: atbits am 18.05.10 - 09:02:14
Also ich verstehe nicht ganz, warum Du in einem Agent einen extra Thread aufmachen willst.
Ist das überhaupt supported?

Ist die Klasse NotesSessionJob nicht für die Verwendung in eigenständigen Java-Applikationen gedacht?

Grüße David
Titel: Re: NullPointerException
Beitrag von: DaHias am 18.05.10 - 10:28:06
Hi David,

Also ich arbeite deshalb mit Threads, weil ich in einem Artikel, bei dem es allgemein um Lotus Notes und Java ging, gelesen habe, dass dazu dringend geraten wird. Bin leider zu neu auf dem Gebiet um das wirklich gut beurteilen zu können.

@Markus: Ok das muss ich mal ausprobieren, weiß ich jetzt nicht genau wie das geht. Danke!
Titel: Re: NullPointerException
Beitrag von: atbits am 18.05.10 - 10:35:59
Was war das für ein Artikel, also ich habe mit Multithreading und Notes keine besonders guten Erfahrungen.

Und in Agenten würde ich die Finger davon lassen (insbesondere wenn Du keine Erfahrung in Notes und Java hast, oder bezog sich das nur auf Notes).

Was willst Du denn machen, dass Du mehrere Threads benötigst?
In einem Agent ist das definitiv gefährlich, weil du wegen dem recycling der Objekte aufpassen mußt, dass erledigt dir bei Notes-Objekten ja nicht der Garbage Collector.

Grüße David
Titel: Re: NullPointerException
Beitrag von: DaHias am 18.05.10 - 10:52:12
Der Artikel war besser gesagt eine Präsentation von der Lotussphere (Folie 37):

http://www.mindoo.com/web/blog.nsf/dx/BP203_LS10.pdf/$file/BP203_LS10.pdf

Also das mit der Erfahrung bezog sich auf Java und Notes. Notes hab ich nun doch schon etwas mehr Erfahrung ^^

Eigentlich will ich nur einen Agenten schreiben mit Java und sozusagen mal etwas rumprobieren. Dabei kam ich aber immer nicht so recht voran und hab dann gegoogelt und eben diesen Artikel gefunden. Seitdem probier ich mti den NotesSessionJobs rum.

Eigentlich will ich jetzt z.B. nur nen Agenten, der mir das aktuell gewählte Dokument ausdruckt.

Ok dann lass ich wohl besser mal die Finger von den Threads.

Danke schonmal! :)
Titel: Re: NullPointerException
Beitrag von: MadMetzger am 18.05.10 - 11:02:20
Eine einfache Möglichkeit dir den Stacktrace ausgeben zu lassen ist das Aufrufen von
Code
e.printStacktrace;
im Catch-Block.
Titel: Re: NullPointerException
Beitrag von: atbits am 18.05.10 - 11:27:35
Der Artikel / Die Präse von der Lotusphere bezieht sich übrigens auf Plugin-Entwicklung für den Notes-Client / Designer, da macht multithreading auch Sinn.

Bei JavaAgents nicht.

Grüße
Titel: Re: NullPointerException
Beitrag von: DaHias am 18.05.10 - 11:30:45
Ok mal wieder ein Beweis dafür "Wer bis zum Ende liest, ist schlauer"... *grml* danke :)