Question about changing method signature

Hello. I've inherited some code which contains a method with the following signature:
foo(int x, MyObject myObject)
Okay, so that's not really the exact signature :) In any case, I need to modify the signature to:
foo(int x, Object myObject)
I believe that I can do this without affecting any existing client code because Obect is a superclass of MyObject. Is that right or must I deprecate the first version and add the second separately? Whatever, happens I can't break code which was compiled against the old version. Thanks in advance.
-jason

That's a good point. It's probably not an issue
however as we don't provide (supported) access to our
implementation classes. Thanks for the input.
-JasonThen I don't see another issue with it, as long as no other internally-written class has already overridden it and doesn't get changed at the same time. In a sense you're saying it's a "private" (not necessarily in the same sense of the private keyword) method, so you can change the implementation, including method signatures, at your whim.

Similar Messages

  • A question about a method with generic bounded type parameter

    Hello everybody,
    Sorry, if I ask a question which seems basic, but
    I'm new to generic types. My problem is about a method
    with a bounded type parameter. Consider the following
    situation:
    abstract class A{     }
    class B extends A{     }
    abstract class C
         public abstract <T extends A>  T  someMethod();
    public class Test extends C
         public <T extends A>  T  someMethod()
              return new B();
    }What I want to do inside the method someMethod in the class Test, is to
    return an instance of the class B.
    Normally, I'm supposed to be able to do that, because an instance of
    B is also an instance of A (because B extends A).
    However I cannot compile this program, and here is the error message:
    Test.java:16: incompatible types
    found   : B
    required: T
                    return new B();
                           ^
    1 errorany idea?
    many thanks,

    Hello again,
    First of all, thank you very much for all the answers. After I posted the comment, I worked on the program
    and I understood that in fact, as spoon_ says the only returned value can be null.
    I'm agree that I asked you a very strange (and a bit stupid) question. Actually, during recent months,
    I have been working with cryptography API Core in Java. I understood that there are classes and
    interfaces for defining keys and key factories specification, such as KeySpec (interface) and
    KeyFactorySpi (abstract class). I wanted to have some experience with these classes in order to
    understand them better. So I created a class implementing the interface KeySpec, following by a
    corresponding Key subclass (with some XOR algorithm that I defined myself) and everything was
    compiled (JDK 1.6) and worked perfectly. Except that, when I wanted to implement a factory spi
    for my classes, I saw for the first time this strange method header:
    protected abstract <T extends KeySpec> T engineGetKeySpec
    (Key key, Class<T> keySpec) throws InvalidKeySpecExceptionThat's why yesterday, I gave you a similar example with the classes A, B, ...
    in order to not to open a complicated security discussion but just to explain the ambiguous
    part for me, that is, the use of T generic parameter.
    The abstract class KeyFactorySpi was defined by Sun Microsystem, in order to give to security
    providers, the possibility to implement cryptography services and algorithms according to a given
    RFC (or whatever technical document). The methods in this class are invoked inside the
    KeyFactory class (If you have installed the JDK sources provided by Sun, You can
    verify this, by looking the source code of the KeyFactory class.) So here the T parameter is a
    key specification, that is, a class that implements the interface KeySpec and this class is often
    defined by the provider and not Sun.
    stefan.schulz wrote:
    >
    If you define the method to return some bound T that extends A, you cannot
    return a B, because T would be declared externally at invocation time.
    The definition of T as is does not make sense at all.>
    He is absolutely right about that, but the problem is, as I said, here we are
    talking about the implementation and not the invocation. The implementation is done
    by the provider whereas the invocation is done by Sun in the class KeyFactory.
    So there are completely separated.
    Therefore I wonder, how a provider can finally impelment this method??
    Besides, dannyyates wrote
    >
    Find whoever wrote the signature and shoot them. Then rewrite their code.
    Actually, before you shoot them, ask them what they were trying to achieve that
    is different from my first suggestion!
    >
    As I said, I didn't choose this method header and I'm completely agree
    with your suggestion, the following method header will do the job very well
    protected abstract KeySpec engineGetKeySpec (Key key, KeySpec key_spec)
    throws InvalidKeySpecException and personally I don't see any interest in using a generic bounded parameter T
    in this method header definition.
    Once agin, thanks a lot for the answers.

  • Question about changing a Snow Leopard Server network settings

    We have an Xserve running Mac OS X Server 10.6.8, the primary services running on it are afp, smb, dhcp, dns, jabber and the calendar sever.
    Right now we have a router connecting two networks together, 192.168.0.0/24 and 192.168.1.0/24. The Xserve has a static IP address in the 192.168.0.0/24 range.
    In order to combine two phone systems into one I am required to combine the above networks, this will involve removing the router and changing the subnet mask on every device from 255.255.255.0 to 255.255.254.0, any device that is currently part of the 192.168.1.0/24 network will also need to have it's router setting changed from 192.168.1.1 to 192.168.0.1. That part should all be easy.
    However, this is my first experience expanding a network past a standard class C and am wondering if there is anything I need to watch for on my Snow Leopard Sever.
    Specifically I wonder about dhcp settings, right now there are two dhcp servers, the Xserve which provides dhcp for 192.168.0.0/24 and the router that provides dhcp for 192.168.1.0/24. Once the router is removed the Xserve will need to provide dhcp for the entire network.
    Looking at the Xserve dhcp configuration right now I have one subnet defined providing addresses 192.168.0.5 to 192.168.0.125.
    Can I simply click the + to add another subnet and add for instance a range of 192.168.1.5 to 192.168.1.125?
    Will it simply give out all of the ip addresses in the first range and then start with the 2nd? Or do I need to find a single range of ip addresses large enough to meet my needs? (e.g. 192.168.1.5 to 192.168.1.225 or something).
    Is there anythign else to watch for after making this type of network setting change?
    Thanks in advance.

    Thank you for your very detailed reply.
    I understand the problems that can arise using 192.168.0.x and 192.168.1.x and if this were a new project I would definitely switch to something else, however in this case we have been using these ip ranges for years (they were in use here long before I started) and I don't want to have to redo all of my dns settings at the same time I make these other changes so I'm going to stick with the same ip's we are using at least for now. Anyone here needing vpn access has already dealt with this issue but we  have very few vpn users so it has not been a major problem for us to date.
    My biggest question is about increasing the size of the dhcp pool. For instance, after I change all the network settings and set up a /23 network is it possible to have a single dhcp pool that includes some ip's in the 192.168.0.x range and others in the 192.168.1.x range? I guess what I am asking is when I am in Server Admin and click on DHCP one of the tabs across the top is "Subnets". Right now there is a single "subnet" configured that provides addresses from 192.168.0.5 to 192.168.0.125.
    Ideally I would like one dhcp pool that provides ip's in the range of 192.168.0.5 to 192.168.0.125 and then if all of those are used up, moves to 192.168.1.5 to 192.168.1.125. Can I do that by simply adding another "Subnet"  so there are two? Or do I have to find one larger single range? (e.g. 192.168.1.5 to 192.168.1.225?) You may have already answered this indicating I have to have a single larger range but I just want to be sure.
    The parts about changing subnet masks, and routers and all that I think I have a pretty good understanding of.
    Your last paragraph is something I have been worried about, I do have a feeling that after making this change there will probably be unforseen issues that will need to be resolved, I'm just hoping it is not too many. For the scope of this thread I will just focus on issues that may arise with the Snow Leopard Server however.
    Again, thank you for your help.

  • Question about changing values of a total by selecting a check box.

    OK, so what I did was create a form for my workplace that totals the value an employee's quality of work. what i want this form to do is: In one cell the total is a 100 point value. In one column i have a markable checkbox and in the column next to that there is a point value for that particular category. what i want is to be able to check a box next to category and have the corresponding point value deducted from the "100" total. for example if I check the box next a value of 40, then the 100 becomes a 60 automatically. I am new to numbers, and any spreadsheet app for that matter so any help would be greatly appreciated.

    Tommyboy29 wrote:
    Another question about my last post: numbers will only let me add 2 to 3 cells in the formula to change the "total" number of 100. is there a way to add more then 3 cells? i have 9 cells total that i want to have the ability to subtract from that same total?
    There is no such limit in Numbers. I'm guessing that you ran out of room in the formula edit line in the Formula Bar.
    Grab the double line and pull it down to expand the edit area.
    Jerry

  • Changing method signature according to the new business logic

    Dear java community,
    Recently I'm confronted with one issue and I want to know your opinion about this.
    ISSUE DESCRIPTION:
    In one of my business tier class I had method register user:
    public RegistrationStatus registerUser(User user, RegistrationType type, boolean confirmationRequired) throws MyBusinessException;According to new business rules I need to add 2 arguments to this methods (boolean isCustomBank and String customBankName).
    All arguments in method are mandatory and I need them in registration process. It is also possible that in future it would be needed to pass more arguments to registerUser method (according to changes in business logic).
    POSSIBLE SOLUTIONS:
    A) Create userContext (as map) and collect there some arguments that needed in registration process (it would be used not only in this method, so it also would contain some other arguments not needed in registration). Signature of this method would look like this:
    public RegistrationStatus registerUser(User user, RegistrationType type, Map userContext) throws MyBusinessException;Invocation would look like this:
    Map userContext = new HashMap();
    userContext.put(UserCostants.CONFIRMATION_REQUIRED, form.isConfirmationRequired());
    userContext.put(UserCostants.CUSTOM_BANK, form.isCustomBank());
    userContext.put(UserCostants. CUSTOM_BANK_NAME, form.getCustomBankName);
    myRegistrationService.registerUser(form.getUser, form.getRegistrationType(), userContext);And UserCostants:
    public interface UserCostants {
       String CUSTOM_BANK = "customBank";     
       // other constants
    }B) Create userContext (as class � wrapper of map from previous solution) and collect there some arguments that needed in registration process (it would be used not only in this method, so it also would contain some other arguments not needed in registration). Signature of this method would look like this:
    public RegistrationStatus registerUser(User user, RegistrationType type, UserContext ctx) throws MyBusinessException;Wrapper class:
    public class UserContext {
       Map userContext = new HashMap();
       public Boolean isCustomBank() { return (Boolean) userContext.get("customBank"); }
       public void setCustomBank(Boolean customBank) { userContext.put("customBank", customBank);}
       // other get and set metods
    }C) Create value object UserRegistrationData that would hold data ONLY for user registration method. Example of the signature:
    public RegistrationStatus registerUser(User user, RegistrationType type, UserRegistrationData registrationData) throws MyBusinessException;And value object class:
    public class UserRegistrationData {
       public boolean customBank;
       public boolean confirmationRequired;
       public String customBankName;
       public boolean isCustomBank() { return this.customBank; }
       public void setCustomBank(boolean customBank) { this.customBank = customBank;}
       // other get and set metods
    }D) Just add new arguments to method's signature:
    public RegistrationStatus registerUser(User user, RegistrationType type, Boolean confirmationRequired,
                                           boolean isCustomBank, String customBankName) throws MyBusinessException;E) your solution....
    QUESTIONS:
    I don't tell you my opinion and pros and cons because I want to know your independent opinion.
    Which of these solutions are good and why do you think they are good?
    Which of these solutions are bad and why do you think they are bad?
    Thanks.

    Hi ,
    I thought of you overload that method and add into the Map.
    Its best solution, even we use the same scenario in my application.
    Thanks and Regards
    Maruthi.

  • Question about changes in currentRow

    Dear Community,
    In Creator 2004Q4 data tables you can use the "currentRow" in value binding expressions as currentRow['column']. Now with Creator 2, one must use currentRow.value['column']. I would like to know what else has changed about this. Can any of you explain or point me to the appropiate tutorial/article about the currentRow concept?
    Thank you in advance.
    Antonio.

    As far as I can recall, nothing besides the notation
    has changed. Under the covers, currentRow is a
    temporary request attribute used when iterating the
    rows of a table. As such, it can be used in binding
    expressions. We changed the notation when we
    introduced data providers. The new notation ensures
    when evaluating an expression that what you want is
    the value for the current row and the specified field
    key. (To get the value, the data provider's getValue
    method will be called.)Thank you for your answer. I have a more specific question:
    I'm using arrays of DTO (Data Transport Objects) with Tables. Everything wasf fine until I've had to deal with a DTO with a nested class, ie:
    public class MyHelperDTO {
      private String name;
      public String getName() {
        return name;
      public void setName(String name) {
        this.name = name;
    public class MyDTO {
      private Long id;
      public Long getId() {
        return id;
      public void setId(Long id) {
        this.id = id;
      private MyHelperDTO helpDTO;
      public MyHelperDTO getHelpDTO() {
        return this.helpDTO;
      public void setHelpDTO(MyHelperDTO helpDTO) {
         this.helpDTO = helpDTO;
    }It is possible to access the properties of the inner DTO from a currentRow, ie. currentRow.value['helpDTO'].value['name']? I've actually solved in another way, but I'm still curious about it.
    Thank you in advance.
    Antonio.

  • Question about changing ID3 images

    Hey everyone. I recently changed my podcast artwork. I use Powerpress, so changing the MAIN artwork was quite easy. So for this question, I am referencing only the individual art that is displayed with each individual episode.
    I know that for iTunes to recognize a change in episode artwork, that it cannot have the same name as the previous. The new artwork embedded does have a new name but is it the artwork that needs a different name, or the entire mp3 that needs a new name? Once artwork becomes embedded as ID3 I'm not sure if it loses its name altogether. So I need to know specifically what needs a new name for iTunes to update my episode art? Pic name or mp3 name?
    Thanks for your time!

    Thanks for the response Roger.
    So just to be clear, I have changed the images embedded in my MP3s. I then re-uploaded them to Libsyn using the replace function. So I now have MP3s with the exact same name as before, but with a new image embedded. Are you saying iTunes will see the image change in each episode even though the name of my MP3 is exactly the same?
    So far, iTunes has immediately updated my main podcast image but all my individual episodes still have the old image.
    You can probably see what I'm talking about by searching iTunes for Netflix Junkies. You'll see that 'episodes' has different artwork than 'podcasts' in the search results. Do I just need to wait it out? Or rename my mp3s?
    Keep in mind, there is another podcast with the same name no artwork. This is not my podcast but someone else's.
    Thanks again!

  • Question about changing a file type into another file type

    Hello. This isnt a java question but you guys have been so helpful in the past I hope its ok if I ask this question for a friend.
    How can I import a scriptware file into Screenwriter 2000, or change a .scw file into a .tag file?
    Anyone who can help thanks.

    I know nothing about scriptware or Screenwriter. But, my only advice is to see if Scriptware can export some other file type (not necessarily a .scw file) that Screenwriter can read. Sometimes, when I have two text editors whose native formats are incompatible (like opening a paper typed in a new version of Microsoft Word using an old version of WordPerfect or something), I save the file as an RTF file, rather than in the native format. Maybe something like that applies to your situation, too.
    Hope that helps.
    Jason

  • Question about functions methods and variables

    Sorry but i couldn't figure out a better title.
    When does a method alter the variables it gets directly and when does a method just alter a clone of the variables it gets?
    How about a funcion?
    for example:
    public void (int i)
    i = 4;
    sometimes this method alters the integer which was given to it directly and sometimes it automatically creates a clone of the integer and alters that one. I just can't figure out why a method would do the first or the second.
    Im trying to achieve the direct changeing of the given variable without creating an unessecary clone.
    Thank You

    Comp-Freak wrote:
    Sorry but i couldn't figure out a better title.
    When does a method alter the variables it gets directly and when does a method just alter a clone of the variables it gets?
    How about a funcion?
    for example:
    public void (int i)
    i = 4;
    sometimes this method alters the integer which was given to it directly and sometimes it automatically creates a clone of the integer and alters that one. I just can't figure out why a method would do the first or the second.
    Im trying to achieve the direct changeing of the given variable without creating an unessecary clone.
    Thank YouThats quite all right about the title, trust me we get much worse titles on this forum. Most of the time to the effect of "Plz urgentlly!!!!111one"
    In Java, all variables passed into methods are passed by value, which means that if I pass an int variable to a method, that methods argument will always be a seperate variable. There is no way to pass variables by reference so that you are altering the original variable you passed in.
    It actually works the same way for reference variables that point to a particular object.
    public Object o = new Object();
    methodOne(o);
    public void methodOne(Object oArg) {
      o == oArg;  //true
    }It is essentially the same in this case, there are two seperate reference variables here, o and oArg is created once the method is called. There is only one Object created however and both reference variables point to it, so an == check will verify this that it is true.

  • Question about static method hiding

    I undestand that a static method may only be hidden in a subclass not overridden. But, I don't understand why an exception type thrown by the subclass method must be a subtype of the exception type thrown by the superclass method. For example,
    public class A {
    public static void foo() throws ExceptionA { }
    public class B extends A {
    public static void foo() throws ExceptionB { }
    gives a compile-time error if ExceptionB is not a subclass of ExceptionA. This makes perfect sense in the non-static case but what does it matter here?
    Thanks,
    Tim

    I don't understand your point. In either case, static
    or non-static, ExceptionB must be the same or a
    subclass of ExceptionA. My question is why this
    matters in the static case.I think it's for binary compatibility, that is, so that you can make changes to Java source files and recompile only the changed files. If you originally did not have the static method in class B, and called B.foo() in another class, the A.foo() method would actually be called at run time. If you then change the B class and add a foo() method, it must be compatible so that the other class's method call is still valid.
    If you're unfamiliar with the concept of binary compatibility, read the chapter in the Java Language Specification. It's a critical but often overlooked aspect of the Java language.

  • Question about changing TimeCode of media clip

    Hello,
    The short I'm working on was shot in 35mm, 24fps. First of all, some info about the project:
    - One-light transfer to BetaSP PAL (the dailies were sped up by 4% to match PAL's framerate), with burned in TC and keycodes
    - Made a dupe of the dailies in DVCam PAL with slave codes so that the DVCam's address track matches the burned in TC
    - Captured each lab reel as one long media clip into FCP (8 reels in total)
    - Creat subclips for each scene and for sync'ing audio.
    Everything worked out fine except for 1 lab reel. During the DVCam dupe, the TC jumped by 1 frame half way into the reel. So in the last half of this reel, the address track is 1 frame off (comparing to the burned in TC). Luckily, the TC jump didn't occur during any important scene.
    Since making another DVCam dupe was not an option (long story about working in Asia), I thought of a way around this. I divided this reel into 2 sections at the point where the TC jump occured. I created an Auxiliary Code for the section with the 'bad' TC so that the Aux Code matches the burned in TC.
    Now the rough cut is done. I need to export an EDL to re-telecine the neg for full grading.
    My question: is it a bad idea to do an EDL with both regular TC and Aux Codes? Or should I just change the TC on the 'bad' reel ?
    Sorry for the length explanation. Thanks in advance.
    G5 2.3GHz Dual Core, 4.5GB RAM, 2 500GB drives   Mac OS X (10.4.4)   Powerbook G4 on OS 10.3.9
    G5 2.3GHz Dual Core, 4.5GB RAM, 2 500GB drives   Mac OS X (10.4.4)   Powerbook G4 on OS 10.3.9
    G5 2.3GHz Dual Core, 4.5GB RAM, 2 500GB drives   Mac OS X (10.4.4)   Powerbook G4 on OS 10.3.9

    You're probably fine using the Aux TC in your EDL.
    In that case, should I create Aux TC for the lab reels with the correct TC as well (with the Aux TC being the same as the address track? That way the EDL would only deal with just the Aux TC rather than a mixture of regular TC and Aux TC.
    you could make a new DVCam PAL from your
    captured footage (restoring the matching TC with the
    burned in TC) and then recapture the media you used
    from the fixed section.
    I don't have access to a deck that allows preset TC. Would it be the same if I just change the TC on the bad section? I know that typically it's not advisable to change TC in media clips. But in this case, it's just the dailies, not the final media.
    TD

  • Newbie question about abstract methods

    hey, I'm working on a web application that I was given and I'm a little confused about
    some of the code in some of the classes. These are some methods in this abstract class. I don't understand
    how this post method works if the method it's calling is declared abstract. Could someone please tell me how this works?
        public final Representation post(Representation entity, Variant variant) throws ResourceException {
            prePostAuthorization(entity);
            if (!authorizeGet()) {
                return doUnauthenticatedGet(variant);
            } else {
                return doAuthenticatedPost(entity, variant);
    protected abstract boolean authorizeGet();Thanks
    Edited by: saru88 on Aug 10, 2010 8:09 PM

    Abstract Methods specify the requirements, but to Implement the functionality later.
    So with abstract methods or classes it is possible to seperate the design from the implementation in a software project.
    Abstract methods are always used together with extended classes, so I am pretty sure that you are using another class.
    Btw: Please post the Code Keyword in these brackets:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

  • Basic Cryptography Question about Cryptograpic Methodes

    Hi
    I have some text data that i need to encrypt and save to a file (kind of a licence file). Than that file is distributed with the software. Upon runtime the software should be able to read in that crypted data file and decrypt it so it can read the information for use.
    I know how this is done using DES for example. But with DES i have to distribute the DES Key with the software, so everbody could use that key to create new encrypted data files.
    What i'm looking for is something like a key i can use to encrypt the data and another key that can only be used to decrypt the data but not for encrypting it, so i can destribute that key with the software with out the danger that anybody can use that key to create new data (licence) files.
    Is there a cryptography mehtode to do this? If yes, is that methode available in JCE?
    I'm a newbie to crypthography, i just read little about the basic concepts, so i'm very thankful about your help.

    I'm not sure whether i understand what you mean. I don't see a reason why i have to exchange any kind of data with the client.
    i thought i package the public key and the encrypted data file with the software i distribute. Than, upon runtime the software loads the public key (as a serialized object) and the encrypted data file and decryptes the data file.
    But this just fits my needs, if the public key may just be used to decrypt the crypted data file and not for encryption. I'm a little bit confused about this point, because i read a lot in the past hours about this topic and the statement was, that private keys are used to decrypt and public keys are used to encrypt. So what i need is the opposite. And i couldn't find such an algorithm until know.
    Maybe you can help me to see that a little bit clearer?
    Thanks a lot for your help!

  • Question about changing frame rate from PAL to NTSC

    Hi,
    Usually, I would use JES Deinterlacer for changing the 25 fps of PAL into 29.97 NTSC.
    Recently I've started shooting with Sony's EX-3, full HD (in PAL mode)
    If I'm using JES Deinterlacer, the resolution would drop from 1920x1080 to 720x480 (adding 2 black rectangles to keep the 16:9 ratio)
    With the 720x480 res I would need to choose 4:3 aspect in iDVD.
    I'm somewhat confused here...Can I keep the original resolution of 1920x1080 and just use another software for changing the frame rate...then burn it with iDVD in widescreen 16:9? Is there anything like JES for that? Or does NTSC DVD means always 720x480?
    Thanks a lot!
    ymotion

    You could try doing it in compressor>advanced format conversions. Personally I like taking it to a terranex, but I also have had GREAT success with Graeme Nattress's standards converter. You can google it, or search this forum for a link. It's cheap, only a hundred bucks or so.
    1. Convert the footage pal to ntsc, no frame size change
    2. Open compressor and select the appropriate setting for the length of your video. And also add the dolby audio setting. Don't forget the anamorphic settings noted above.
    3. I don't remember anything at all about idvd, haven't used it since DVDSP came out. DVDSP allows you a whole host of display parameters and infinite customization for your projects. It'll only take you a couple of hours to figure it out, and those are hours well spent.

  • Questions about changing the graphic card

    Greetings I need to change the graphic card that came with my computer Pavilion 500-308nrit's GeForce GTX 745 4Gb with GeForce GTX 960now i have couble questions the graghic card that i'm going to buy has a bigger cooling system so is't going to fit inside the case?the GTX 960 require a minimum power supply with 400W so is't gonna be a problem if i changed the power supply?. and is there is a specific power supply that will work better with my PC? and thank you

    Hi, The specifications for 500-308nr indicate an external 180 watt power supply supply. Is that true?  If the specifications are correct then you will not be able to install an internal power supply.

Maybe you are looking for

  • Text misaligns when a pdf preview is created

    Some headings on a page that appear correctly aligned on my monitor screen become misaligned when I make a preview pdf of a book. No matter what adjustments I make the text does not correct yet the opposite page with a similar layout is fine. The tex

  • Exasperated

    Well after being exasperated so much I finally left BT and went to another provider for an upgrade to FTTC broadband and telephone services. A final straw was the BT Usage system charging me extra for data that clearly I didn't use. In the last month

  • Service Module u2013 Data Ownership

    Hi Experts A company has got multiple business division. These divisions provide u201CServiceu201D to the products sold by their respective Department. Individual division donu2019t want the other department to see or view their work details as they

  • Can I Set Submix Label Color

    I would like to be able to set the label color as can be done with tracks, and clips.  At the moment, all the submix tracks are the default green. Is there a way to set the label color?  In the manual, there is only a mention that the submix tracks h

  • Photoshop CS3 Keeps Crashing

    My Photoshop CS3 keeps crashing within 5-10 minutes of opening. The error message says that an unexpected and unrecoverable problem has occured. Photoshop will now exit. Please help! I have tried to repair the disk through the utility on my Mac and h