• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Java Packages for Dummies
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Java Packages for Dummies


  • Subject: Re: Java Packages for Dummies
  • From: Chuck Hill <email@hidden>
  • Date: Tue, 4 Dec 2007 15:19:04 -0800


On Dec 4, 2007, at 3:09 PM, Owen McKerrow wrote:

Hi All,

As part of preparing to move to Eclipse we are going back and updating our projects so they are using packages ( this is the bit where I run and hide in shame as I have to admit we never used them before ) and EOGenerator if they weren't already. Anyways.....


We're having some issues, lots of issues so I think we've done something dumb.

Yes. :-P


The first issue is that addbjectToBothSidesOfRelationship is now causing a StackOverflow error as it keeps calling itself. In the example below its for the AuditLog class. First up is the old code, then the new code ( thanks to EOGenerator ) and then the error message (I haven't included all of the stack trace as its the same thing over and over again ).

So as a newbie to packages I can't see any rules that we're breaking ( although we probably are ). Any advise/suggestions/fixes would be most appreciated.

---Old----

import com.webobjects.foundation.*;
import com.webobjects.eocontrol.*;
import java.math.BigDecimal;
import java.util.*;

/**
	Log trail of each time a page is accessed/viewed on the website.
*/
public class AccessLog extends OMGenericRecord {

    public AccessLog() {
        super();
    }


public Person person() { return (Person)storedValueForKey("person"); }

    public void setPerson(Person value) {
        takeStoredValueForKey(value, "person");
    }



----New-----

package edu.uow.ris.framework.eo;

import edu.uow.ris.framework.*;
import edu.uow.emlab.omframework.*;
import com.webobjects.eoaccess.*;
import com.webobjects.eocontrol.*;
import com.webobjects.foundation.*;
import java.math.BigDecimal;
import java.util.*;
import org.apache.log4j.Logger;

public abstract class _AccessLog extends OMGenericRecord {
	private static Logger log = Logger.getLogger( _AccessLog.class );

    public _AccessLog() {
        super();
    }

public void setPerson(edu.uow.ris.framework.eo.Person aValue) {
if( aValue == null ) {
edu.uow.ris.framework.eo.Person object = person();
if( object != null )
removeObjectFromBothSidesOfRelationshipWithKey ( object, "person" );
} else
addObjectToBothSidesOfRelationshipWithKey( aValue, "person" );
}


This method should be exactly the same as the original method (other than the signature). Adding packages changes nothing. addObjectToBothSidesOfRelationshipWithKey will result in a call to setPerson. In your case, setPerson then calls addObjectToBothSidesOfRelationshipWithKey which calls setPerson, which calls addObjectToBothSidesOfRelationshipWithKey etc. etc.

    public void setPerson(edu.uow.ris.framework.eo.Person value) {
        takeStoredValueForKey(value, "person");
    }

Chuck --

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects






_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Java Packages for Dummies
      • From: "Pierce T. Wetter III" <email@hidden>
    • Re: Java Packages for Dummies
      • From: Owen McKerrow <email@hidden>
    • Re: Java Packages for Dummies
      • From: Art Isbell <email@hidden>
References: 
 >Java Packages for Dummies (From: Owen McKerrow <email@hidden>)

  • Prev by Date: Java Packages for Dummies
  • Next by Date: Re: Java Packages for Dummies
  • Previous by thread: Java Packages for Dummies
  • Next by thread: Re: Java Packages for Dummies
  • Index(es):
    • Date
    • Thread