Return-Path: Delivered-To: apmail-db-jdo-dev-archive@www.apache.org Received: (qmail 31155 invoked from network); 15 Aug 2008 19:02:07 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Aug 2008 19:02:07 -0000 Received: (qmail 34170 invoked by uid 500); 15 Aug 2008 19:02:05 -0000 Mailing-List: contact jdo-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jdo-dev@db.apache.org Delivered-To: mailing list jdo-dev@db.apache.org Received: (qmail 34159 invoked by uid 99); 15 Aug 2008 19:02:05 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Aug 2008 12:02:05 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Aug 2008 19:01:17 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 62708234C1B6 for ; Fri, 15 Aug 2008 12:01:46 -0700 (PDT) Message-ID: <933658589.1218826906402.JavaMail.jira@brutus> Date: Fri, 15 Aug 2008 12:01:46 -0700 (PDT) From: "Andy Jefferson (JIRA)" To: jdo-dev@db.apache.org Subject: [jira] Commented: (JDO-597) PMF : Add "readOnly" setting for better handling of read-only datastores In-Reply-To: <538070360.1214205765039.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/JDO-597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12622979#action_12622979 ] Andy Jefferson commented on JDO-597: ------------------------------------ The log entry "2) Id "org.apache.jdo.tck.pc.company.Company$Oid: 1" has not determined to the class" suggests that the OID class (passed in to pm.getObjectById) is not known about, and indeed it is a custom PK class and "Company" has not been mentioned during that PMF2's existence, so no metadata is loaded at that point. Consequently DataNucleus has no way of knowing what (persistable) class this PK class refers to and so cannot find the object. Perhaps if you did a pm.getExtent(Company.class) first (to give the implementation knowledge and hence load the metadata) then it would get the object from the id > PMF : Add "readOnly" setting for better handling of read-only datastores > ------------------------------------------------------------------------ > > Key: JDO-597 > URL: https://issues.apache.org/jira/browse/JDO-597 > Project: JDO > Issue Type: New Feature > Components: api2, api2-legacy, specification > Reporter: Andy Jefferson > Assignee: Andy Jefferson > Fix For: JDO 2 maintenance release 2 > > Attachments: JDOReadOnlyException.patch > > > A user has a datastore that is outside their control and they either don't have permission to write to it, or maybe they have permissions but don't want to write to it. They want a better way of handling this, preventing updates to the datastore. > Propose :- > PMF property (with setter/getter) > javax.jdo.option.ReadOnly - values true | false > JDOReadOnlyException extends JDOUserException > Behaviour :- > When readOnly is set to true :- > Any operation resulting in a creation/modification of an object to be sent to the datastore should throw a JDOReadOnlyException. This may be at commit(), flush(), or alternatively at makePersistent() when using datastore txns, or query.deletePersistentAll(). That is, no change should be made to the datastore contents at all. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.