Autor Thema: NullPointerException  (Gelesen 4842 mal)

Offline DaHias

  • Aktives Mitglied
  • ***
  • Beiträge: 132
NullPointerException
« 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

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: NullPointerException
« Antwort #1 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.

Offline atbits

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • sei Du selbst die Veränderung, die Du Dir wünschst
    • atBits
Re: NullPointerException
« Antwort #2 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
David Schiffer
================================
atBits GmbH & Co. KG - https://atbits.de
im Einsatz: Lotus Domino 8.5, 9, 10

Offline DaHias

  • Aktives Mitglied
  • ***
  • Beiträge: 132
Re: NullPointerException
« Antwort #3 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!

Offline atbits

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • sei Du selbst die Veränderung, die Du Dir wünschst
    • atBits
Re: NullPointerException
« Antwort #4 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
David Schiffer
================================
atBits GmbH & Co. KG - https://atbits.de
im Einsatz: Lotus Domino 8.5, 9, 10

Offline DaHias

  • Aktives Mitglied
  • ***
  • Beiträge: 132
Re: NullPointerException
« Antwort #5 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! :)

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: NullPointerException
« Antwort #6 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.

Offline atbits

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • sei Du selbst die Veränderung, die Du Dir wünschst
    • atBits
Re: NullPointerException
« Antwort #7 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
David Schiffer
================================
atBits GmbH & Co. KG - https://atbits.de
im Einsatz: Lotus Domino 8.5, 9, 10

Offline DaHias

  • Aktives Mitglied
  • ***
  • Beiträge: 132
Re: NullPointerException
« Antwort #8 am: 18.05.10 - 11:30:45 »
Ok mal wieder ein Beweis dafür "Wer bis zum Ende liest, ist schlauer"... *grml* danke :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz