Urgent Help: Test Zip Archive

Hi everybody, I'd like to know if there's a safe way to check if a compressed file (zip file) is a valid archive or not.
Sometimes WinZip tool says that the archive is not valid, there's a way to have the same answer by java code?
Can java makes the same valid archive test as WinZip tool?
Anybody has some code examples?
Thanks a lot!!!

java.util.zip.ZipFile's constructor should throw a ZipException if the zip is not valid. I dont know whether the checks are exactly the same as winzip.

Similar Messages

  • Need help in creating a Zip archive through Java

    I need some files existing a folder.
    When I use ZipOutputStream to zip the files, do I need to give the entire path to each of the files to add the file to the zip archive?
    For example here is the folder structure.
    C:
    ->Folder1
    ---->Folder2
    ------>File1
    ------>File2
    ---->File3
    ---->File4
    Here should I pass the entire path of Each file to the ZipOutputStream?
    Can any one please give me an example of creating a zip archive of the above file structure.
    Thanks,
    Ramesh

    Hi,
    I atleast need the following:
    I want to add a file "pres.txt" to an existing zip archive "test..zip". This file "pres.txt" already exists in the zip archive, but is a modified one.
    Can any one please help.
    Thanks,
    Ramesh

  • I have an iPhone 5S and I can't open photos that are emailed to me. It just says zip archive when I click on the jpg. Help?

    I Have an iPhone 5S and I can't open photos that emailed to me. It just says Zip archive when I click on the JPG file to download it.  Help?

    whoever is emailing you the photos is sending them as a .zip file not a .jpg most likely because there is more than one photo. unfortunately iPhone does not have a .zip file reader so whoever is emailing the photos has to make sure they are not zip ing them and resend them as .jpg files. (usually gmail tries to convert several images into .zip files)

  • Windows Explorer misreads large-file .zip archives

       I just spent about 90 minutes trying to report this problem through
    the normal support channels with no useful result, so, in desperation,
    I'm trying here, in the hope that someone can direct this report to some
    useful place.
       There appears to be a bug in the .zip archive reader used by Windows
    Explorer in Windows 7 (and up, most likely).
       An Info-ZIP Zip user recently reported a problem with an archive
    created using our Zip program.  The archive was valid, but it contained
    a file which was larger than 4GiB.  The complaint was that Windows
    Explorer displayed (and, apparently believed) an absurdly large size
    value for this large-file archive member.  We have since reproduced the
    problem.
       The original .zip archive format includes uncompressed and compressed
    sizes for archive members (files), and these sizes were stored in 32-bit
    fields.  This caused problems for files which are larger than 4GiB (or,
    on some system types, where signed size values were used, 2GiB).  The
    solution to this fundamental limitation was to extend the .zip archive
    format to allow storage of 64-bit member sizes, when necessary.  (PKWARE
    identifies this format extension as "Zip64".)
       The .zip archive format includes a mechanism, the "Extra Field", for
    storing various kinds of metadata which had no place in the normal
    archive file headers.  Examples include OS-specific file-attribute data,
    such as Finder info and extended attributes for Apple Macintosh; record
    format, record size, and record type data for VMS/OpenVMS; universal
    file times and/or UID/GID for UNIX(-like) systems; and so on.  The Extra
    Field is where the 64-bit member sizes are stored, when the fixed 32-bit
    size fields are too small.
       An Extra Field has a structure which allows multiple types of extra
    data to be included.  It comprises one or more "Extra Blocks", each of
    which has the following structure:
           Size (bytes) | Description
          --------------+------------
                2       | Type code
                2       | Number of data bytes to follow
            (variable)  | Extra block data
       The problem with the .zip archive reader used by Windows Explorer is
    that it appears to expect the Extra Block which includes the 64-bit
    member sizes (type code = 0x0001) to be the first (or only) Extra Block
    in the Extra Field.  If some other Extra Block appears at the start of
    the Extra Field, then its (non-size) data are being incorrectly
    interpreted as the 64-bit sizes, while the actual 64-bit size data,
    further along in the Extra Field, are ignored.
       Perhaps the .zip archive _writer_ used by Windows Explorer always
    places the Extra Block with the 64-bit sizes in this special location,
    but the .zip specification does not demand any particular order or
    placement of Extra Blocks in the Extra Field, and other programs
    (Info-ZIP Zip, for example) should not be expected to abide by this
    artificial restriction.  For details, see section "4.5 Extensible data
    fields" in the PKWARE APPNOTE:
          http://www.pkware.com/documents/casestudies/APPNOTE.TXT
       A .zip archive reader is expected to consider the Extra Block type
    codes, and interpret accordingly the data which follow.  In particular,
    it's not sufficient to trust that any particular Extra Block will be the
    first one in the Extra Field.  It's generally safe to ignore any Extra
    Block whose type code is not recognized, but it's crucial to scan the
    Extra Field, identify each Extra Block, and handle it according to its
    type.
       Here are some relatively small (about 14MiB each) test archives which
    illustrate the problem:
          http://antinode.info/ftp/info-zip/ms_zip64/test_4g.zip
          http://antinode.info/ftp/info-zip/ms_zip64/test_4g_V.zip
          http://antinode.info/ftp/info-zip/ms_zip64/test_4g_W.zip
       Correct info, from UnZip 6.00 ("unzip -lv"):
    Archive:  test_4g.zip
     Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
    4362076160  Defl:X 14800839 100% 05-01-2014 15:33 6d8d2ece  test_4g.txt
    Archive:  test_4g_V.zip
     Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
    4362076160  Defl:X 14800839 100% 05-01-2014 15:33 6d8d2ece  test_4g.txt
    Archive:  test_4g_W.zip
     Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
    4362076160  Defl:X 14800839 100% 05-01-2014 15:33 6d8d2ece  test_4g.txt
    (In these reports, "Length" is the uncompressed size; "Size" is the
    compressed size.)
       Incorrect info, from (Windows 7) Windows Explorer:
    Archive        Name          Compressed size   Size
    test_4g.zip    test_4g.txt         14,454 KB   562,951,376,907,238 KB
    test_4g_V.zip  test_4g.txt         14,454 KB   8,796,110,221,518 KB
    test_4g_W.zip  test_4g.txt         14,454 KB   1,464,940,363,777 KB
       Faced with these unrealistic sizes, Windows Explorer refuses to
    extract the member file, for lack of (petabytes of) free disk space.
       The archive test_4g.zip has the following Extra Blocks: universal
    time (type = 0x5455) and 64-bit sizes (type = 0x0001).  test_4g_V.zip
    has: PWWARE VMS (type = 0x000c) and 64-bit sizes (type = 0x0001).
    test_4g_W.zip has: NT security descriptor (type = 0x4453), universal
    time (type = 0x5455), and 64-bit sizes (type = 0x0001).  Obviously,
    Info-ZIP UnZip has no trouble correctly finding the 64-bit size info in
    these archives, but Windows Explorer is clearly confused.  (Note that
    "1,464,940,363,777 KB" translates to 0x0005545500000400 (bytes), and
    "0x00055455" looks exactly like the size, "0x0005" and the type code
    "0x5455" for a "UT" universal time Extra Block, which was present in
    that archive.  This is consistent with the hypothesis that the wrong
    data in the Extra Field are being interpreted as the 64-bit size data.)
       Without being able to see the source code involved here, it's hard to
    know exactly what it's doing wrong, but it does appear that the .zip
    reader used by Windows Explorer is using a very (too) simple-minded
    method to extract 64-bit size data from the Extra Field, causing it to
    get bad data from a properly formed archive.
       I suspect that the engineer involved will have little trouble finding
    and fixing the code which parses an Extra Field to extract the 64-bit
    sizes correctly, but if anyone has any questions, we'd be happy to help.
       For the Info-ZIP (http://info-zip.org/) team,
       Steven Schweda

    > We can't get the source (info-zip) program for test.
       I don't know why you would need to, but yes, you can:
          http://www.info-zip.org/
          ftp://ftp.info-zip.org/pub/infozip/src/
    You can also get pre-built executables for Windows:
          ftp://ftp.info-zip.org/pub/infozip/win32/unz600xn.exe
          ftp://ftp.info-zip.org/pub/infozip/win32/zip300xn.zip
    > In addition, since other zip application runs correctly. Since it should
    > be your software itself issue.
       You seem to misunderstand the situation.  The facts are these:
       1.  For your convenience, I've provided three test archives, each of
    which includes a file larger than 4GiB.  These archives are valid.
       2.  Info-ZIP UnZip (version 6.00 or newer) can process these archives
    correctly.  This is consistent with the fact that these archives are
    valid.
       3.  Programs from other vendors can process these archives correctly.
    I've supplied a screenshot showing one of them (7-Zip) doing so, as you
    requested.  This is consistent with the fact that these archives are
    valid.
       4.  Windows Explorer (on Windows 7) cannot process these archives
    correctly, apparently because it misreads the (Zip64) file size data.
    I've supplied a screenshot of Windows Explorer showing the bad file size
    it gets, and the failure that occurs when one tries to use it to extract
    the file from one of these archives, as you requested.  This is
    consistent with the fact that there's a bug in the .zip reader used by
    Windows Explorer.
       Yes, "other zip application runs correctly."  Info-ZIP UnZip runs
    correctly.  Only Windows Explorer does _not_ run correctly.

  • Updating to MAXDB 7.5.00.29- user logon failed error! Urgent Help

    Hi
    I am trying to update MaxDB 7.5.00 to MaxDB 7.5.00.29
    on WAS 6.40. When I run the update via SDBUPD, I get the error "cannot establish database instance". i have looked in the log files(MaxDBUpdate_install-16.07.2005-16.13.log)
    and the error is
    <b>user_logon failed
    ERR
    -24950,ERR_USRFAIL: user authorization failed</b>
    I am following "MaxDB update SAP note 735598" and under Windows section it states I should call the SDBUPD from the cmd prompt as follows:
    SDBUPD -d <database_name> -u <dbm_userid>,<password>
    so i run
    <b>SDBUPD -d J2E -u Administrator,portal</b>
    I assume <dbm_userid> is the default userid which is Admisitrator when installing WAS and MAXDB. I ahve not changed the default during the installation.
    I have tried <b>SAPJ2EDB</b> as dmb_userid as well as <b>J2EE_Admin</b>, they still give the same error.
    Any help on this?
    Need urgent help
    Much appreciated
    RD
    Message was edited by: RD

    Hi
    Thank you for your reply!!
    I used control,control as user,password. This worked 100%, but then it reached to a point where it gave this error, i get this from the log file:
    <b>STDERR: test pgm/sqltcp.dll failed: cannot extract pgm/sqltcp.dll: sharing violation during open of existing file</b>
    What causes this error, and how can i get pass this ?
    I assume some instance is started, but before I ran the SDBUPD, I stopped the J2E under sap system in SAPMMC.
    Below is the output it gave when i ran SDBUPD from cmd prompt, I have bolded where the error starts:
    D:\UpdatesPatches\MaxDB\maxdb-server-win-32bit-i386-7_5_00_29>SDBUPD -d J2E -u control,control
            MaxDB INSTANCE UPDATE
    starting installation Mo, Jul 18, 2005 at 08:57:11
    operating system: Windows I386 NT 5.2 Service Pack 1
    callers working directory: D:/UpdatesPatches/MaxDB/maxdb-server-win-32bit-i386-7
    500_29
    installer directory: D:/UpdatesPatches/MaxDB/maxdb-server-win-32bit-i386-7_5_00_
    29
    archive directory: D:/UpdatesPatches/MaxDB/maxdb-server-win-32bit-i386-7_5_00_29
    beginning to check sap db instances
    start new instance update
    finding instance type...
    finding starting release...
    finding migration strategy...
    looking for running instances...
    checking paramfile modifications...
    looking for domain user...
    checking data consistency for database migration...
    switch database state to OFFLINE
    checking SAP DB instance "J2E" successfully Mo, Jul 18, 2005 at 08:57:23
    starting preparing phase of package Base 7.5.00.29 32 bit
    update release check... ok
    update binary magic check... ok
    checking interferences to other packages... ok
    collecting data finished:
    independent data path: d:/sapdb/data
    independent program path: d:/sapdb/programs
    start extraction test run of "D:/UpdatesPatches/MaxDB/maxdb-server-win-32bit-i38
    6-7_5_00_29/SDBBAS.TGZ"
    <b>test pgm/sqltcp.dll failed: cannot extract pgm/sqltcp.dll: sharing violation dur
    ing open of existing file
    following programs are running:
    dbmsrv.exe [pid = 876]
    dbmsrv.exe [pid = 2496]
    dbmsrv.exe [pid = 1460]
    wahttp.exe [pid = 1420]
    dbmsrv.exe [pid = 1188]</b>

  • Recovering damaged ZIP archive

    I have a large (1.26GB) ZIP archive that I made some time ago and copied to DVD.
    Now when I try and unarchive it using Archive Utility it says 'Unable to unarchive. Error 1 (Operation not permitted.)'.
    Does anyone know how I can fix this?
    I've looked online for ZIP archive repair software that runs on OS X but can find nothing.

    I am trying to expand a Stuffit ZIP file I created of personal family images/information. I thought it was a good idea at the time (yes I could just shoot myself). All I did was compress it and it was saved on an external HD. Well sometime later (few months maybe years) I want to open it and use some info on it and I can't.
    I found some help stuff on this site for logging into Terminal. I got this when using Terminal after prompting the Error 1 - Operation Not Permitted. Read below and PLEASE (yes, please) help me figure out. I've tried some things from the list but since I don't know what I am doing I need mac geek assistance. I am partial geek, hehe. Thank you!
    Last login: Sun Sep 13 10:47:31 on ttys000
    imacs-imac-g5:~ MC$ unzip -P Family & Friends.zip
    [1] 350
    UnZip 5.52 of 28 February 2005, by Info-ZIP. Maintained by C. Spieler. Send
    bug reports using http://www.info-zip.org/zip-bug.html; see README for details.
    Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
    Default action is to extract files in list, except those in xlist, to exdir;
    file[.zip] may be a wildcard. -Z => ZipInfo mode ("unzip -Z" for usage).
    -p extract files to pipe, no messages -l list files (short format)
    -f freshen existing files, create none -t test compressed archive data
    -u update files, create if necessary -z display archive comment
    -x exclude files that follow (in xlist) -d extract files into exdir
    modifiers: -q quiet mode (-qq => quieter)
    -n never overwrite existing files -a auto-convert any text files
    -o overwrite files WITHOUT prompting -aa treat ALL files as text
    -j junk paths (do not make directories) -v be verbose/print version info
    -C match filenames case-insensitively -L make (some) names lowercase
    -X restore UID/GID info -V retain VMS version numbers
    -K keep setuid/setgid/tacky permissions -M pipe through "more" pager
    Examples (see unzip.txt for more info):
    unzip data1 -x joe => extract all files except joe from zipfile data1.zip
    unzip -p foo | more => send contents of foo.zip via pipe into program more
    unzip -fo foo ReadMe => quietly replace existing ReadMe if archive file newer
    -bash: Friends.zip: command not found
    [1]+ Exit 10 unzip -P Family
    imacs-imac-g5:~ MC$
    Anyone know what to do next?
    Thanks!

  • Apple Configurator says "Zip Archive corrupt"

    Hi,
    I have an issue when trying to restore a backup which was taken on one iPad to another.  I'm using Apple Configurator and it says "Zip Archive corrupt" upns failure.
    I'm not onsite today to test dirrectly, but any advice regarding this is much appreciated. 
    Kind regards,
    Josh

    This is the contents of the clients install log file:
    Performing runtime install
    UI SWF load is complete
    UI initialized
    starting user confirmation
    Installation type: new
    starting install
    Scheduling runtime installation operations
    Installed Product GUID: is same:false
    Beginning runtime installation
    Beginning install
    Installing
    c:\docume~1\abbeys~1.dmh\locals~1\temp\airf4.tmp\setup.msi
    Error occurred; beginning rollback: [ErrorEvent type="error"
    bubbles=false cancelable=false eventPhase=2 text="1603" errorID=0]
    Rolling back install of
    c:\docume~1\abbeys~1.dmh\locals~1\temp\airf4.tmp\setup.msi
    Rollback due to error complete
    error during install: [ErrorEvent type="error" bubbles=false
    cancelable=false eventPhase=2 text="1603" errorID=0]
    runtime install entering error state: [ErrorEvent
    type="error" bubbles=false cancelable=false eventPhase=2
    text="1603" errorID=0]
    begin quitting
    error in stateQuitting: [ErrorEvent type="error"
    bubbles=false cancelable=false eventPhase=2 text="Unhandled
    exception TypeError: Error #1009" errorID=1009]
    What does that mean?
    I talked to the client's IT and they says "all restrictions
    have been removed, it's not on our end" but I'm not confident this
    is really true.
    IT tried to install as an admin.
    Thanks for your help.

  • URGENT HELP NEEDED!!! (Almost a matter of life and death)

    Well, it's more of a matter of failing a course or not...
    Anyway, my Java professor gave us some labs to do. I know Java front and back, at least, whatever version I learned a few years back. This is my first tenure with the Scanner object, and it's messing me up.
    I'm using Eclipse for my project. I have three files in the source folder, ABC_Manufacturing.java, mseast.dat and mswest.dat. Now, when I try to instanciate a new Scanner object, it won't find the files:
    Scanner east = new Scanner(new FileReader("mseast.dat"));
    Scanner west = new Scanner(new File("mswest.dat"));
    I'm trying two seperate ways to do this. Neither are working, this is the error I get:
    Exception in thread "main" java.lang.Error: Unresolved compilation problems:
         Unhandled exception type FileNotFoundException
         Unhandled exception type FileNotFoundException
         at ABC_Manufacturing.main(ABC_Manufacturing.java:38)
    Now, I added these files OVER and OVER again. I added them. I created new files and pasted the contents in there. I used .txt files. All the same error. It's like it just won't take the time out to look for the files that are RIGHT IN THE DAMN PROJECT! Then I tried using a complete path, using C:\Java\whatever. SAME ERROR!!!!
    Please, I need urgent help. This is due tomorrow at noon, and I have no idea what to do at this point. I can't really continue, because at this point its just looking at what prints out and formatting it, and I don't want to do that without testing to see if my code to convert the file data into arrays work. You dig? Thanks for any and all help, and I'm going to kill my professor...she spent a week going over parallel arrays but did nothing to show us how to import files into projects or use the scanner class. Also it doesn't help that at uni we have to use emacs, which I don't use at home.

    d00erino wrote:
    This is the the main class, so far:
    public static void main(String[] args)throws IOException
              Scanner west = new Scanner(new File("mswest.dat"));
              int [] eastParts = new int[13];
              int [] eastQuant = new int[13];
              int [] westParts = new int[17];
              int [] westQuant = new int[17];
              System.out.print(west.nextInt());
    And I didn't ignore that one guy (sorry, don't remember your username) I tried you and the other guy's responce. Both didn't work. I dunno how to get around errors. Figures, you don't learn that in the course but she'll spend a week on parallel arrays...Ok, well that can't possibly be complaining with the same error message you got before, so now you need to be (more) specific about what "didn't work" means.

  • Urgent help needed to get this home page up!

    Hi,
    I need urgent help with this and it is driving me crazy. For
    some reason my animation starts at its fastest and won't stop until
    you click the area then it works properly. I have no clue why it is
    doing this and only seems to do it on a PC browser not on a Mac.
    Can anyone help please!!!!!
    Link to sample:
    http://www.totalamber.com/test.html
    Link to fla:
    http://www.totalamber.com/flash/homepage.fla
    Thanks so much for anyone who can help or tries to help me.
    Neil
    Ps this is urgent and i can't find a solution by searching on
    here

    Thanks to anyone who has looked at this but i have found the
    answer.
    It is due to what many of the users on here will already know
    and can be explained in this link:
    http://blog.deconcept.com/swfobject/
    I had forgot about the legal patent going on with microsoft!
    Hope it helps anyone else as bad as i am.
    Neil

  • URGENT HELP NEEDED ... Tomcat Realm and JRE1.4 plug-in problem

    I have tried the Security Realm of Tomcat. Since I do not have
    an LDAP server, I decided to use the Tomcat-users.xml file in
    Tomcat\conf directory.
    I added the following lines of code in the web.xml file.
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Entire Application</web-resource-name>
    <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
    <!-- NOTE: This role is not present in the default users file -->
    <role-name>webviewer</role-name>
    </auth-constraint>
    </security-constraint>
    <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Tomcat Manager Application</realm-name>
    </login-config>
    The <role-name> "webviewer" is added into "Tomcat-Users.xml" as the following:
    <tomcat-users>
    <user name="test" password="password" roles="webviewer" />
    </tomcat-users>
    So, now when we type the url: http://localhost:8080/adbpdbre/default.htm, TOMCAT shows a dialog box asking for UserName: and Password:Now, only when we give the username and password, it shows the page. This is exactly what we want.
    But the problem now is, this default.htm page, has 5 links to 5 applets. The first time that I click on one of these links, the JRE plug of 1.4 shows a dialog again asking for the username and password. Till I dont provide the username and password the system doesnt go ahead and applet doesnt load. I do not want the JRE to ask me for the username/passwords again..How to avoid this ?
    Can you give me some more information on this. Ultimately in the production usage, we will be using LDAP and not Tomcat's memory realm.
    URGENT HELP NEEDED ... I need to get back to my client on this.
    Help would be v. much appreciated.

    In the config file, you 're essentially saying that you want Tomcat to prompt for usr/passw on every request (url-pattern = /*) made by a 'webviewer', and that's exactly what Tomcat is doing.
    Consider using specific url-patterns & roles for resources to be protected. If for now, all you need is to protect the first page, use a more specific url-pattern.
    Just an advice : if you'll be using LDAP in production, do not waste time with Tomcat's Security Realm and the BASIC authentication type, since the two have not much in common. Start reading doc on LDAP, and code a prototype, or even better, a vertical slice of the app (i.e a proof of concept).

  • Urgent Help required! - Storing the XML as String instead as a file

    Hi,
    I need urgent help on this.
    I have an XML file. I have used org.w3c.dom to build dom and manipulate the XML file.
    I have updated the values for some of the nodes and I have deleted some of the unwanted nodes.
    I am able to save the output of the DOM as another XML file using
    either transform class or XMLSerializer with OutputFormatter class.
    But my requirement is to save the output of the DOM into a String instead of a file.
    When I save it in String, I need to have the following XML decalration and DOCTYPE declration also with it.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE Test SYSTEM "Test.dtd">
    Can anyone pls help me in this??
    Thanks in Advance. Expecting some inpputs pls....!
    Regards,
    Gayathri.

    hi,
    i think this is what u want
        public static String getXmlString(Document d) {
          StringWriter strResponse = null;
          try {
             OutputFormat format  = new OutputFormat(d);
             strResponse = new StringWriter();
             XMLSerializer serial = new XMLSerializer( strResponse, format );
             serial.asDOMSerializer();
             serial.serialize(d.getDocumentElement());
          catch (Exception e) {
            System.out.println(e.toString());
          return strResponse.toString();
    }HTH
    vasanth-ct

  • Create a new directory in existing Zip archive

    Hello Every One
    I want create a new folder in existing Zip archive. Can any one help in this regard.
    Thanks
    Edited by: SatishBejgum on Dec 18, 2007 12:42 AM

    Delete the ZIP, write a new one. You can't modify an existing archive.

  • Urgent help in coding of creating New Business partner?

    Hi Friends,
    I need urgent help on this.Please give me the solution.
    This is the coding which i written for creating new BP.
    FUNCTION ZCTS_NEW_CONTACT.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(BUSINESSPARTNER) LIKE  BAPIBUS1006_HEAD-BPARTNER
    *"     VALUE(CNEWINFO) TYPE  ZCTS_CONTACTS
    *"     VALUE(CDATA) LIKE  BAPIBUS1006_CENTRAL STRUCTURE
    *"        BAPIBUS1006_CENTRAL
    *"     VALUE(BUSPART1) LIKE  BAPIBUS1006_RELHEAD-BUSINESSPARTNER1
    *"     VALUE(BUSPART2) LIKE  BAPIBUS1006_RELHEAD-BUSINESSPARTNER2
    *"     VALUE(RELCAT) LIKE  BAPIBUS1006_RELHEAD-RELATIONSHIPCATEGORY
    *"  EXPORTING
    *"     VALUE(MESG) TYPE  CHAR100
    DATA: lt_return like bapiret2 occurs 0 with Header line.
    DATA: CTPERS  LIKE BAPIBUS1006_CENTRAL_PERSON OCCURS 0 WITH HEADER LINE.
    DATA : PARTN_GRP TYPE BAPIBUS1006_HEAD-PARTN_GRP.
    DATA : PARTN_CAT TYPE BAPIBUS1006_HEAD-PARTN_CAT.
    DATA: BEGIN OF ADADD.
       INCLUDE STRUCTURE BAPIBUS1006_ADDRESS.
      DATA: END OF ADADD.
    DATA: BEGIN OF ADTEL OCCURS 0.
       INCLUDE STRUCTURE BAPIADTEL.
      DATA: END OF ADTEL.
    DATA: BEGIN OF ADSMP OCCURS 0.
       INCLUDE STRUCTURE BAPIADSMTP.
      DATA: END OF ADSMP.
    CTPERS-FIRSTNAME  = CNEWINFO-FNAME.
    CTPERS-LASTNAME   = CNEWINFO-LNAME.
    PARTN_CAT = 1.
    PARTN_GRP = 002.
    ADADD-CITY = CNEWINFO-CITY .
    telephone info **
      ADTEL-TELEPHONE = CNEWINFO-PHONE.
      ADTEL-CONSNUMBER = '001'.
      APPEND ADTEL.
      ADTEL-TELEPHONE = CNEWINFO-MOBILE.
      ADTEL-CONSNUMBER = '002'.
      APPEND ADTEL.
    email information **
      ADSMP-E_MAIL = CNEWINFO-EMAIL .
      APPEND ADSMP.
    CALL FUNCTION 'BAPI_BUPA_CREATE_FROM_DATA'
      EXPORTING
        PARTNERCATEGORY                    = PARTN_CAT
        CENTRALDATA                        = CDATA
        PARTNERGROUP                       = PARTN_GRP
        CENTRALDATAPERSON                  = CTPERS
        ADDRESSDATA                        = ADADD
    IMPORTING
       BUSINESSPARTNER                    = BUsinessPartner
    TABLES
        TELEFONDATA                        = ADTEL
        E_MAILDATA                         = ADSMP
        RETURN                             = lt_return.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
         WAIT = 'X'.
    *PARTN_CAT = 1.
    *PARTN_GRP = 002.
    *ADADD-CITY = CNEWINFO-CITY .
    telephone info **
    ADTEL-TELEPHONE = CNEWINFO-PHONE.
    ADTEL-CONSNUMBER = '001'.
    APPEND ADTEL.
    ADTEL-TELEPHONE = CNEWINFO-MOBILE.
    ADTEL-CONSNUMBER = '002'.
    APPEND ADTEL.
    email information **
    ADSMP-E_MAIL = CNEWINFO-EMAIL .
    APPEND ADSMP.
    CALL FUNCTION 'BAPI_BUPR_PFCT_CREATEFROMDATA'
          EXPORTING
            BUSINESSPARTNER1           = BUSPART1
            BUSINESSPARTNER2           = BUSPART2
            RELATIONSHIPCATEGORY       = RELCAT
         TABLES
           RETURN                     = lt_return.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
         WAIT = 'X'.
    LOOP AT lt_return WHERE TYPE = 'E'.
        MESG = ' NOT CREATED NEW CONTACT'(020).
        EXIT.
      ENDLOOP.
    ENDFUNCTION.
    Early reply is highly appriciable.
    Regards,
    BONA

    Hi,
    Thanks for early reply.
    When i tested created new BP.
    Wheni check wether it is created or not its not created.
    What is the problem.is there modifications i have to do int he coding.
    Thanks,
    BONA.

  • Urgent help need on swing problem

    Dear friends,
    I met a problem and need urgent help from guru here, I am Swing newbie,
    I have following code and hope to draw lines between any two components at RUN-TIME, not at design time
    Please throw some skeleton code, Thanks so much!!
    code:
    package com.swing.test;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class LongguConnectLineCommponent
        public static void main(String[] args)
            JFrame f = new JFrame("Connecting Lines");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(new ConnectionPanel());
            f.setSize(400,300);
            f.setLocation(200,200);
            f.setVisible(true);
    class ConnectionPanel extends JPanel
        JLabel label1, label2, label3, label4;
        JLabel[] labels;
        JLabel selectedLabel;
        int cx, cy;
        public ConnectionPanel()
            setLayout(null);
            addLabels();
            label1.setBounds( 25,  50, 125, 25);
            label2.setBounds(225,  50, 125, 25);
            label3.setBounds( 25, 175, 125, 25);
            label4.setBounds(225, 175, 125, 25);
            determineCenterOfComponents();
            ComponentMover mover = new ComponentMover();
            addMouseListener(mover);
            addMouseMotionListener(mover);
        public void paintComponent(Graphics g)
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                RenderingHints.VALUE_ANTIALIAS_ON);
            Point[] p;
            for(int i = 0; i < labels.length; i++)
                for(int j = i + 1; j < labels.length; j++)
                    p = getEndPoints(labels, labels[j]);
    //g2.draw(new Line2D.Double(p[0], p[1]));
    private Point[] getEndPoints(Component c1, Component c2)
    Point
    p1 = new Point(),
    p2 = new Point();
    Rectangle
    r1 = c1.getBounds(),
    r2 = c2.getBounds();
    int direction = r1.outcode(r2.x, r2.y);
    switch(direction) // r2 located < direction > of r1
    case (Rectangle.OUT_LEFT): // West
    p1.x = r1.x;
    p1.y = r1.y;
    p2.x = r2.x + r2.width;
    p2.y = r2.y;
    if(r1.y > cy)
    p1.y = r1.y + r1.height;
    p2.y = r2.y + r2.height;
    break;
    case (Rectangle.OUT_TOP): // North
    p1.x = r1.x;
    p1.y = r1.y;
    p2.x = r2.x;
    p2.y = r2.y + r2.height;
    if(r1.x > cx && r2.x > cx)
    p1.x = r1.x + r1.width;
    p2.x = r2.x + r2.width;
    break;
    case (Rectangle.OUT_LEFT + Rectangle.OUT_TOP): // NW
    p1.x = r1.x;
    p1.y = r1.y;
    p2.x = r2.x + r2.width;
    p2.y = r2.y;
    if(r1.y > r2.y + r2.height)
    p2.y = r2.y + r2.height;
    break;
    case (Rectangle.OUT_RIGHT): // East
    p1.x = r1.x + r1.width;
    p1.y = r1.y;
    p2.x = r2.x;
    p2.y = r2.y;
    if(r1.y > cy)
    p1.y = r1.y + r1.height;
    p2.y = r2.y + r2.height;
    break;
    case (Rectangle.OUT_TOP + Rectangle.OUT_RIGHT): // NE
    p1.x = r1.x + r1.width;
    p1.y = r1.y;
    p2.x = r2.x;
    p2.y = r2.y;
    if(r1.y > cy)
    p1.y = r1.y + r1.height;
    p2.y = r2.y + r2.height;
    if(r1.y > r2.y + r2.height)
    p1.y = r1.y;
    else
    if(r1.y > r2.y + r2.height)
    p2.y = r2.y + r2.height;
    break;
    case (Rectangle.OUT_BOTTOM): // South
    p1.x = r1.x;
    p1.y = r1.y + r1.height;
    p2.x = r2.x;
    p2.y = r2.y;
    if(r1.x > cx && r2.x > cx)
    p1.x = r1.x + r1.width;
    p2.x = r2.x + r2.width;
    break;
    case (Rectangle.OUT_RIGHT + Rectangle.OUT_BOTTOM): // SE
    p1.x = r1.x + r1.width;
    p1.y = r1.y + r1.height;
    p2.x = r2.x;
    p2.y = r2.y;
    break;
    case (Rectangle.OUT_BOTTOM + Rectangle.OUT_LEFT): // SW
    p1.x = r1.x;
    p1.y = r1.y + r1.height;
    p2.x = r2.x;
    p2.y = r2.y;
    if(r1.x > r2.x + r2.width)
    p2.x = r2.x + r2.width;
    if(r1.x > cx && r2.x > cx)
    p1.x = r1.x + r1.width;
    p2.x = r2.x + r2.width;
    return new Point[] {p1, p2};
    private void determineCenterOfComponents()
    int
    xMin = Integer.MAX_VALUE,
    yMin = Integer.MAX_VALUE,
    xMax = 0,
    yMax = 0;
    for(int i = 0; i < labels.length; i++)
    Rectangle r = labels[i].getBounds();
    if(r.x < xMin)
    xMin = r.x;
    if(r.y < yMin)
    yMin = r.y;
    if(r.x + r.width > xMax)
    xMax = r.x + r.width;
    if(r.y + r.height > yMax)
    yMax = r.y + r.height;
    cx = xMin + (xMax - xMin)/2;
    cy = yMin + (yMax - yMin)/2;
    private class ComponentMover extends MouseInputAdapter
    Point offsetP = new Point();
    boolean dragging;
    public void mousePressed(MouseEvent e)
    Point p = e.getPoint();
    for(int i = 0; i < labels.length; i++)
    Rectangle r = labels[i].getBounds();
    if(r.contains(p))
    selectedLabel = labels[i];
    offsetP.x = p.x - r.x;
    offsetP.y = p.y - r.y;
    dragging = true;
    break;
    public void mouseReleased(MouseEvent e)
    dragging = false;
    public void mouseDragged(MouseEvent e)
    if(dragging)
    Rectangle r = selectedLabel.getBounds();
    r.x = e.getX() - offsetP.x;
    r.y = e.getY() - offsetP.y;
    selectedLabel.setBounds(r.x, r.y, r.width, r.height);
    determineCenterOfComponents();
    repaint();
    private void addLabels()
    label1 = new JLabel("Label 1");
    label2 = new JLabel("Label 2");
    label3 = new JLabel("Label 3");
    label4 = new JLabel("Label 4");
    labels = new JLabel[] {
    label1, label2, label3, label4
    for(int i = 0; i < labels.length; i++)
    labels[i].setHorizontalAlignment(SwingConstants.CENTER);
    labels[i].setBorder(BorderFactory.createEtchedBorder());
    add(labels[i]);

    If you need some help, be respectful of the forum rules and people will help. By using "urgent" in the title and bumping your message every 2 hours you're just asking to be ignored (which is what you ended up with).

  • Your urgent help will be very much appreciated

    I have a problem whenever I connect my database and need your urgent help. the sample source code is below
    import java.sql.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    public class Table extends JFrame
    private Connection con;
    private JTable table;
    public Table()
         String url = "jdbc:odbc:Books";
         String username="";
         String password="";
         try{
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         con = DriverManager.getConnection(url, username, password);
         catch(ClassNotFoundException cnfex)
         System.err.println("Failed to load JDBC/ODBC driver.");
         cnfex.printStackTrace();
         System.exit(1);
         catch(SQLException sqlex)
         System.err.println("Failed to connect");
         sqlex.printStackTrace();
         getTable();
         setSize(45,150);
         show();
    public void getTable()
         Statement state;
         ResultSet result;
         try{
         String query="Select * from Author";
         state=con.createStatement();
         result=state.executeQuery(query);
         displayResult(result);
         state.close();
         catch(SQLException sqlex)
         sqlex.printStackTrace();
    public void displayResult(ResultSet rs)throws SQLException
    boolean moreRecord=rs.next();
    if (!moreRecord)
    JOptionPane.showMessageDialog(this, "ResultSet contained no record");
    setTitle("No records to display");
    return;
    setTitle("Author table from Books");
    Vector columnHeads=new Vector();
    Vector rows=new Vector();
    try{
    ResultSetMetaData rsmd=rs.getMetaData();
    for (int i=1; i<=rsmd.getColumnCount(); i++)
    columnHeads.addElement(rsmd.getColumnName(i));
    do{
    rows.addElement(getNextRow(rs, rsmd));
    }while(rs.next());
    table=new JTable(rows, columnHeads);
    JScrollPane scroller=new JScrollPane(table);
    getContentPane().add(scroller,BorderLayout.CENTER);
    validate();
    catch(SQLException sqlex)
    sqlex.printStackTrace();
    public Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)
              throws SQLException
    Vector currentRow=new Vector();
    for (int i=1; i<=rsmd.getColumnCount(); i++)
    switch (rsmd.getColumnType(i))
    case Types.VARCHAR:
         currentRow.addElement(rs.getString(i));
         break;
         case Types.INTEGER:
         currentRow.addElement(new Long(rs.getLong(i)));
         break;
    default:
    System.out.println("Type was: "+rsmd.getColumnTypeName(i));
    return currentRow;
    public void shutDown()
         try{
         con.close();
         catch(SQLException sqlex)
         System.err.println("Unable to disconnect");
         sqlex.printStackTrace();
    public static void main(String args[])
         final Table app=new Table();
         app.addWindowListener( new WindowAdapter()
         public void windowClosing(WindowEvent e)
              app.shutDown();
              System.exit(0);

    Thank you for your help. When I compile it, it is fine, the problem happens when run it.
    Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x6d448d54
    Function name=(N/A)
    Library=C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\hotspot\jvm.dll
    NOTE: We are unable to locate the function name symbol for the error
    just occurred. Please refer to release documentation for possible
    reason and solutions.
    Current Java thread:
    at sun.jdbc.odbc.JdbcOdbc.driverConnect(Native Method)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at Table.<init>(Table.java:26)
    at Table.main(Table.java:145)
    Dynamic libraries:
    0x00400000 - 0x00405000 C:\WINNT\system32\java.exe
    0x77F80000 - 0x77FFB000 C:\WINNT\System32\ntdll.dll
    0x77D90000 - 0x77DED000 C:\WINNT\system32\ADVAPI32.dll
    0x77E60000 - 0x77F35000 C:\WINNT\system32\KERNEL32.DLL
    0x786F0000 - 0x78761000 C:\WINNT\system32\RPCRT4.DLL
    0x78000000 - 0x78046000 C:\WINNT\system32\MSVCRT.dll
    0x60000000 - 0x6003A000 c:\program files\rising\rav\ApiHook.dll
    0x05000000 - 0x0502E000 c:\program files\rising\rav\MemMon.dll
    0x77DF0000 - 0x77E55000 C:\WINNT\system32\USER32.dll
    0x77F40000 - 0x77F7C000 C:\WINNT\system32\GDI32.DLL
    0x75E00000 - 0x75E1A000 C:\WINNT\System32\IMM32.DLL
    0x6D420000 - 0x6D4F7000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\hotsp
    ot\jvm.dll
    0x77530000 - 0x77560000 C:\WINNT\system32\WINMM.dll
    0x6D220000 - 0x6D227000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\hpi.d
    ll
    0x6D3B0000 - 0x6D3BD000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\verif
    y.dll
    0x6D250000 - 0x6D266000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\java.
    dll
    0x6D3C0000 - 0x6D3CD000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\zip.d
    ll
    0x6D020000 - 0x6D12A000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\awt.d
    ll
    0x777C0000 - 0x777DE000 C:\WINNT\system32\WINSPOOL.DRV
    0x75010000 - 0x75020000 C:\WINNT\system32\MPR.DLL
    0x77A30000 - 0x77B25000 C:\WINNT\system32\ole32.dll
    0x6D1E0000 - 0x6D21B000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\fontm
    anager.dll
    0x6DD30000 - 0x6DD36000 C:\WINNT\System32\INDICDLL.dll
    0x37210000 - 0x3723D000 C:\WINNT\DOWNLO~1\CnsMin.dll
    0x77C50000 - 0x77C9A000 C:\WINNT\system32\SHLWAPI.dll
    0x777E0000 - 0x777E7000 C:\WINNT\system32\VERSION.dll
    0x75950000 - 0x75956000 C:\WINNT\system32\LZ32.DLL
    0x6D290000 - 0x6D29A000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\JdbcO
    dbc.dll
    0x1F7F0000 - 0x1F825000 C:\WINNT\system32\ODBC32.dll
    0x76AF0000 - 0x76B2D000 C:\WINNT\system32\comdlg32.dll
    0x77B30000 - 0x77BB9000 C:\WINNT\system32\COMCTL32.DLL
    0x78F90000 - 0x791D6000 C:\WINNT\system32\SHELL32.DLL
    0x1F8E0000 - 0x1F8F6000 C:\WINNT\system32\odbcint.dll
    0x77900000 - 0x77923000 C:\WINNT\system32\imagehlp.dll
    0x72960000 - 0x7298D000 C:\WINNT\system32\DBGHELP.dll
    0x687E0000 - 0x687EB000 C:\WINNT\system32\PSAPI.DLL
    Local Time = Tue Feb 25 21:33:38 2003
    Elapsed Time = 7
    # HotSpot Virtual Machine Error : EXCEPTION_ACCESS_VIOLATION
    # Error ID : 4F530E43505002BD
    # Please report this error at
    # http://java.sun.com/cgi-bin/bugreport.cgi
    # Java VM: Java HotSpot(TM) Client VM (1.3.1_05-b02 mixed mode)
    # An error report file has been saved as hs_err_pid1792.log.
    # Please refer to the file for further information.
    #

Maybe you are looking for