How to create Helper class?

The code I am working on right now is related to get a Connection and it needs to support with and without app server.
For that purpose I have an interface
public interface ConnectionManager {
  public Connection getConnection() throws CannotGetConnectionException;
  public void closeConnection( Connection connection ) throws CannotCloseConnectionException;
}Then I have a "DriverManager" and a "DataSource" implementation of it:
public class DriverManagerConnectionManager implements ConnectionManager {...}
public class DatasourceConnectionManager implements ConnectionManager {...}Then I have a Factory class to give ConnectionManager
public final class ConnectionManagerFactory {
  public static final int DRIVERMANAGER = 1;
  public static final int DATASOURCE = 2;
  public static ConnectionManager getConnectionManager( int connectionManagerType ) {
    ConnectionManager connectionManager = null;
    switch ( connectionManagerType ) {
      case DRIVERMANAGER:
        connectionManager = new DriverManagerConnectionManager();
        break;
      case DATASOURCE:
        connectionManager = new DatasourceConnectionManager();
        break;
      default:
        connectionManager = null;
    return connectionManager;
  }So the steps for a unit-of-work (which are defined in Stateless Session Beans) are :
1) get ConnectionManager from ConnectionManagerFactory (the standalone web application will use DriverManager; others will use DataSource)
2) get Connection from ConnectionManager
3) complete your work with that Connection
4) close that Connection through ConnectionManager
I have tested it and it is working good. Now I am thinking that above Steps 1), 2) and 4) are common for all units-of-work. Right now I am repeating them in each of Stateless Session Beans. Is there any better way to handle it ? What is a purpose of Helper class?
Thanks

