<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>'java NullPointerException when running the program' Thread RSS Feed</title>
    <link>http://www.programmersheaven.com/</link>
    <description>Contains the latest posts from the thread 'java NullPointerException when running the program' posted on the 'Object Orientation' forum at Programmer's Heaven.</description>
    <language>en</language>
    <copyright>Copyright 2013 Programmers Heaven</copyright>
    <pubDate>Wed, 19 Jun 2013 04:40:24 -0700</pubDate>
    <lastBuildDate>Wed, 19 Jun 2013 04:40:24 -0700</lastBuildDate>
    <generator>Argotic Syndication Framework 2007.3.0.1, http://www.codeplex.com/Argotic</generator>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <ttl>360</ttl>
    <image>
      <url>http://www.programmersheaven.com/images/ph.gif</url>
      <title>Programmers Heaven</title>
      <link>http://www.programmersheaven.com/</link>
      <width>88</width>
      <height>31</height>
    </image>
    <item>
      <title>java NullPointerException when running the program</title>
      <link>http://www.programmersheaven.com/mb/objects/415819/415819/java-nullpointerexception-when-running-the-program/</link>
      <description>It is a Java program I wrote, with so far no compile error. But there is the NullPointerException message when running the program. How to solve the problem?&lt;br /&gt;
&lt;br /&gt;
Exception in thread "main" java.lang.NullPointerException&lt;br /&gt;
at TaskSet$Task.access$000(TaskSet.java:75)&lt;br /&gt;
at TaskSet.getStartTime(TaskSet.java:72)&lt;br /&gt;
at TaskSet.minCompletionTime(TaskSet.java:47)&lt;br /&gt;
at TaskSetTest.main(TaskSetTest.java:11)&lt;br /&gt;
Press any key to continue . . .&lt;br /&gt;
&lt;br /&gt;
Here my program&lt;br /&gt;
&lt;br /&gt;
import java.lang.Math;&lt;br /&gt;
&lt;br /&gt;
public class TaskSet&lt;br /&gt;
{&lt;br /&gt;
	private final int MAX = 20;&lt;br /&gt;
	private Task tasks[];&lt;br /&gt;
	private int matrix[][];&lt;br /&gt;
	private int num;&lt;br /&gt;
&lt;br /&gt;
	public TaskSet()&lt;br /&gt;
	{&lt;br /&gt;
		tasks = new Task[MAX];&lt;br /&gt;
		matrix = new int[MAX][MAX];&lt;br /&gt;
		num = 0;&lt;br /&gt;
		for (int i = 0; i &amp;lt; MAX; i++)&lt;br /&gt;
		{&lt;br /&gt;
			for (int j = 0; j &amp;lt; MAX; j++)&lt;br /&gt;
			{&lt;br /&gt;
				matrix[i][j] = 0;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void addTask(int x)&lt;br /&gt;
	{&lt;br /&gt;
		tasks[num++] = new Task(x);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void addTaskConstraint(int i, int j)&lt;br /&gt;
	{&lt;br /&gt;
		if (matrix[j][i] == 1)&lt;br /&gt;
		{&lt;br /&gt;
			tasks[i].startTime = -1;&lt;br /&gt;
			tasks[j].startTime = -1;&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		matrix[i][j] = 1;&lt;br /&gt;
		getStartTime(i);&lt;br /&gt;
		minCompletionTime();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public int minCompletionTime()&lt;br /&gt;
	{&lt;br /&gt;
		int time = 0;&lt;br /&gt;
		for (int i = 0; i &amp;lt; MAX; i++)&lt;br /&gt;
		{&lt;br /&gt;
			if (getStartTime(i) == -1)&lt;br /&gt;
			{&lt;br /&gt;
				return -1;&lt;br /&gt;
			}&lt;br /&gt;
			time = Math.max(time, getStartTime(i) + tasks[i].time);&lt;br /&gt;
		}&lt;br /&gt;
		return time;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public int getStartTime(int i)&lt;br /&gt;
	{&lt;br /&gt;
		for (int j = 0; j &amp;lt; MAX; j++)&lt;br /&gt;
		{&lt;br /&gt;
			if (matrix[i][j] == 1 &amp;amp;&amp;amp; tasks[j].startTime != -1)&lt;br /&gt;
			{&lt;br /&gt;
				for (int k = 0; k &amp;lt; MAX; k++)&lt;br /&gt;
				{&lt;br /&gt;
					if (matrix[j][k] == 1 &amp;amp;&amp;amp; tasks[k].startTime != -1)&lt;br /&gt;
					{&lt;br /&gt;
						tasks[j].startTime = Math.max(tasks[j].startTime, tasks[k].startTime + tasks[k].time);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				tasks[i].startTime = Math.max(tasks[i].startTime, tasks[j].startTime + tasks[j].time);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return tasks[i].startTime;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private static class Task&lt;br /&gt;
	{&lt;br /&gt;
		private int time;&lt;br /&gt;
		private int startTime;&lt;br /&gt;
&lt;br /&gt;
		public Task(int x)&lt;br /&gt;
		{&lt;br /&gt;
			time = x;&lt;br /&gt;
			startTime = 0;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class TaskSetTest&lt;br /&gt;
{&lt;br /&gt;
	public static void main(String[] args)&lt;br /&gt;
	{&lt;br /&gt;
		TaskSet tasks = new TaskSet();&lt;br /&gt;
&lt;br /&gt;
		tasks.addTask(8);&lt;br /&gt;
		tasks.addTask(2);&lt;br /&gt;
		tasks.addTask(5);&lt;br /&gt;
&lt;br /&gt;
		System.out.println(tasks.minCompletionTime());&lt;br /&gt;
		tasks.addTaskConstraint(0, 2);&lt;br /&gt;
		System.out.println(tasks.minCompletionTime());&lt;br /&gt;
		tasks.addTaskConstraint(0, 1);&lt;br /&gt;
		System.out.println(tasks.minCompletionTime());&lt;br /&gt;
&lt;br /&gt;
		System.out.println(tasks.getStartTime(0));&lt;br /&gt;
		System.out.println(tasks.getStartTime(1));&lt;br /&gt;
		System.out.println(tasks.getStartTime(2));&lt;br /&gt;
&lt;br /&gt;
		tasks.addTaskConstraint(1, 2);&lt;br /&gt;
		System.out.println(tasks.minCompletionTime());&lt;br /&gt;
		System.out.println(tasks.getStartTime(0));&lt;br /&gt;
		System.out.println(tasks.getStartTime(1));&lt;br /&gt;
		System.out.println(tasks.getStartTime(2));&lt;br /&gt;
&lt;br /&gt;
		tasks.addTaskConstraint(1, 0);&lt;br /&gt;
		System.out.println(tasks.minCompletionTime());&lt;br /&gt;
		System.out.println(tasks.getStartTime(0));&lt;br /&gt;
		System.out.println(tasks.getStartTime(1));&lt;br /&gt;
		System.out.println(tasks.getStartTime(2));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;</description>
      <guid isPermaLink="true">http://www.programmersheaven.com/mb/objects/415819/415819/java-nullpointerexception-when-running-the-program/</guid>
      <pubDate>Sat, 24 Apr 2010 12:45:09 -0700</pubDate>
      <category>Object Orientation</category>
    </item>
  </channel>
</rss>