Service replication Dump SYSFAIL Invalid subfield access: Offset too large.

Hello,
I am working with SRM 7.0, Backend: SAP ERP 6.0 EHP4
My problem is that I have replicated the SERVICE MASTER from R/3.But in
tcode SMQ1 for Queue: R3AI_SERVICE_MASTER the system shows the following
error message:SYSFAIL Invalid subfield access: Offset too large.
In SRM the Range are SRM external match with R/3 internal.
I have already replicated OK the following:
DNL_CUST_PROD0
DNL_CUST_PROD1
DNL_CUST_SRVMAS
Could anybody please advise, it would be well appreciated.
Kind regards,

Hello,
the problem was the table CRMSUBTAB for the Service line had a field ticked as inactive.

Similar Messages

  • Branch target offset too large for short

    Error :
    I am getting the error "Branch target offset too large for
    short" in coldfusion.
    What we are trying to do?
    We are concatenating large numbers of text. We where building
    a lengthly string. We ended up using mutliple variables and
    appending them together at the end to get it to work.
    Appending the lengthy string and writing into a file.
    Just to breif you this is a survey questions and answers we
    are generating text file with tab seperated as delimeters.
    e.g.
    The string I am using is
    <cfset Questions =
    Number#TabChar#Q1#TabChar#Q2A#TabChar#Q2B#TabChar#Q2C#TabChar#Q3A#TabChar#Q3B#TabChar#Q3C #TabChar#Q3D#TabChar#Q3E#TabChar#Q3F#TabChar#Q3G#TabChar#Q4A1#TabChar#Q4A2#TabChar#Q4A3#Ta bChar#Q4A4#TabChar#Q4A5#TabChar#Q4A6#TabChar#Q4B1#TabChar#Q4B2#TabChar#Q4B#TabChar#Q4B4#Ta bChar#Q4B5#TabChar#Q4B6#TabChar#Q4C1#TabChar#Q4C2#TabChar#Q4C3#TabChar#Q4C4#TabChar#Q4C5#T abChar#Q4C6#TabChar#Q4D1#TabChar#Q4D2#TabChar#Q4D3#TabChar#Q4D4#TabChar#Q4D5#TabChar#Q4D6# TabChar#Q4E1#TabChar#Q4E2#TabChar#Q4E3#TabChar#Q4E4#TabChar#Q4E5#TabChar#Q4E6#TabChar#Q4F1 #TabChar#Q4F2#TabChar#Q4F3#TabChar#Q4F4#TabChar#Q4F5#TabChar#Q4F6#TabChar#Q4G1#TabChar#Q4G 2#TabChar#Q4G3#TabChar#Q4G4#TabChar#Q4G5#TabChar#Q4G6#TabChar#Q4H1#TabChar#Q4H2#TabChar#Q4 H3#TabChar#Q4H4#TabChar#Q4H5#TabChar#Q4H6#TabChar#Q4I#TabChar#Q4J#TabChar#Q4K#TabChar#Q5A1 #TabChar#Q5A2#TabChar#Q5A3#TabChar#Q5A4#TabChar#Q5A5#TabChar#Q5A6#TabChar#Q5B1#TabChar#Q5B 2#TabChar#Q5B3#TabChar#Q5B4#TabChar#Q5B5#TabChar#Q5B6#TabChar#Q5C1#TabChar#Q5C2#TabChar#Q5 C3#TabChar#Q5C4#TabChar#Q5C5#TabChar#Q5C6#TabChar#Q5D1#TabChar#Q5D2#TabChar#Q5D3#TabChar#Q 5D4#TabChar#Q5D5#TabChar#Q5D6#TabChar#Q5E#TabChar#Q5F#TabChar#Q5G#TabChar#Q6A#TabChar#Q6B# TabChar#Q6C#TabChar#Q6E#TabChar#Q6F#TabChar#Q6G#TabChar#Q6H#TabChar#Q6I#TabChar#Q6J#TabCha r#Q6K#TabChar#Q7A1#TabChar#Q7A2#TabChar#Q7B1#TabChar#Q7B2#TabChar#Q7C#TabChar#Q7D#TabChar# Q8A#TabChar#Q8B#TabChar#Q8C#TabChar#Q8D#TabChar#Q8E#TabChar#Q8F#TabChar#Q8G#TabChar#Q8H#Ta bChar#Q9A1#TabChar#Q9A2#TabChar#Q9B1#TabChar#Q9B2#TabChar#Q9C1#TabChar#Q9C2#TabChar#Q9D1#T abChar#Q9D2#TabChar#Q9E1#TabChar#Q9E2#TabChar#Q9H1#TabChar#Q9H2#TabChar#Q9I1#TabChar#Q9I2# TabChar#Q9J1#TabChar#Q9J2#TabChar#Q9K1#TabChar#Q9K2#TabChar#Q9L1#TabChar#Q9L2#TabChar#Q9M# TabChar#Q9N#TabChar#Q9O#TabChar#Q9P#TabChar#Q9Q#TabChar#Q9R#TabChar#Q9S#TabChar#Q10A#TabCh ar#Q10B#TabChar#Q10C#TabChar#Q10E#TabChar#Q10F#TabChar#Q10G#TabChar#Q10H#TabChar#Q10I#TabC har#Q10J#TabChar#Q10K#TabChar#Q11A#TabChar#Q11B#TabChar#Q11C#TabChar#Q11D#TabChar#Q11E#Tab Char#Q11F#TabChar#Q11G#TabChar#Q11H#TabChar#Q11I#TabChar#Q11J#TabChar#Q11K#TabChar#Q11L#Ta bChar#Q11M#TabChar#Q11O#TabChar#Q11P#TabChar#Q11Q#TabChar#Q11R#TabChar#Q12A1#TabChar#Q12A2 #TabChar#Q12B1#TabChar#Q12B2#TabChar#Q12C1#TabChar#Q12C2#TabChar#Q12D1#TabChar#Q12D2#TabCh ar#Q12E#TabChar#Q12F#TabChar#Q12G#TabChar#Q12H#TabChar#Q12I#TabChar#Q12J#TabChar#Q12K#TabC har#Q12L#TabChar#Q13A1#TabChar#Q13A2#TabChar#Q13B1#TabChar#Q13B2#TabChar#Q13C1#TabChar#Q13 C2#TabChar#Q13D1#TabChar#Q13D2#TabChar#Q13E1#TabChar#Q13E2#TabChar#Q13H1#TabChar#Q13H2#Tab Char#Q13I1#TabChar#Q13I2#TabChar#Q13J1#TabChar#Q13J2#TabChar#Q13K1#TabChar#Q13K2#TabChar#Q 13L#TabChar#Q13M#TabChar#Q13N#TabChar#Q14A1#TabChar#Q14A2#TabChar#Q14B1#TabChar#Q14B2#TabC har#Q14C1#TabChar#Q14C2#TabChar#Q14D#TabChar#Q14E#TabChar#Q14F#TabChar#Q14G#TabChar#Q14H#T abChar#Q15A#TabChar#Q15B#TabChar#Q15C#TabChar#Q15D#TabChar#Q15E#TabChar#Q15F#TabChar#Q15G# TabChar#Q15H#TabChar#Q16A#TabChar#Q16B#TabChar#Q16C#TabChar#Q16D#TabChar#Q16E#TabChar#Q16F #TabChar#Q17A1#TabChar#Q17A2#TabChar#Q17A3#TabChar#Q17B#TabChar#Q17C#TabChar#Q17D#TabChar# Q17E#TabChar#Q17F#TabChar#Q17G#TabChar#Q17H#TabChar#Q18A1#TabChar#Q18A2#TabChar#Q18B1#TabC har#Q18B2#TabChar#Q18C1#TabChar#Q18C2#TabChar#Q18D1#TabChar#Q18D2#TabChar#Q18E1#TabChar#Q1 8E2#TabChar#Q18H1#TabChar#Q18H2#TabChar#Q18I1#TabChar#Q18I2#TabChar#Q18J1#TabChar#Q18J2#Ta bChar#Q18K1#TabChar#Q18K2#TabChar#Q18L1#TabChar#Q18L2#TabChar#Q18M1#TabChar#Q18M2#TabChar# Q18N1#TabChar#Q18N2#TabChar#Q18O1#TabChar#Q18O2#TabChar#Q18P1#TabChar#Q18P2#TabChar#Q18Q1# TabChar#Q18Q2#TabChar#Q18R1#TabChar#Q18R2#TabChar#Q18S1#TabChar#Q18S2#TabChar#Q18T1#TabCha r#Q18T2#TabChar#Q18U1#TabChar#Q18U2#TabChar#Q18V1#TabChar#Q18V2#TabChar#Q18W1#TabChar#Q18W 2#TabChar#Q18X1#TabChar#Q18X2#TabChar#Q18Y1#TabChar#Q18Y2#TabChar#Q18Z1#TabChar#Q18Z2#TabC har#Q18A11#TabChar#Q18A12#TabChar#Q18B11#TabChar#Q18B12#TabChar#Q18C11#TabChar#Q18C12#TabC har#Q18D11#TabChar#Q18D12#TabChar#Q18E11#TabChar#Q18E12#TabChar#Q18H11#TabChar#Q18H12#TabC har#Q18I11#TabChar#Q18I12#TabChar#Q18J11#TabChar#Q18J12#TabChar#Q18K11#TabChar#Q18K12#TabC har#Q18L11#TabChar#Q18L1Z#TabChar#Q18M11#TabChar#Q18M12#TabChar#Q18N11#TabChar#Q18N12#TabC har#Q18O11#TabChar#Q18O12#TabChar#Q18P11#TabChar#Q18P12#TabChar#Q18Q11#TabChar#Q18Q12#TabC har#Q18R11#TabChar#Q18R12#TabChar#Q18S11#TabChar#Q18S12#TabChar#Q18T11#TabChar#Q18T12#TabC har#Q18U11#TabChar#Q18U12#TabChar#Q18V11#TabChar#Q18V12#TabChar#Q18W11#TabChar#Q18W12#TabC har#Q18X11#TabChar#Q18X12#TabChar#Q18Y11#TabChar#Q18Y12#TabChar#Q18Z11#TabChar#Q18Z12#TabC har#Q18A21#TabChar#Q19A#TabChar#Q19B#TabChar#Q19C>
    <cfset answers=#Q1#q2#....>
    Can anyone please help me out?

    Error :
    I am getting the error "Branch target offset too large for
    short" in coldfusion.
    What we are trying to do?
    We are concatenating large numbers of text. We where building
    a lengthly string. We ended up using mutliple variables and
    appending them together at the end to get it to work.
    Appending the lengthy string and writing into a file.
    Just to breif you this is a survey questions and answers we
    are generating text file with tab seperated as delimeters.
    e.g.
    The string I am using is
    <cfset Questions =
    Number#TabChar#Q1#TabChar#Q2A#TabChar#Q2B#TabChar#Q2C#TabChar#Q3A#TabChar#Q3B#TabChar#Q3C #TabChar#Q3D#TabChar#Q3E#TabChar#Q3F#TabChar#Q3G#TabChar#Q4A1#TabChar#Q4A2#TabChar#Q4A3#Ta bChar#Q4A4#TabChar#Q4A5#TabChar#Q4A6#TabChar#Q4B1#TabChar#Q4B2#TabChar#Q4B#TabChar#Q4B4#Ta bChar#Q4B5#TabChar#Q4B6#TabChar#Q4C1#TabChar#Q4C2#TabChar#Q4C3#TabChar#Q4C4#TabChar#Q4C5#T abChar#Q4C6#TabChar#Q4D1#TabChar#Q4D2#TabChar#Q4D3#TabChar#Q4D4#TabChar#Q4D5#TabChar#Q4D6# TabChar#Q4E1#TabChar#Q4E2#TabChar#Q4E3#TabChar#Q4E4#TabChar#Q4E5#TabChar#Q4E6#TabChar#Q4F1 #TabChar#Q4F2#TabChar#Q4F3#TabChar#Q4F4#TabChar#Q4F5#TabChar#Q4F6#TabChar#Q4G1#TabChar#Q4G 2#TabChar#Q4G3#TabChar#Q4G4#TabChar#Q4G5#TabChar#Q4G6#TabChar#Q4H1#TabChar#Q4H2#TabChar#Q4 H3#TabChar#Q4H4#TabChar#Q4H5#TabChar#Q4H6#TabChar#Q4I#TabChar#Q4J#TabChar#Q4K#TabChar#Q5A1 #TabChar#Q5A2#TabChar#Q5A3#TabChar#Q5A4#TabChar#Q5A5#TabChar#Q5A6#TabChar#Q5B1#TabChar#Q5B 2#TabChar#Q5B3#TabChar#Q5B4#TabChar#Q5B5#TabChar#Q5B6#TabChar#Q5C1#TabChar#Q5C2#TabChar#Q5 C3#TabChar#Q5C4#TabChar#Q5C5#TabChar#Q5C6#TabChar#Q5D1#TabChar#Q5D2#TabChar#Q5D3#TabChar#Q 5D4#TabChar#Q5D5#TabChar#Q5D6#TabChar#Q5E#TabChar#Q5F#TabChar#Q5G#TabChar#Q6A#TabChar#Q6B# TabChar#Q6C#TabChar#Q6E#TabChar#Q6F#TabChar#Q6G#TabChar#Q6H#TabChar#Q6I#TabChar#Q6J#TabCha r#Q6K#TabChar#Q7A1#TabChar#Q7A2#TabChar#Q7B1#TabChar#Q7B2#TabChar#Q7C#TabChar#Q7D#TabChar# Q8A#TabChar#Q8B#TabChar#Q8C#TabChar#Q8D#TabChar#Q8E#TabChar#Q8F#TabChar#Q8G#TabChar#Q8H#Ta bChar#Q9A1#TabChar#Q9A2#TabChar#Q9B1#TabChar#Q9B2#TabChar#Q9C1#TabChar#Q9C2#TabChar#Q9D1#T abChar#Q9D2#TabChar#Q9E1#TabChar#Q9E2#TabChar#Q9H1#TabChar#Q9H2#TabChar#Q9I1#TabChar#Q9I2# TabChar#Q9J1#TabChar#Q9J2#TabChar#Q9K1#TabChar#Q9K2#TabChar#Q9L1#TabChar#Q9L2#TabChar#Q9M# TabChar#Q9N#TabChar#Q9O#TabChar#Q9P#TabChar#Q9Q#TabChar#Q9R#TabChar#Q9S#TabChar#Q10A#TabCh ar#Q10B#TabChar#Q10C#TabChar#Q10E#TabChar#Q10F#TabChar#Q10G#TabChar#Q10H#TabChar#Q10I#TabC har#Q10J#TabChar#Q10K#TabChar#Q11A#TabChar#Q11B#TabChar#Q11C#TabChar#Q11D#TabChar#Q11E#Tab Char#Q11F#TabChar#Q11G#TabChar#Q11H#TabChar#Q11I#TabChar#Q11J#TabChar#Q11K#TabChar#Q11L#Ta bChar#Q11M#TabChar#Q11O#TabChar#Q11P#TabChar#Q11Q#TabChar#Q11R#TabChar#Q12A1#TabChar#Q12A2 #TabChar#Q12B1#TabChar#Q12B2#TabChar#Q12C1#TabChar#Q12C2#TabChar#Q12D1#TabChar#Q12D2#TabCh ar#Q12E#TabChar#Q12F#TabChar#Q12G#TabChar#Q12H#TabChar#Q12I#TabChar#Q12J#TabChar#Q12K#TabC har#Q12L#TabChar#Q13A1#TabChar#Q13A2#TabChar#Q13B1#TabChar#Q13B2#TabChar#Q13C1#TabChar#Q13 C2#TabChar#Q13D1#TabChar#Q13D2#TabChar#Q13E1#TabChar#Q13E2#TabChar#Q13H1#TabChar#Q13H2#Tab Char#Q13I1#TabChar#Q13I2#TabChar#Q13J1#TabChar#Q13J2#TabChar#Q13K1#TabChar#Q13K2#TabChar#Q 13L#TabChar#Q13M#TabChar#Q13N#TabChar#Q14A1#TabChar#Q14A2#TabChar#Q14B1#TabChar#Q14B2#TabC har#Q14C1#TabChar#Q14C2#TabChar#Q14D#TabChar#Q14E#TabChar#Q14F#TabChar#Q14G#TabChar#Q14H#T abChar#Q15A#TabChar#Q15B#TabChar#Q15C#TabChar#Q15D#TabChar#Q15E#TabChar#Q15F#TabChar#Q15G# TabChar#Q15H#TabChar#Q16A#TabChar#Q16B#TabChar#Q16C#TabChar#Q16D#TabChar#Q16E#TabChar#Q16F #TabChar#Q17A1#TabChar#Q17A2#TabChar#Q17A3#TabChar#Q17B#TabChar#Q17C#TabChar#Q17D#TabChar# Q17E#TabChar#Q17F#TabChar#Q17G#TabChar#Q17H#TabChar#Q18A1#TabChar#Q18A2#TabChar#Q18B1#TabC har#Q18B2#TabChar#Q18C1#TabChar#Q18C2#TabChar#Q18D1#TabChar#Q18D2#TabChar#Q18E1#TabChar#Q1 8E2#TabChar#Q18H1#TabChar#Q18H2#TabChar#Q18I1#TabChar#Q18I2#TabChar#Q18J1#TabChar#Q18J2#Ta bChar#Q18K1#TabChar#Q18K2#TabChar#Q18L1#TabChar#Q18L2#TabChar#Q18M1#TabChar#Q18M2#TabChar# Q18N1#TabChar#Q18N2#TabChar#Q18O1#TabChar#Q18O2#TabChar#Q18P1#TabChar#Q18P2#TabChar#Q18Q1# TabChar#Q18Q2#TabChar#Q18R1#TabChar#Q18R2#TabChar#Q18S1#TabChar#Q18S2#TabChar#Q18T1#TabCha r#Q18T2#TabChar#Q18U1#TabChar#Q18U2#TabChar#Q18V1#TabChar#Q18V2#TabChar#Q18W1#TabChar#Q18W 2#TabChar#Q18X1#TabChar#Q18X2#TabChar#Q18Y1#TabChar#Q18Y2#TabChar#Q18Z1#TabChar#Q18Z2#TabC har#Q18A11#TabChar#Q18A12#TabChar#Q18B11#TabChar#Q18B12#TabChar#Q18C11#TabChar#Q18C12#TabC har#Q18D11#TabChar#Q18D12#TabChar#Q18E11#TabChar#Q18E12#TabChar#Q18H11#TabChar#Q18H12#TabC har#Q18I11#TabChar#Q18I12#TabChar#Q18J11#TabChar#Q18J12#TabChar#Q18K11#TabChar#Q18K12#TabC har#Q18L11#TabChar#Q18L1Z#TabChar#Q18M11#TabChar#Q18M12#TabChar#Q18N11#TabChar#Q18N12#TabC har#Q18O11#TabChar#Q18O12#TabChar#Q18P11#TabChar#Q18P12#TabChar#Q18Q11#TabChar#Q18Q12#TabC har#Q18R11#TabChar#Q18R12#TabChar#Q18S11#TabChar#Q18S12#TabChar#Q18T11#TabChar#Q18T12#TabC har#Q18U11#TabChar#Q18U12#TabChar#Q18V11#TabChar#Q18V12#TabChar#Q18W11#TabChar#Q18W12#TabC har#Q18X11#TabChar#Q18X12#TabChar#Q18Y11#TabChar#Q18Y12#TabChar#Q18Z11#TabChar#Q18Z12#TabC har#Q18A21#TabChar#Q19A#TabChar#Q19B#TabChar#Q19C>
    <cfset answers=#Q1#q2#....>
    Can anyone please help me out?

  • Branch target offset too large for short - using CFThread

    I am just starting to get into using CFThread.  I have a process I am working on to allow clients to order background reports on multiple applicants simultaneously.  I am doing this using CFThread.  Through some trial and error I discovered that I needed to var scope the variables that are used in the CFC's that do the bulk of the report processing.  As soon as I did that I started getting the error "                                                                                                                                                      Branch target offset too large for short". Everything I have read on this error basically says I have too much code in the CFC which doesn't make sense as I am using this CFC in several other places in the site without error.  The problem only occured after var scoping my variables in the CFC and them sticking that CFC inside a CFTHread tag.
    Has only one seen anything like this before?
    Thanks

    Haven't seen it, no.
    Can you revert to your un-VARed code, and then re-VAR the variables one by one, retesting between each, and see if a specific one gives you the error?
    I don't know what this might tell you, but it might help focus where to look.
    NB: you should be VARing your variables within functions as a matter of course, not simply in situations in which the code is being called via <cfthread>.
    Adam

  • Offset too large for short?

    HI I have a large function that works just fine until I added
    this large spanning cfif statement to essentially break out of my
    function if a condition didn't exist. After I added it I got the
    error:
    Branch Target offset too large for short
    Also this function doesn't contain any cftransaction tags. Is
    there anyway to increase memory or something to get rid of
    this.

    Branch Target offset too large for short

  • BUG: Web service returns request XML as response when result too large

    Hi,
    sorry for cross-posting, but the Web Services forum seems to be quite abandoned and this is an urgent issue for me.
    I have a web service returning some records of a given type (created using JDeveloper 10.1.3.3). The running environment and the service implementation do not seem to make any difference, as the situation is the same whether running it in embedded OC4J or in AS 10.1.3.1, and whether it is generated from a PL/SQL procedure or a method of a plain Java class.
    The problem is that if the result of this web service is too large (contains a lot of records), then the processing halts in some Oracle class in some web service library, so not in a debuggable generated web service source or in the service implementation itself.
    I think that the XML processing halts because of a "java.lang.OutOfMemoryError: Java heap space".
    Then a more serious problem follows: the service doesn't return a fault message but the original request XML as a response. Obviously, this can lead to some really unexpected errors.
    To reproduce this error:
    1. Create a Java class with a method returning an array of an arbitrary type, of the size specified in an input parameter.
    2. Create a web service from this class.
    3. Call it multiple times increasing the size parameter in every call until you get back the request as response or any error message.
    For example:
    - if you test the web service using the web page generated to access the endpoint, then you can see the response XML - in case you don't get an Internal Server Error (Java heap space).
    - if you use a generated web service proxy for testing, then it will give an error saying "unexpected element name: expected={namespace}someOperationResponseElement
    actual={namespace}someOperationElement".
    Any ideas how to locate / solve this problem?
    Regards,
    Patrik

    Patrik,
    the usual recommendation is to try with 10.1.3.3 instead of 10.1.3.1 to exclude you are hunting down an already fixed issue. From what you describe, the error seems less JDeveloper related than OC4J or OracleAs.
    So in case it reproduces in 10.1.3.3 I suggest to create a testcase and open a service request with support, or try the OC4J forum in case its known there.
    Frank

  • TDMS error -2511 Offset Too Large

    I have some data on a tdms file, but when opening I get the error shown below
             Cannot load file "XXX" with loader "TDMS".
             further information:
             "TDS Exception in Initialize: Tds Error: TdsOffsetTooLarge(-2511):" 
    I have tried deleting the index file and the error persist. 
    Is there a way to get past this error or is the file beyond repair?
    Thanks
    Casey
    Attachments:
    fiber_calibration408_21_14.tdms ‏319 KB

    Hi, 
    The last segment of the file is incomplete. It only contains a few metadata. Delete it and the file now can be opened. The recovered file is attached.
    Attachments:
    fiber_calibration408_21_14.tdms ‏318 KB

  • Problem with offset value: field type p does not permit subfield access

    Hi experts,
    In my table am having one field ,
    Filed name : planfinish
    data type : dec    Length : 15
    data store in this field is :    12.05.2010 03:59:00 this format.
    i want to remove year 2010 from this above data by using offset.
    i have try with code :   lv_year = lv_planfininsh+6(4).      n also declare lv_year as dec 15.
    still am getting error. field type p does not permit subfield access
    kindly suggest on this.
    thx in advance.

    a packed decimal field (P) is a numeric field that is always 8 bytes long.  The (15) is the DISPLAY or max number of digits characteristic.  Like all true numeric types (not 'N'), offset is meaningless and you do NOT have format 12.05.2010 03:59:00  in a P field!  You have 15 digits and a sign, and any decimal point is implied by your data declaration.
    Look at keyword CONVERT if this is a timestamp field.

  • DATA_OFFSET_TOO_LARGE dump for field symbol assignment/offset

    Hi,
    I am getting a DATA_OFFSET_TOO_LARGE dump for field symbol assignment/offset.
    Dump says, 'In the running program "ZTEST", the field "<WA_FINAL>" of the type "u" and length 2174 was to be accessed with the offset 2204. However, subfield accesses with an offset specification that is not smaller than the field length are not permitted.'
    Here <WA_FINAL> have to be 'TYPE any' to avoid assignment conflicts later in the logic.
    It's basically dumping at <WA_FINAL>+V_LEN(V_OFF) = WA_DATA-FIELD1.
    Here V_LEN LIKE DD03L-LENG & V_OFF LIKE DD03L-LENG.
    Please suggest how to get rid of this dump.
    Regards,
    Ritesh.

    The dump is very clear, your field is smaller than the offset.
    The problem is most likely how you are calculating v_len and v_off.
    You could change that, but there is probably an easier and faster way to do what you are trying there. Is <wa_final> something like a line from a file or what?

  • Org.eclipse.swt.SWTException: Invalid thread access - Action struts

    Hi
    I�m runing this WordSearchReplace java class that I got here in this forum, and I�m runing it doing search and replace in Ms word document if I run just one time it works ok, but if I run twice i got that erro, I�m runing that java class in my Action on struts.
    I don�t know what is occur.
    Can you help me?
    Thanks
    Following the example of call, mistakes and java class.
    //======RUNING THE WordSearchReplace JAVA CLASS=========
    WordSearchReplace wordSR = null;
    try {
    String[] v_text = {"#V46#","#V42#"};
    String[] v_replace = {"Texto1","Texto2"};
    wordSR = new WordSearchReplace();
    wordSR.openFile(v_path+v_file_name);
    for ( int i=0; i<v_text.length; i++ )
    wordSR.replace( v_text, v_replace[i] );
    wordSR.save();
    wordSR.closeFile();
    catch(Exception e) {
    System.out.println("Caught: ERRO ao Executar WordSearchReplace " + e.getClass().getName());
    System.out.println(e.getMessage());
    e.printStackTrace(System.out);
    finally {
    if(wordSR != null) {
    try {
    wordSR.dispose();
    catch(Exception innerE) {
    System.out.println("Caught: " + innerE.getClass().getName());
    System.out.println(innerE.getMessage());
    innerE.printStackTrace(System.out);
    //========ERRO ===========================
    17:24:49,093 INFO [STDOUT] Invalid thread access
    17:24:49,093 INFO [STDOUT] org.eclipse.swt.SWTException: Invalid thread access
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.SWT.error(SWT.java:3563)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.SWT.error(SWT.java:3481)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.SWT.error(SWT.java:3452)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.widgets.Widget.error(Widget.java:432)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.widgets.Shell.<init>(Shell.java:274)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.widgets.Shell.<init>(Shell.java:265)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.widgets.Shell.<init>(Shell.java:218)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.widgets.Shell.<init>(Shell.java:156)
    17:24:49,093 INFO [STDOUT] at br.com.tryblob.view.WordSearchReplace.<init>(WordSearchReplace.java:38)
    17:24:49,093 INFO [STDOUT] at br.com.tryblob.view.WordAction.execute(WordAction.java:70)
    17:24:49,093 INFO [STDOUT] at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    17:24:49,093 INFO [STDOUT] at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    17:24:49,093 INFO [STDOUT] at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    17:24:49,093 INFO [STDOUT] at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    17:24:49,093 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
    //====== WordSearchReplace JAVA CLASS=========
    import java.util.ArrayList;
    import java.util.Iterator;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.SWTException;
    import org.eclipse.swt.internal.ole.win32.TYPEATTR;
    import org.eclipse.swt.ole.win32.OLE;
    import org.eclipse.swt.ole.win32.OleAutomation;
    import org.eclipse.swt.ole.win32.OleClientSite;
    import org.eclipse.swt.ole.win32.OleFrame;
    import org.eclipse.swt.ole.win32.OleFunctionDescription;
    import org.eclipse.swt.ole.win32.OlePropertyDescription;
    import org.eclipse.swt.ole.win32.OleParameterDescription;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.ole.win32.Variant;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.BufferedWriter;
    import java.io.IOException;
    public class WordSearchReplace {
         private static final String PROG_ID = "Word.Application";
         private static final int WD_REPLACE_ALL = 2;
         private static final int WD_FIND_CONTINUE = 1;
         private Shell shell = null;
         private OleFrame frame = null;
         private OleClientSite wordSite = null;
         private OleAutomation wordAutomation = null;
         private OleAutomation activeDocumentAutomation = null;
         private boolean cleaned = false;
         * Create a new instance of the WordSearchReplace class.
         public WordSearchReplace() {
              this.shell = new Shell();
              this.frame = new OleFrame(this.shell, SWT.NONE);
              this.wordSite = new OleClientSite(this.frame, SWT.NONE, WordSearchReplace.PROG_ID);
         this.wordAutomation = new OleAutomation(this.wordSite);
         * Open an MS Word file. This is a file whose name ends with the extension
         * .doc or .doc and which conforms to the correct format.
         * Note; if it is possible to open the named file, an attempt is made
         * to cache an OleAutomation object referencing that file which will be
         * referred to in future as the active document. Most other methods
         * need to capture references to further OleAutomation(s) that have the
         * active document as their root.
         * @param fileName An instance of the String class that encapsulates the
         * path to and name of the file that is to be opened.
         * Note; the full path name must be supplied as Word
         * will be opening the file and no assumptions can
         * safely be made concerning the applications 'home'
         * folder.
         * @throws NullPointerException if a null value is passed to the fileName
         * parameter.
         * @throws FileNotFoundException if it is not possible to locate the
         * file.
         * @throws IllegalArgumentException if the name of the file does not end
         * with either the .dot or .doc extensions.
         * @throws SWTException if a problem occurs whilst invoking any of the OLE
         * methods.
         public void openFile(String fileName) throws SWTException,
         NullPointerException,
         FileNotFoundException,
         IllegalArgumentException {
              OleAutomation documentsAutomation = null;
              int[] id = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              try {
                   // Check the the file name is not null
                   if(fileName == null) {
                        throw new NullPointerException("Null value passed to " +
                             "fileName parameters of the openFile() method.");
                   // Check the the file names ends with '.dot' or '.doc'.
                   // Remember to include templates and docuemnts
                   if(!(fileName.endsWith(".doc")) && !(fileName.endsWith(".dot"))) {
                        throw new IllegalArgumentException(
                             "The filename must end with the extensions \'.doc\' or \'.dot\'");
                   // Check that the file exists
                   File fileToPrint = new File(fileName);
                   if(!(fileToPrint.exists())) {
                        throw new FileNotFoundException("The file " +
                        fileName +
                        "cannot be found.");
                   // From the application, get an automation for the Documents property
                   documentsAutomation = this.getChildAutomation(this.wordAutomation,
                   "Documents");
                   // Get the ID of the Open method
                   id = documentsAutomation.getIDsOfNames(new String[]{"Open"});
                   if(id == null) {
                        throw new SWTException("It was not possible to recover an " +
                        "identifer for the Open method in WordSearchReplace.openFile().");
                   // Build an array of parameters - holds just the file name
                   arguments = new Variant[1];
                   arguments[0] = new Variant(fileName);
                   // Invoke the Open method on the Documents property
                   invokeResult = documentsAutomation.invoke(id[0], arguments);
                   // If the call to invoke the open method failed, throw an SWTException
                   // to terminate processing.
                   if(invokeResult == null) {
                        throw new SWTException("An error occurred whilst invoking the " +
                             "Open method for the following file: " +
                             fileName +
                             " in WordSearchReplace.openFile().");
                   // If it was possible to open the document successfully, grab an
                   // automation object referencing the active document here.               
                   else {
                        this.activeDocumentAutomation = this.getChildAutomation(
                             this.wordAutomation, "ActiveDocument");
              finally {
                   // If the automation was instantiated then dispose of it to
                   // release resources. This OleAutomation was only required
                   // to open the file and can safely be released here.
                   if(documentsAutomation != null) {
                        documentsAutomation.dispose();
         * Save the currently open file - the active document.
         * @throws SWTException if a problem occurs whilst invoking any of the OLE
         * methods.
         public void save() throws SWTException {
              int[] id = null;
              Variant invokeResult = null;
              // From the automation for the ActiveDocument object, get an id for
              // the Save method
              id = this.activeDocumentAutomation.getIDsOfNames(new String[]{"Save"});
              // If it was not possible to recover the id of the Save
              // method, throw an exception to notify the user and terminate
              // processing.
              if(id == null) {
                   throw new SWTException("Unable to obtain an automation for " +
                        "the Save method in WordSearchReplace.save().");
              // Invoke the Save method and catch the value returned
              invokeResult = this.activeDocumentAutomation.invoke(id[0]);
              // If a null value was returned then the invocation of the
              // Save method failed. Throw an exception to notify the
              // user and terminate processing.
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "Save method in WordSearchReplace.save().");
         * Save the active document using the name provided.
         * @param fileName Am instance of the String class encapsulating the name
         * for the file. Again, the path to and name of the file should
         * be supplied.
         * @throws NullPointerException if a null value is passed to the fileName
         * parameter.
         * @throws IllegalArgumentException if either an empty String is passed
         * to the fileName parameter or if the files name does not end
         * with one of the two permissible extensions - .dot and .doc
         public void saveAs(String fileName) throws SWTException,
         NullPointerException,
         IllegalArgumentException {
              int[] id = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              // If the fileName parameter is passed a null
              // value, throw an exception.
              if(fileName == null) {
                   throw new NullPointerException("A null value was passed to " +
                        "the fileName parameter of WordSearchReplace.saveAs().");
              // If the fileName parameter has been passed an empty String
              // then again throw an exception.
              if(fileName.length() == 0) {
                   throw new NullPointerException("An empty string was passed " +
                        "to the fileName parameter of WordSearchReplace.saveAs().");
              // Finally, make sure the file name ends in either
              // .doc or .dot.
              if((!fileName.endsWith(".dot")) && (!fileName.endsWith(".doc"))) {
                   throw new IllegalArgumentException("An illegal file name was " +
                        "passed to the fileName parameter of " +
                        "WordSearchReplace.saveAs(). The file name must " +
                        "end in \'.dot\' or \'.doc\'.");
              // From the automation for the ActiveDocument object, get an id for
              // the SaveAs method
              id = this.activeDocumentAutomation.getIDsOfNames(new String[]{"SaveAs"});
              // If it was not possible to recover the id of the SaveAs
              // method, throw an exception to notify the user and terminate
              // processing.
              if(id == null) {
                   throw new SWTException("Unable to obtain an automation for " +
                        "the SaveAs method in WordSearchReplace.saveAs().");
              // Build the array of arguments that will be passed to the invoke
              // method when the SaveAs method is invoked. In this case, this
              // array will contain a single member - a String object encapsulating
              // the path to and name of the output file.
              arguments = new Variant[1];
              arguments[0] = new Variant(fileName);
              // Invoke the SaveAs method and catch the value returned
              invokeResult = this.activeDocumentAutomation.invoke(id[0], arguments);
              // If a null value was returned then the invocation of the
              // PrintOut method failed. Throw an exception to notify the
              // user and terminate processing.
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "SaveAs method in WordSearchReplace.saveAs().");
         * Mimics Words 'replace' functionality by searching the active
         * document for evey string of characters that matches the value passed to
         * the searchTerm parameter and replacing them with the string of
         * characters passed to the replacementTerm method.
         * It is possible to code a VBA macro within Word that will perfrom a serach
         * and replace. That code would look like the following;
         * <pre>
         *      Selection.Find.ClearFormatting
    *     Selection.Find.Replacement.ClearFormatting
    *     With Selection.Find
    *      .Text = "serach"
    *      .Replacement.Text = "search"
    *      .Forward = True
    *      .Wrap = wdFindContinue
    *      .Format = False
    *      .MatchCase = False
    *      .MatchWholeWord = False
    *      .MatchWildcards = False
    *      .MatchSoundsLike = False
    *      .MatchAllWordForms = False
    *     End With
    *     Selection.Find.Execute Replace:=wdReplaceAll
    * <pre>
    * and this method will 'automate' it.
         * @param searchTerm An instance of the String class that will encapsulate
         * the series of characters that should be replaced.
         * @param replacementTerm An instance of the String class that will
         * encapsulate the series of characters that should replace the
         * searchTerm.
         * @throws NullPointerException if a null value is passed to either the
         * searchTerm or replacementTerm methods.
         * @throws SWTException if a problem occurs when invoking any of the
         * OLE methods.
         public void replace(String searchTerm,
         String replacementTerm) throws SWTException,
         NullPointerException {
              OleAutomation selectionFindAutomation = null;
              OleAutomation childAutomation = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              int[] id = null;
              int[] namedArguments = null;
              boolean success = true;
              // Validate the searchTerm parameter and throw exception if
              // null value passed.
              if(searchTerm == null) {
                   throw new NullPointerException("Null value passed to " +
                             "searchTerm parameter of the replace() method.");
              // Validate the replacementTerm parameter and throw exception if
              // null value passed.
              if(replacementTerm == null) {
                   throw new NullPointerException("Null value passed to " +
                             "replacementTerm parameter of the replace() method.");
              // Most of the VBA instructions used to perform the search and
              // replace functionality and child automations of Selection.Find,
              // therefore, it is wise to cache that automation first.
              // From the application, get an automation for the Selection property
              childAutomation = this.getChildAutomation(this.wordAutomation,
                   "Selection");
              selectionFindAutomation = this.getChildAutomation(childAutomation,
              "Find");
              // Next, using the cached automation, invoke the 'ClearFormatting'
              // method, validate the returned value and invoke the method.
              // Selection.Find.ClearFormatting
              id = selectionFindAutomation.getIDsOfNames(new String[]{"ClearFormatting"});
              if(id == null) {
                   throw new SWTException("It is not possible to recover an identifier " +
                        "for the ClearFormatting method in WordSearchReplace.replace() " +
                        "when clearing the formatting for the search string.");
              invokeResult = selectionFindAutomation.invoke(id[0]);
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "ClearFormatting method in WordSearchReplace.repace() " +
                        "when clearing formatting for the search string.");
              // Now, perform the same function but for the replacement string.
              // Selection.Find.Replacement.ClearFormatting
              childAutomation = this.getChildAutomation(selectionFindAutomation,
              "Replacement");
              id = childAutomation.getIDsOfNames(new String[]{"ClearFormatting"});
              if(id == null) {
                   throw new SWTException("It is not possible to recover an identifier " +
                        "for the ClearFormatting method in WordSearchReplace.replace() " +
                        "when clearing the formatting for the replacement string.");
              invokeResult = childAutomation.invoke(id[0]);
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "ClearFormatting method in WordSearchReplace.repace() " +
                        "when clearing formatting for the replacement string.");
              // Firstly, set the search text.
              // .Text = "search term"
              arguments = new Variant[1];
              arguments[0] = new Variant(searchTerm);
              success = this.setPropertyValue(selectionFindAutomation, "Text", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Text " +
                        "property for the search string in WordSearchReplace.replace().");
              // Next, the replacement text
              // .Replacement.Text = "replacement term"
              childAutomation = this.getChildAutomation(selectionFindAutomation,
              "Replacement");
              arguments[0] = new Variant(replacementTerm);
              success = this.setPropertyValue(childAutomation, "Text", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Text property" +
                        " for the replacement string in WordSearchReplace.replace().");
              // Set the direction of the search - forward in this case.
              // .Forward = True
              arguments[0] = new Variant(true);
              success = this.setPropertyValue(selectionFindAutomation, "Forward", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Forward " +
                        "property in WordSearchReplace.replace().");
              // Tell the search to wrap. Note the literal wdFindContinue relates to
              // a constant that is defined within Word. I have provided a static
              // final to replace it called WD_FIND_CONTINUE
              // .Wrap = wdFindContinue
              arguments[0] = new Variant(WordSearchReplace.WD_FIND_CONTINUE);
    // System.out.println("jose vieira WD_FIND_CONTINUE:" + arguments[0]);
              success = this.setPropertyValue(selectionFindAutomation, "Wrap", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Wrap " +
                        "property in WordSearchReplace.replace().");
              // Set the Format property to False.
              // .Format = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "Format", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Format " +
                        "property in WordSearchReplace.replace().");
              // Set the MatchCase property to false.
              // .MatchCase = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchCase", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the MatchCase " +
                        "property in WordSearchReplace.replace().");
              // Set the MatchWholeWord property to false.
              // .MatchWholeWord = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchWholeWord", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchWholeWord property in WordSearchReplace.replace().");
              // Set the MatchWildCards property to false.
              // .MatchWildcards = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchWildCards", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchWildCards property in WordSearchReplace.replace().");
              // Set the MatchSoundsLike property to false.
              // .MatchSoundsLike = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchSoundsLike", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchSoundsLike property in WordSearchReplace.replace().");
              // Set the MatchAllWordForms property to false.
              // .MatchAllWordForms = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchAllWordForms", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchAllWordForms property in WordSearchReplace.replace().");
              // Invoke the Execute command passing the correct value to the Replace
              // parameter. Again, wdReplaceAll is a constant that I have provided
              // a ststic final for called WD_REPLACE_ALL
              // Selection.Find.Execute Replace:=wdReplaceAll
              id = selectionFindAutomation.getIDsOfNames(new String[]{"Execute", "Replace"});
              if(id == null) {
                   throw new SWTException("It was not possible to recover an identifier " +
                        "for the Execute method in WordSearchReplace.replace().");
              arguments = new Variant[1];
              arguments[0] = new Variant(WordSearchReplace.WD_REPLACE_ALL);
              namedArguments = new int[1];
              namedArguments[0] = id[1];
              // There was some indication that the invokeNoReply method should
              // be used when making this call but no, invoke SEEMS to work well
              //selectionFindAutomation.invokeNoReply(id[0], arguments, namedArguments);
              invokeResult = selectionFindAutomation.invoke(id[0], arguments, namedArguments);
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred trying to invoke the " +
                   "Execute method in WordSearchReplace.replace().");
         * Close the active document.
         * @throws SWTException if a problem is encountered invoking any of the
         * OLE methods.
         public void closeFile() throws SWTException {
              int[] id = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              try {
                   // From the OleAutomation referencing the active document, recover
                   // the id of the Close method.
                   id = this.activeDocumentAutomation.getIDsOfNames(new String[]{"Close"});
                   // If it was not possible to recover the id of the Close
                   // method then throw an exception to notify the user and
                   // terminate processing.
                   if(id == null) {
                        throw new SWTException("It was not possible to recover an " +
                             "identifier for the Close method in " +
                             "WordSearchReplace.closeFile().");
                   // Invoke the Close method on the ActiveDocument automation
                   invokeResult = this.activeDocumentAutomation.invoke(id[0]);
                   // If the invocation of the Close method failed, throw an
                   // exception to notify the user and terminate processing.
                   if(invokeResult == null) {
                        throw new SWTException(
                             "An error occurred invoking the Close method in " +
                             "WordSearchReplace.closeFile().");
              finally {
                   if(this.activeDocumentAutomation != null) {
                        this.activeDocumentAutomation.dispose();
         * Release resources.
         public void dispose() throws SWTException {
              try {
                   // Set the cleaned flag to true. This prevents the method from
                   // running again if it is called from the finalize() method
                   this.cleaned = true;
                   // From the word automation, recover the id of the Quit method
                   int[] id = this.wordAutomation.getIDsOfNames(new String[]{"Quit"});
                   // If the id of the Quit method cannot be recovered
                   // throw an exception - not much good really though.
                   if(id == null) {
                        throw new SWTException("Unable to obtain an id for the Quit " +
                             "property in WordSearchReplace.dispose().");
                   // Invoke Quit
              Variant result = this.wordAutomation.invoke(id[0]);
              // If an error occurs during the invocation, throw an exception.
              // Again though that exception is of limited value.
              if(result == null) {
                   throw new SWTException("A problem occurred trying to invoke the " +
                        "Quit method in WordSearchReplace.dispose().");
         finally {
              // Finally, dispose of the word application automation.
              this.wordAutomation.dispose();
         * The finalize() method has been over-ridden to ensure that resources
         * are correctly released if a WordSearchReplace object is created but
         * not disposed of properly before it becomes eligible for garbage
         * collection. The cleaned flag is used as acheck to ensure that the
         * dispose() method cannot be called more than once.
         public void finalize() throws Throwable {
              if(!this.cleaned) {
                   this.dispose();
         * Creates and returns a 'child' OleAutomation object. The object model
         * employed by Word, Excel and the like, arrange objects, methods and
         * properties hierarchically. To invoke a method, it is often necessary
         * to iterate through this hierarchy from parent to child and this method
         * supports that process.
         * @param automation An OleAutomation object that references the parent
         * automation.
         * @param childName An instance of the String class that encapsulates the
         * name of the child automation.
         * @throws SWTException if a problem is encountered invoking one or
         * other of the OLE methods.
         private OleAutomation getChildAutomation(OleAutomation automation,
         String childName) throws SWTException {
              // Try to recove the unique identifier for the child automation
              int[] id = automation.getIDsOfNames(new String[]{childName});
              // If the identifier cannot be found then throw an exception to
              // terminate processing.           
              if (id == null) {
                   throw new SWTException(
                        "A problem occurred trying to obtain and id for: " +
                   childName +
                   "in the getChildAutomation() method.");
              // SWT's implementation of OLE referes to all of Words objects, methods
              // and properties using the single term 'property'. The next stage
              // therefore is to recover a refence to the 'property' that relates
              // to the child automation.
              Variant pVarResult = automation.getProperty(id[0]);
              // If it is not possible to recover a 'property' for the child
              // automation, then throw an SWTException.
              if (pVarResult == null) {
                   throw new SWTException(
                        "A problem occurred trying to obtain an automation for property: " +
                   id[0] +
                   " in the getChildAutomation() method.");
              // As we are after a child automation in this instance, call the
              // getAutomation() method on the 'property'.
              return(pVarResult.getAutomation());
         * Sets the value of a property.
         * @param automation An instance of the OleAutomation class that will
         * hold a reference to the properties parent automation object
         * @param propertyName An instance of the String class that encapsulates the
         * name of the property whose value is to be set.
         * @param arguments An array of type Variant whose elements contain the
         * values that will be set for the named property.
         * @return A primitive boolean value that indicates whether or not the
         * properties value was successfully set.
         * @throws NullPointerException will be thrown if a null value is passed to
         * any of the methods three arguments.
         * @throws IllegalArgumentException will be thrown if an empty String
         * is passed to the propertyName parameter or if an empty array
         * is passed to the arguments parameter. Note, no check is made
         * on the vallues of the elements in the arguments array.
         * @throws SWTException will be thrown if a problem is encountered
         * imvoking any of the OLE methods.
         private boolean setPropertyValue(OleAutomation automation,
         String propertyName,
         Variant[] arguments) throws SWTException,
         NullPointerException,
         IllegalArgumentException {
              // Validate the various parameters
              if(automation == null) {
                   throw new NullPointerException(
                        "A null value was pas

    Alright, I'll try to keep it as simple as possible. If that's not going to work out, we can always complicate it later :)
    I suppose you had a look at the link and I assume you know about threads.
    We can easily fix this issue if you are instantiating, calling and disposing the object within one thread, e.g. you use it only in one method like
    public mySwtExecutionMethod(String fileName){
      WordSearchReplace replace = new WordSearchReplace();
      // do your replacing here
      replace.dispose();
      // no reference to replace is left so it won't escape this thread
    }Now the fix for your class becomes simple. As you remember from the link, you have to call all methods from within the UI thread. We will now create a Display every time upon instantiation of WordSearchReplace, so the current thread becomes the UI thread.
    I had a look at the constructor, and the overhead doesn't seem that bad, provided this is not a dedicated search&replace server.
    private final Display display;
    public WordSearchReplace()
         display = new Display(); // create display
         this.shell = new Shell(display);   // initialize shell with new display so this thread becomes the UI thread
         this.frame = new OleFrame(this.shell, SWT.NONE);
         this.wordSite = new OleClientSite(this.frame, SWT.NONE, WordSearchReplace.PROG_ID);
         this.wordAutomation = new OleAutomation(this.wordSite);
    }Since we always create a new Display, we should also dispose it. There is already a dispose() method, so we just have to add to it
    display.dispose();That's it!
    If you hold on longer to your reference and this isn't working for you, you'd have to do a lot more synchronizing and that the UI thread still exist as long as the reference.
    Wish you good luck

  • "Invalid Thread Access" - Consuming WSDL in OSB

    Hi,
    Creating a business service I am trying to define the service type by consuming WSDL. I get the error "Invalid Thread Access" with no additional details.
    The URI is accessible in my browser and works when i import it into jdeveloper. through soapUI, I can able to test this service.
    The interesting point here is I am not able to ping that server. (cmd-->ping service name). Here my doubt is do they(as Am invoking third party service) need to open any port for us or not.
    Please advice me
    Thanks,

    Thank you Vlad, I want to tell you some thing about this WSDL.
    Size of the wsdl :    5.60 MB and It has 93,671 lines of coding in that file.   Is it causes problem
    or
    Am invoking CRM Web Service and they clearly mention in my mail that "Please use HTTPS because SSL has been applied to your sites" 
    do I need to create key store for their Certificates.
    Please Advise me.
    Thanks,
    Viswas

  • [OSB] "Invalid Thread Access" - Consuming WSDL

    Creating a business service I am trying to define the service type by consuming WSDL. I get the error "Invalid Thread Access" with no additional details.
    The URI is accessable in my browser and works when i import it into jdeveloper.
    Working on Oracle Linux in Eclipse OSB
    Any help would be great.
    Thanks,
    Nick

    Thank you Vlad, I want to tell you some thing about this WSDL.
    Size of the wsdl :    5.60 MB and It has 93,671 lines of coding in that file.   Is it causes problem
    or
    Am invoking CRM Web Service and they clearly mention in my mail that "Please use HTTPS because SSL has been applied to your sites" 
    do I need to create key store for their Certificates.
    Please Advise me.
    Thanks,
    Viswas

  • Hyperion Reporting and Analysis - DAS, IR and Job Services Replication..

    Dear All,
    We are on Hyperion System 9.3.1 on Windows box and Repository in Oracle 10g Database. We have around 300 Interactive scheduled jobs.
    When these jobs are getting executed Hyperion Services are getting hang and In logs we are getting "Process out of memory..".
    In order to overcome "Process out of Memory.. Exiting" error. We need to replicate DAS, Interactive Reporting and Job Services on the same machine.
    I am doing Hyperion's IR, DAS, JOB Services Replication in Development environment. To achieve the same I performed the following tasks :
    # I have installed and configured Hyperion System 9.3.1 below components on MS Windows XP professional SP2 and Repository in Oracle 10g database.
    Hyperion Shared Services 9.3.1
    Hyperion Reporting and Analysis BI+ Services
    Hyperion Reporting and Analysis UI+ Services
    Every thing was configured fine.
    # To replicate the IR, DAS and Job Services. I started the Hyperion Reporting and Analysis BI+ Setup on the same machine then I select IR, DAS and Job Services.
    # Next I started Configuration Utility. Which ask me to configure Database. I selected the same database which I used for BI Services previously. Database Configuration was successful.
    # I changed the Port as below
         Core Services to 7801 instead of 6801
         Chaged the port for Job Service 7796 instead of 6796.
    # Next started Service Configurator where System was showing one more Job Service (JF2_<hostname>) in Remote Service Configurator. And in Local Service Configurator System was showing new BI and DAS. Then I configured Data Sources in DAS.
    # Started the Services.
    Next I started the Scheduled Jobs. It is taking same time as earlier. In logs it is showing that Only JF2_<hostname> Service is getting used. System is not using JF1_<HOSTNAME> anymore.
    I have few query regarding this.
    1) Why Configuration Utility didn't ask for GSM host and Port? Do I need to configure it manually?
    2) I have not chaged the port for DAS and IR Services. my concern is regarding port usage by new DAS and IR Services ? Do I need to configure it or It will be managed by system itself?
    Please show me the direction. Any help would be highly appreciable.
    Regards,
    Manmohan Sharma

    We have replicated the Hyperion Reporting and Analysis Services by changing the port number of Replicated Services to non-default port.
    Services are working fine.
    Regards,
    Manmohan Sharma

  • ABEND RS_EXCEPTION (000): Part-field access (offset = 45, length = 45) ...

    Hi BI Experts,
    We are getting error below when run the query in BEx Broadcaster whereas the same query can be run without error in RSRT. One of the object used in the query is 0TCTBISBOBJ (BI Application Obj). When i remove this object from the query, i am able to execute the query in BEx Broadcaster. Please advice.
    Error: com.sap.ip.bi.base.application.exceptions.AbortMessageRuntimeException
    com.sap.ip.bi.base.exception.BIBaseRuntimeException ERROR
    com.sap.ip.bi.base.application.exceptions.AbortMessageRuntimeException
    Log ID: 00144F25CCDC303C0000010600005CBD00046ADC8504A84D
    Initial cause
    ABEND RS_EXCEPTION (000): Part-field access (offset = 45, length = 45) to a data object of the size 60 exceeds valid boundaries.
      MSGV1: Part-field access (offset = 45, length = 45) to a
      MSGV2: data object of the size 60 exceeds valid
      MSGV3: boundaries.
    Stack trace: com.sap.ip.bi.base.application.exceptions.AbortMessageRuntimeException: Termination message sent
    We have recently upgraded to SAP BI7.0 SP19.
    Thanks in advance.
    Best Regards,
    Pei Fung

    Can someone throw some light on this? Thanks.

  • Invalid thread access

    This morning when I opened Flex Builder it fails to open any
    of the files mxml or as for editing and instead gives me the
    following error:-
    Reason for the failure: "Invalid thread access"
    On checking the details it has the following exception in
    there, please advise.
    org.eclipse.swt.SWTException: Invalid thread access

    any advice?

  • SWT:::INVALID THREAD ACCESS

    When im tryin to call a method from sum other class .
    It throws
    org.eclipse.swt.SWTException: Invalid thread access
    i know this has to do with ui threadsand we have to wrap the display by SyncEXec......
    but im not able to do it,,,
    can ne1 help??

    org.eclipse.swt.widgets.Display.asyncExec(new Runnable() {
       public void run() {
         // do your stuff here
    });if only they'd document these things, eh. it's not like it's all there in the help menu, either.....

Maybe you are looking for

  • Multiple Rows in Footer's part of table

    H i all of you I'm looking for a way to display multiple rows in a footer (which is repeated on every pages) based upon an internal table. Have you ever try to do this ? Brice Configuration : ADS 8.1 Edited by: Brice VINCENT on Aug 26, 2009 5:17 PM

  • FND_FLEX_VALUES and GL_CODE_COMBINATIONS

    Hello all, I have to value a value with a certain segment from the code combination. With which segment I have to compare I have to search by a generic way out of FND tables. (value sets attached to segments) I have already following query: SELECT gc

  • CDH - Differences between 11.5.9 and 11.5.10?

    I am trying to help create a CDH system on a 11.5.10 instance, and I'm using a working CDH system running on 11.5.9 as a guide. I am running into some things like policy predicate errors and was just wondering where I could find release notes for 11.

  • My music does not seem to play anymore after iOS 5 update

    Hey Guys Updated from 4.3.5 to 5 this morning I have noticed at least 1 error so far. When I go to play my music, i press play, and the pause symbol comes up as expected, however none of my songs will play, the slider at the top does not move, and wh

  • Saving Sheet / Dataprovider and not Workbook

    Hello I have an Excel-workbook with varios dataproviders over more sheets. As far as I see it, the save_area saves all data of the workbook. Is there a way to only save the data of e.g. 3 dataoproviders or to restrict the save data to a single sheet?