(damn it... finish a thought....)
Anyway, the point is you still have to get the
ConnectionManager, call getConnection and call
closeConnection in your class. You can't encapsulate
everything into 1 method call all the time.what if i create a class :
public class ConnectionHelper {
  ConnectionManager connectionManager = null;
  public static Connection getConnection(int connectionManagerType) throws CannotGetConnectionException {
    connectionManager = ConnectionManagerFactory.getConnectionManager( connectionManagerType);
    if (connectionManager == null)
      throw new CannotGetConnectionException("Failed to establish Connection Manager");
    else
      return connectionManager.getConnection();
  public static void closeConnection() throws CannotCloseConnectionException {
    if (connectionManager == null)
      throw new CannotCloseConnectionException("Connection Manager is not established");
    else
      connectionManager.closeConnection();
}Then in my SSB code for example :
ConnectionHelper ch = new ConnectionHelper();
boolean getConnection = false;
try {
  ch.getConnection();
  getConnection = true;
} catch(CannotGetConnectionException cgce){
} finally {
  if (getConnection) {
    try {
      ch.closeConnection();
    } catch(CannotCloseConnectionException ccce) {
}Does it make sense?

Similar Messages

  • How to create a class pool

    Hi how to create a class pool when i tried to create it has shown the following error
    <b>Unable to change program from or to type K
    Message no. DS165
    Diagnosis
    You tried to assign a type to a program that cannot be assigned in the program attributes, but can only be set internally by one of the tools in the ABAP Workbench.
    The following program types are reserved:
    F Reserved for Function Groups
    Function groups are adminstered by the Function Builder, and you can only create or delete them using the Function Builder or the Object Navigator (Transaction SE80).
    K Reserved for Class Defintions
    Class definitions are administered in the Class Builder. You can only create or delete them using the Clas Builder or the Object Navigator.
    J Reserved for Interface Definitions
    Interface definitions are administered in the Clas Builder. You can only create or delete them using the class Builder or the Object Navigator.</b>

    Hi,
    Though you get a popup for different options for different program types like Class pools, function groups etc in SE 38 Program attributes, you can't create them from Se38 transaction.
    They have to be created from different places.
    Class Pools are nothing but creating CLASSes and INTERFACEs using the T Code SE24.
    This needs little Java/OOPs concepts to create and use them.
    Hope this helps.
    Regards,
    Anji

  • How to create development class (package)

    Hi
    Can anybody help me out in creating development class (package) to store ABAP programs.
    Thanks in advance
    Raghav

    Hi
    go with abap dictionary->select database table->provide the table for dev classs eg. V_TDEVC-> go for display option-> select utilities->select contents option-> select create dev class,
    provide the name and short text,software component->create req.no.
    with this dev class will be created
    or
    Use the transaction SE80.
    1. Select "Package" from the list box.
    2. Enter "ZEST" in the below text box
    3. Press "Enter".
    4. It will ask you whether to create.
    5. Sy "Yes".
    6. Give Short Description
    7. Click Save button.
    check this
    How to create development class
    If u find it useful plz reward the points
    charitha
    Message was edited by:
            charitha kolla

  • How to create a class using java script..

    Hi all,
    Iam new to java script and I tried out the following program but its not working..I basically created a class just like a java prog' but Iam not getting any output or error.Iam attaching the code below.
    If I created one function inside the script and create one object its working fine but what should I do when I have a lot of function??so I created a class and put all the function and created an object but its not working..
    Do let me know what changes should I do..Iam attaching the code which I had written. or give me an example of how to create a class with couple of functions using JAVASCRIPT
    Thanks
    Avis_su
    <html>
    <head><title>JSP Page</title></head>
    <body>
    <SCRIPT language = "JavaScript">
    <!--
    //Created classes
    class book
    var title: String;
    var author:String;
    function author()
    doucument.write("Author is " +this.author);
    function tile()
    doucument.write("Title is " +this.title);
    function printall()
    var counter = 0;
    function author();
    function title();
    var chapters = Array[String];
    for(chapter in this chapters)
    counter++;
    document.write("Chapter" counter" :"+this.chapters[chapter]+"<br>");
    var thisbook = new book()
    thisbook.author = "Sivagami";
    thisbook.title = "MS in CS giude";
    thisbook.chapters = new Array[10];
    thisbook[0] = "Prepare to Excell in all ";
    thisbook[1] = "Learn to be happy";
    thisbook[2] = "Learn to be healthy mentally emotionally physically";
    thisbook[3] = "Siva and Subbu along with kidssssss will be successful in future";
    thisbook.printall();
    //-->
    </script>
    </body>
    </html>

    Run this program to get your answer:
    public class AnswerToYourPost {
    public static void main(String args[]) {
    System.out.println("TRUE/FALSE: This question
    ion belongs on a Java forum.\n"
    + "ANSWER: " + ("Javascript" == "Java"));
    }Since when do we compare objects for equality using operator == ?

  • How to create help view

    hai,
    how to create help view

    Views
    Importance/Use of Views
    Data for an application object is often distributed on several database tables. Database systems therefore provide you with a way of defining application-specific views on the data contained in several tables. These are called views.
    Data from several tables can be combined in a meaningful way using a view (join). You can also hide information that is of no interest to you (projection) or only display those data records that satisfy certain conditions (selection).
    A view is a logical view on one or more tables, that is, a view is not actually physically stored, instead being derived from one or more other tables.
    The data of a view can be displayed exactly like the data of a table in the extended table maintenance.
    Join, Projection and Selection
    CROSS PRODUCT
    Given two tables TABA and TABB. Table TABA has 2 entries and table TABB has 4 entries
    Each record of TABA is first combined with each record of TABB. If a join condition is not defined, the cross product of tables TABA and TABB is displayed with the view.
    Join condition
    A join condition describes how the records of the two tables are connected.
    Inner Join and Outer Join
    The data that can be selected with a view depends primarily on whether the view implements an inner join or an outer join.
    With an inner join, you only get the records of the cross-product for which there is an entry in all tables used in the view.
    With an outer join, records are also selected for which there is no entry in some of the tables used in the view. (ABAP allows left outer join.)
    The data that can be selected with a view depends primarily on whether the view implements an inner join or an outer join.
    Projection
    Sometimes some of the fields of the tables involved in a view are not of interest. The set of fields used in the view can be defined explicitly (projection). In our example, Field 4 is of no interest and can be hidden.
    We specify the fields which we need to show in our view by including them under the view flds tab when creating a view in the dictionary.
    +Selection Conditions+
    Selection conditions that are used as a filter can be defined for a view.
    Specifying these conditions under the Selection conditions tab when creating a view in the dictionary would have an effect which is similar to specifying a where clause when writing a select query to restrict data.
    View Types
    Four different view types are supported. These differ in the way in which the view is implemented and in the methods permitted for accessing the view data .
    Database views are implemented with an equivalent view on the database.
    Projection views are used to hide fields of a table (only projection).
    Help views can be used as selection method in Search help.
    Maintenance views permit you to maintain the data distributed on several tables for one application object at one time.
    Database Views
    Database views should be created if want to select logically connected data from different tables simultaneously.
    Database views implement an inner join.
    Application programs can access the data of a database view using the database interface. (Just as we write select queries on database tables, we can write them for views as well.)
    Includes in Database Views
    An entire table can be included in a database view. In this case all the fields of the included table will become fields of the view (whereby you can explicitly exclude certain fields).
    To include one of the tables in the view, enter character * in field View field, the name of the table to be included in field Table and character * again in field Field name on the View fields tab page of the maintenance screen of the view.
    You can also exclude individual fields of an included table. If you do not want to include a field of the included table in the view, enter - in field View field, the name of the included table in field Table and the name of the field to be excluded in field Field name.
    Inserts with Database Views
    If a database view contains only one single table, data can be inserted in this table with the view .
    You have the following options for the contents of the table fields not contained in the view:
    If the field is defined on the database with NOT NULL as initial value, the field is filled with the corresponding initial value.
    If the field is defined on the database as NOT NULL without initial value, an insert is not possible. This results in a database error.
    If the field is not defined on the database as NOT NULL, there will be a NULL value in this field.
    Projection Views
    Projection views are used to hide fields of a table. This can minimize interfaces; for example when you access the database, you only read and write the field contents actually needed
    For the above diagram, fields F3 and F4 are irrelevant, and therefore hidden from the projection view of the table.
    Maintenance Views
    A maintenance view permits you to maintain the data of an application object together.
    The maintenance status determines which accesses to the data of the underlying tables are possible with the maintenance view.
    Maintenance Status
    The maintenance status of a view controls whether data records can also be changed or inserted in the tables contained in the view.
    The maintenance status can be defined as follows:
    Read only: Data can only be read through the view.
    Read, change, delete, insert: Data of the tables contained in the view can be
    changed, deleted, and inserted through the view.
    Read and change: Existing view entries can be changed. However, records
    cannot be deleted or inserted.
    Read and change (time-dependent views): Only entries whose non-time
    dependent part of the key is the same as that of existing entries may be
    inserted.
    Help Views
    Help view is created if a view with outer join is needed as selection method of a search help.
    Help views are used exclusively for search helps.
    A conventional database view selects data from the database using an inner join.
    For a help view however, data is selected using a left outer join.
    Eg-> Suppose table SCARR (Airline master table) has AA – American airlines
    AB – Air Berlin
    AC- Air Canada as three entries.
    Table SPFLI (Flight schedule) has entries corresponding only to airlines AA (American airlines) and AB (Air Berlin).
    Now if a database view were to be used as a selection method for a search help for airlines, we would only get AA and AB as possible entries because the database view implements an inner join…….If however, we were to use a help view as the selection method here, we would get AA,AB and AC as possible entries because a help view would implement a left outer join.
    Restrictions for Maintenance and Help Views
    There are some restrictions for selecting the secondary tables of a maintenance view or help view. The secondary tables have to be in an N:1 dependency to the primary table or directly preceding secondary table. This ensures that there is at most one dependent record in each of the secondary tables for a data record in the primary table.
    Append Views
    Append views are used for enhancements of database views of the SAP standard.
    With an append view, fields of the base tables of the view can be included in the view without modifications. This is analogous to enhancing a table with an append structure.
    An append view is assigned to exactly one database view. More than one append view can be created for a database view.
    The append technique described can only be used for database views. With an append view, only new fields from the base tables contained in the view can be inserted in the view. You cannot insert new tables in the view or modify the join conditions or selection conditions of the view.
    Check out the below related threads
    Views
    views

  • How to create help for java application

    Thanks very much for any suggestions how to create help file for java application

    how to set up the environment variable JAVAHELP_HOME

  • How to create Help views

    How to create Help views in sap

    Hey good day,
    Refer to the following links, it will help you.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/cf/21ed13446011d189700000e8322d00/content.htm
    Help View ?
    Regards and Best wishes.

  • How to create static class in Netbeans ?

    I want to create a static class in netbeans.
    But it gives error like : static modifier not allowed here. as far as java prog concern it is syntactically correct.
    for eg.
    public static class Emp
    -------body & methods
    it looks correct syntactically, but gives error in netbeans, static modifier not allowed here. Why ? How to create static class in netbeans ?

    DrClap wrote:
    I have occasionally seen the name "static class" used to denote a class whose members are all static.I think this is quite common.
    But taking the name literally and trying to declare a class "static" is a little naive."naive" or being used to doing that in C#.

  • How to create 3 Classes from one

    Hello,
    I have one Databeseconnection class. But I would like creating 3 classes so that I have one connection class, one insert class and one select class.
    How Can I do It? Could you help me, please?
    package Test; import java.util.*; import java.sql.*; public class JavaDBTest { public static void main(String[] args){ Connection dbconn = null; Statement stmt=null; String mysqlHost = "localhost"; String mysqlDB = "dbname"; String mysqlUser = "root"; String mysqlPass = ""; int id=0; //open connection try { if(dbconn == null || dbconn.isClosed()) { // Load the JDBC driver. Class.forName("com.mysql.jdbc.Driver"); DriverManager.setLoginTimeout(10); // Establish the connection to the database. dbconn = DriverManager.getConnection("jdbc:mysql://" + mysqlHost + "/" + mysqlDB, mysqlUser, mysqlPass); stmt = dbconn.createStatement(); } } catch (Exception e) { System.out.println(e); } //Statements try { stmt.executeUpdate("INSERT INTO tabelename (RFID_Tagid,pub_type_id,Owner_id,Standort_id,user_id,year,actualyear,title,bibtex_id,report_type,survey,mark,series,volume,publisher,location,issn,isbn,firstpage,lastpage,journal,booktitle,number,institution,address,chapter,edition,howpublished,month,organization,school,note,abstract,url,doi,crossref,namekey,userfields,specialchars,cleanjournal,cleantitle,cleanauthor,read_access_level,edit_access_level,derived_read_access_level,derived_edit_access_level,pages,Signatur,roles_ids,entleihbarFuer,vormerkbarFuer,SichtbarFuer) VALUES (1,2,3,4,5,1998,2010,'ichbin titel','1','r',3,2,'s','volume','publis','location','issn','isbn','firstpage','lastpage','journal','booktitle','number','institution','address','chapter','edition','howpublished','month','organisation','school','note','abstract','url','doi','crossref','namekey','userfields',true,'cleanjournal','cleantitle','cleanautor',1,3,4,5,'pages','signatur','roles-ids','entleihbar','vorm','sichtb');"); ResultSet rs = stmt.executeQuery("SELECT LAST_INSERT_ID();"); rs.next(); id = rs.getInt(1); } catch (Exception e) { System.out.println(e); } System.out.println(id+""); try { ResultSet rs = stmt.executeQuery("SELECT * FROM tablename;"); while(rs.next()) { System.out.println(Integer.valueOf(rs.getString(1))); System.out.println(rs.getString(2)); System.out.println(rs.getString(3)); } } catch (Exception e) { System.out.println(e); } //close connection try { dbconn.close(); dbconn = null; } catch (Exception e) { System.out.println(e); } } }

    suneclipse wrote:
    Could you please write in java code?no doubt. So can anyone with a grain of common sense.
    That's not to say we're going to do your work for you.

  • Implementing  Note 836401.  How to create message class 'Z'?

    Hello Experts,
    I'm trying to  implement SAP Note 836401 -" FBCJ: Receipt print with display not allowed " In SAP ERP 6.0.    Could somebody help me please with action in this note:
    "You must then adjust the error class 'Z' to your error class and replace the error number '000' with the error number of the message you created." I have some misunderstanding - What I must to do here? In SE91 i can't  find message class 'Z' and I can't to create it there, because of the rule:    name of message class   must minimum 2 characters.
    In  correction of object :"R3TR REPS MFCJ0F01" of this note, in source code I'm facing  strings:
         ID 'BEGRU' FIELD ls_tcj_c_journals-begru.
        CHECK sy-subrc NE 0.
        AUTHORITY-CHECK OBJECT 'F_FBCJ'
          ID 'ACTVT' FIELD '32'                      "Save
          ID 'BEGRU' FIELD ls_tcj_c_journals-begru.
        CHECK sy-subrc NE 0.
        ld_no_auth = 'X'.                            "no authorization
         MESSAGE ID 'Z' TYPE 'I' NUMBER 000.
    *   Sie haben keine Berechtigung, Quittungen zu drucken.
      ENDIF.                                         "begru initial?
    ENDFORM.  
    How to create the error class'Z'?
    How to adjust error class 'Z' to my error class?
    Best regards,
    Pavel Bogomolov.

    Hello Pavel
    The SAP note says that you should look for an appropriate Z-message class having a message (i.e. number) with the required text.
    Alternatively, you may use the following approach:
        CHECK sy-subrc NE 0.
        ld_no_auth = 'X'.                            "no authorization
         MESSAGE ID '00' TYPE 'I' NUMBER 208 WITH 'Sie haben keine Berechtigung, Quittungen zu drucken'.
    "     MESSAGE ID 'Z' TYPE 'I' NUMBER 000.
    "*   Sie haben keine Berechtigung, Quittungen zu drucken.
      ENDIF.                                         "begru initial?
    ENDFORM.  
    Regards
      Uwe

  • How to create Development Class in SAP R/3 4.7c and Netweaver?

    I follow some old notes on ABAP Development Class but I could not create a new Development Class. i.e. Stuck in creatinf a type group.  Please give some details on how to create a development class.  Thanks.
    see the following stepa:
    (A) Procedure for creating  a type group:
    /nse80
    1. Object Navigator> select Development class>(Enter your development class
       yFTGxxDEV
    2. Double click on development class object types.
    3. Type Group: zPTAxx1.
    4. Click on the Create button at the bottom (4th one from the left).
    5. Enter short text: zPTAxx1 type group.
    6. Save>Enter your development class> click on diskette button to save the type group
    7. Select Source Code tab and enter the following:
    "An example type-pool statement containing types and constants
    type-pool zxx1.  "zxx1 is a type pool. It is also known as a type group
    types: zxx1_dollars(16)    type p decimals 2,
                 zxx1_lira(16)          type p decimals 0.
    constants:
           zxx1_warning_threshold type i value 5000,
           zxx1_amalgamation_date like sy-datum value '19970305'.
    8. Select  Type Group from menubar
               a) Check
               b) Save
               c) Activate
    9. Click the back button or F3 to exit.
    10, Show  your type group to your teacher.
    11. Go to ABAP editor and enter the following program:
    "Calculations on date
    report zxx_0914.
    type-pools zxx1.                   "contains zxx1_amalgamation_date
    data:    d1              like sy-datum,
                d2              like d1,
                num_days type p.
    d1  = d2 = sy-datum.
    subtract 1 from d1.
    write / d1.                              "yesterday's date
    d2+06 = '01'                         " first day of current months
    subtract 1 from d2.
    write / d2.                           " last day of previous month
    num_days = sy-datum - zxx1_amalgamation_date.
    write / num_days.                " number of days since amalgamation
    11. Double click zxx1 from the type-pool statement to see the type group.
    12. Follow lab1 procedure and run your program
    (B) Run an ABAP program using field symbol ( i.e. pointer)
    report zxx_lab6.
    data  f1(3)  value   'ABC'.          "Step 1 Define a variable
    field-symbols <f>.                     "Step 2 Define a pointer variable ( it only stores address)
    assign f1 to <f>.                        "Step3 Initialize the pointer variable with an address
    write <f>.                                    "Step4 Now you can use <f> in place of f1
    write / f1.                                      " (same as write f1 )  
    <f> = 'xyz'.                                   " Assign a new value to f1
    write <f>.
    write / f1.

    This is not the way to create a new development class.
    Follow this steps to create a development class:
    http://sap.mis.cmich.edu/abap4/knowbase/Create-Dev-Class.pdf
    Regards,
    Naimesh Patel

  • How to create package class ..

    Dear firend,
    I have created the packge file under /home/in/package/Time1.java
    Time1.java:
    package in.package;
    public class Time1 {
    public static String name="Package Testing";
    public void assign_name(String val) {
    name=val;
    public String get_name() {
    return name;
    public static void main(String args[]) {
    Time1 obj=new Time1();
    obj.assign_name("Testing");
    System.out.println(obj.get_name());
    Then I have tried to access this package file from home directory.
    package_test.java
    import co.in.bksys.packaging.Time1;
    *public class package_test {*
    * public static void main(String args[]) {*
    //in.package.Time1 time_test=new in.package.Time1();
    Time1 time_test=new Time1();
    * time_test.assign_name("Leslie Samuel");*
    * String my_name=time_test.get_name();*
    * System.out.println(my_name);*
    I have compiled this file from the home direcory.
    *$ javac -classpath in/package/ package_test.java*
    It was displayed this below error:
    =========================
    * package_test.java:1: package in.package does not exist*
    import in.package.Time1;
    * ^*
    package_test.java:8: cannot access Time1
    bad class file: in/package/Time1.java
    file does not contain class Time1
    Please remove or make sure it appears in the correct subdirectory of the classpath.
    * Time1 time_test=new Time1();*
    * ^*
    *2 errors*
    but if i used this below line in the package_test.java file insted of using this Time1 time_test=new Time1(); .
    It will work perfectly.
    in.package.Time1 time_test=new in.package.Time1();
    I know that its expecting some format of class file like , in.package.Time1.class inside the in/package/ directory.
    It wasn't there so displayed this error.
    How to create this knid of class file to appropriate directory ?
    How to make my program execute without giving full package name like , in.package.Time1 time_test=new in.package.Time1();  ?
    Thank you.

    Package is a reserved word in Java. Name your package something else.
    - Saish

  • How to create a class like System.out.print

    Hi,
    I need to create a class like System.out.print
    Say for ex: i have a class A ..
    I need to call it A.b.c
    cis the method..
    could you tell me, how can i do this..
    AMJ

    class A{
    public static final B b=new B();
    class B{
    public String getXXX(){
    return "Callled getXXX()";
    public class C{
    public static void main(String[] args)
    System.out.println(A.b.getXXX());
    }

  • How to create proxy class for a Siebel WS which has many Workflows in it?

    Hi,
    I am facing a strange problem. I have a Web Service for which there are many workflows associated with this. When I generate WSDL for this Web Service and later on generate proxy class in .NET, it creates mutilple classes for each workflow. From UI, I can invoke a perticular method for the class for which I am interested in. But when I am building the same in JDeveloper, using Web Service proxy, I get only one class and I am not interested in invoking method in this class but interested in some other class for which the proxy was not generated. Is there some way to generate multiple classes in JDeveloper proxy?
    Thanks,
    Sudha.

    I have figured this out. Actually Generate proxy creates package and it includes all the class in it. Now i am able to invoke web service method call.

  • How to create Valuation class

    Hi,
    Please let me what is the transaction code for creating valuation class.
    thanks,
    Hemant Kumar

    hi
    Valuation class it is used in FI and MM integration. It determines the g/l accounts to be posted automatically (Ex Raw materail or Finised goods).
    In material master we specify valuation class:
    - for valuation class, we assign g/l accounts based on nature of transaction,
    - at the time of goods receipt/ issue, stores person enters movement type, 
    - our a/c's will be updated automatically based on account assignment to valuation class which is specified in material master.
    Define new valuation class - T.code : OMSK
    Valuation Class for Material Group
    In 4.6x and 4.5b, you can assign valuation class to Material Group. 
    It is useful in the sense that user do not have to manually do an Account Assignments. 
    For stock items, valuation class cannot be changed whenever the stock on hand is not zero. 
    Valuation class are tied to a G/L account. 
    nagesh

Maybe you are looking for

  • Cannot update to Camera RAW 8.1

    Hi, I use Photoshop CC and when I check the RAW plugin it's on 8.0. I have Bridge CS6 which allows to update Photoshop CS6 only with ACR 8.1. I've also downloaded the file manually and when I install it, it will not update the ACR of Photoshop CC to

  • Preview always "thinks" it is opening for the first time...

    When opening images in Preview, it always says that "Open this document will open the application 'Preview' for the first time" - no matter how many times you open/close Preview, restart, trash preferences, etc. Where does OS X keep track of this set

  • Same Frame...Not (Hyperlinking)

    I have RoboHelp installed on my laptop, where I'm working on my project. In one Topic I have references to external links, with the choice to open the resulting link in the same frame (Hyperlink Options-Display In Frame=Same Frame). When I test it on

  • Corrupt iPod can not restore

    For some reason my 5th Gen iPod has become corrupt. When connected to iTunes I get a message to restore it which I have done several times. Is there a file on my Mac that is also corrupt causing the iPod to be restored which continues to corrupt it?

  • Why not turn off restore windows?

    I really don't like the restore windows feature.  I want my computer to only open to the desktop. But one site I saw disabling it is "overkill" and suggests downloading a third party app that lets you at least select which app windows to open or not.