Return-Path: X-Original-To: apmail-commons-issues-archive@minotaur.apache.org Delivered-To: apmail-commons-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 12F751121D for ; Sat, 26 Apr 2014 16:57:25 +0000 (UTC) Received: (qmail 68925 invoked by uid 500); 26 Apr 2014 16:57:20 -0000 Delivered-To: apmail-commons-issues-archive@commons.apache.org Received: (qmail 68768 invoked by uid 500); 26 Apr 2014 16:57:16 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 68725 invoked by uid 99); 26 Apr 2014 16:57:15 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 26 Apr 2014 16:57:15 +0000 Date: Sat, 26 Apr 2014 16:57:15 +0000 (UTC) From: "Luc Maisonobe (JIRA)" To: issues@commons.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Resolved] (MATH-1117) twod.PolygonsSet.getSize produces NullPointerException if BSPTree has no nodes MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/MATH-1117?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Luc Maisonobe resolved MATH-1117. --------------------------------- Resolution: Fixed Fix Version/s: 3.3 The two problems you report are completely different from each other. The first report is really a wrong API use. The call did not fulfill the constraints that were already given in the javadoc, i.e. that the provided tree MUST have proper Boolean attributes at leaf nodes. There is no verification here for performance reasons (it would imply walking the full trees all the time). I really don't think it would be a good idea to do such verifications. So I only improved the javadoc of the constructor to make it more clear this constructor is for expert use only (building a tree is difficult) and that there is no verifications, adding in the documentation that failing to provide appropriate arguments is the responsibility of users. In fact, general users should never use this specific constructor, but should rely on the other ones which are there precisely to avoid this kind of errors : the other constructors ensure the tree is correct before calling this constructor. The second one is a real problem, I have fixed it (see r1590251). Please reopen the issue if you do not agree with the fix for the first problem, as it is documentation only. > twod.PolygonsSet.getSize produces NullPointerException if BSPTree has no nodes > ------------------------------------------------------------------------------ > > Key: MATH-1117 > URL: https://issues.apache.org/jira/browse/MATH-1117 > Project: Commons Math > Issue Type: Bug > Affects Versions: 3.2 > Environment: Mac OS 10.9, Java 6, 7 > Reporter: Cyrille Artho > Fix For: 3.3 > > Attachments: Report3.java, Report3_1.java > > > org.apache.commons.math3.geometry.euclidean.twod.PolygonsSet.getSize() uses a tree internally: > final BSPTree tree = getTree(false); > However, if that tree contains no data, it seems that the reference returned is null, which causes a subsequent NullPointerException. > Probably an exception with a message ("tree has no data") would clarify that this is an API usage error. -- This message was sent by Atlassian JIRA (v6.2#6252)