Blocking reading object from stream

I have a thread that continually reads objects from the input stream, so I use the readObject() method. My problem is that it doesn't block when there is no input. it just throws exceptions and I cant find a way to check first if there's anything output from the other side of the stream so do a check. thank you!

Sorry! My mistake! I was confused!

Similar Messages

  • How to continue to read Object from a file?

    At some program I write an object into a file. This program will be called again and again so that there are many objects which are saved to that file. And I write another program to read object from this file. I can read the first object but can not read the second. However if I delete the object in that file (using editplus, by manually) I can read the second. Because now the second object is the first object. (Delete first object).
    The exception when I read the second object is below:
    java.io.StreamCorruptedException: Type code out of range, is -84
         at java.io.ObjectInputStream.peekCode(ObjectInputStream.java:1607)
         at java.io.ObjectInputStream.refill(ObjectInputStream.java:1735)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:319)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:272)
         at LogParser.main(LogParser.java:42)
    Exception in thread "main" The read object from file program is below:
         public static void main(String[] args) throws Exception {
            FileInputStream fis = new FileInputStream(path + File.separator + "ErrorApp21config2.log");
            ObjectInputStream ois = new ObjectInputStream(fis);
            ErrorLog errorLog = (ErrorLog)ois.readObject();
            System.out.println(errorLog.getErrorDate());
            FIFData fifData = (FIFData)errorLog.getErrorDescription();
            CommRegistration commRegistration = (CommRegistration)
                                     fifData.getDataObject(FIFData.REGISTRATION_DATA);
            String ic = commRegistration.getPatient().getPatExtID();
            System.out.println(ic);
            CommQueue commQueue = (CommQueue) fifData.getDataObject(FIFData.QMS_DATA);
            String location = commQueue.getLocation();
            System.out.println(location);
            ois.readObject();  //will throw above exception
            fis.close();
         }Can anyone tell me how to continue to read object? Or I should do some special things when I write object into file?

    Thanks Jos.
    Perhaps you are correct.
    There are some code in a SessionBean to log an object. Write file code is below.
         private void logPreRegError(
              byte[] strOldFifData,
            byte[] strNewFifData,
              String requestID)
              throws TTSHException {
              if (requestID.equals(RequestConstants.ADMIT_PATIENT)){
                String runtimeProp = System.getProperty("runtimeproppath");
                FileOutputStream fos = null;
                   try {
                        fos = new FileOutputStream(
                            runtimeProp + File.separator + "Error.log", true);
                    BufferedOutputStream bos = new BufferedOutputStream(fos);
                    bos.write(strOldFifData);
                    bos.write(strNewFifData);
                    bos.flush();
                   } catch (FileNotFoundException e) {
                        log(e);
                   } catch (IOException e) {
                    log(e);
                   } finally{
                    if (fos != null){
                             try {
                                  fos.close();
                             } catch (IOException e1) {
                                  log(e1);
         }strOldFifData and strNewFifData are the byte[] of an object. Below is the code to convert object to byte[].
         private byte[] getErrorData(FIFData fifData, boolean beforeException, String requestID) {
            ErrorLog errorLog = new ErrorLog();
            errorLog.setErrorDate(new Date());
            errorLog.setErrorDescription(fifData);
            errorLog.setErrorModule("Pre Reg");
            if (beforeException){
                errorLog.setErrorSummary("RequestID = " + requestID +" Before Exception");
            }else{
                errorLog.setErrorSummary("RequestID = " + requestID +" After Exception");
              ByteArrayOutputStream baos = null;
              ObjectOutputStream oos = null;
              byte[] bytErrorLog = null;
              try {
                  baos = new ByteArrayOutputStream();
                   oos = new ObjectOutputStream(baos);
                  oos.writeObject(errorLog);
                  oos.flush();
                  bytErrorLog = baos.toByteArray();
              } catch (IOException e) {
                   log(e);
              } finally {
                if (baos != null){
                        try {
                             baos.close();
                        } catch (IOException e1) {
                             log(e1);
              return bytErrorLog;
         }I have two questions. First is currently I have got the log file generated by above code. Is there any way to continue to read object from log file?
    If can't, the second question is how to write object to file in such suitation (SessionBean) so that I can continue to read object in the future?

  • Help! Problem with reading objects from file

    I wrote a "Library" program for an assignment, and one of the requirements is that the library store all of its information to file upon exit, and reload this information from file when run.
    Well, the writing to file part is working. I'm using a FileOutputStream object and an ObjectOutputStream object. I can tell from the file size of the .dat file that information is going into it.
    But what I can't do is read from file. For that, I'm using a FileInputStream and an ObjectInputStream. I keep getting this exception:
    java.io.EOFException
         at java.io.DataInputStream.readInt(Unknown Source)
         at java.io.ObjectInputStream$BlockDataInputStream.readInt(Unknown Source)
         at java.io.ObjectInputStream.readInt(Unknown Source)
         at Library.readDataFromFile(Library.java:350)
         at Library.<init>(Library.java:63)
         at LibraryDriver.main(LibraryDriver.java:6)I looked this exception up and it says it's thrown when a data input stream unexpectedly ends....But I am instantiating the input streams just before I try to read from file:
                            fileInStream = new FileInputStream(libraryFile);
                   objInStream = new ObjectInputStream(fileInStream);
                   Object[] objectArray = new Object[objInStream.readInt()];Both input streams have methods that "return the number of bytes that can be read from this file input stream without blocking". Just for kicks, I tried writing that number to the console.
    For the FileInputStream, I get 404 bytes.
    For the ObjectInputStream, I get 0 bytes.
    So I guess it's a problem with the ObjectInputStream? Anyone have any suggestions as to how I can fix this, please?

    Yep, here's the relevant code from the writeToFile() method:
                          for (int i = 0; i < libraryAuthors.length; i++) {
                        currentAlphaAuthorList = libraryAuthors;
                        for (int j = 0; j < currentAlphaAuthorList.size(); j++) {
                             currentAuthor = (Author) currentAlphaAuthorList.get(j);
                             objOutStream.writeObject(currentAuthor);
                   objOutStream.flush();
                   objOutStream.close();

  • Reading objects from a binary file works but crashes LabVIEW on exit

    I've been hunting for the source of some crashes on LabVIEW exit and I was finally able to track it down to this. In my application I wrap measurements into objects that I stream into a binary file during the inspection. In another application I read the file again to browse and analyze the measurements. All this seems to work just fine except that the reading part causes LabVIEW to crash once I close the IDE. Built applications don't report any crashes but I am afraid if it might still cause some instability or unexpected behaviour.
    The snippet below represents the writing and reading scheme I use and with which I am able to reproduce the problem every time. I attached the project for testing it.
    Parts from the internal warning report:
    #OSName: Windows 8.1 Pro N
    #AppName: LabVIEW
    #Version: 13.0f2 32-bit
    DWarn 0xEFBFD9AB: Disposing OMUDClass definition [LinkIdentity "Class 1.lvclass" [ My Computer] even though 1014 inflated data instances still reference it. This will almost certainly cause a crash next time we operate on one of them.
    Possible path leak, unable to purge elements of base #0
     The full log is also attached.
    Notes:
    Remember: the reading works without any problems, the crash after LabVIEW exit is what I'm concerned about
    Seems to only happen with classes/objects—not the default LabVIEW Object, though
    Prepending array size or different byte orders make no difference
    The writing is time critical, the reading is not, in case you wish to suggest other options
    Has anyone else run into this? Should I be concerned for the built applications or can this be simply ruled as an IDE problem?
    Solved!
    Go to Solution.
    Attachments:
    test_project.zip ‏16 KB
    lvlog.txt ‏5 KB

    Right off, if you say you can read and write lv objects, try casting your object as a lv object before saving it. The lv object is the ultimate parent of all classes.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Error while reading objects from a file

    Below is a short code to explain the problem i am facing
    i have been working on the same for past one week i am facing exceptions while reading a file containing more than one objects
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    * @author sakshi
    public class Storingobject implements Serializable{
        int x,y;
        public void addObject()
            //Storingobject temp;
            ObjectOutputStream objOut=null;
            try {
                objOut = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("temp.dat")));//if i pass true as parameter in FileOutputStream it gives Stream Corrupted exception
            } catch (IOException ex) {
                Logger.getLogger(Storingobject.class.getName()).log(Level.SEVERE, null, ex);
            try {
                // while((temp=objOut.writeObject(o))!=null)
                objOut.writeObject(this);
                System.out.println("Saved..");
                objOut.close();
            } catch (IOException ex) {
                Logger.getLogger(Storingobject.class.getName()).log(Level.SEVERE, null, ex);
        public void readobject()
            int i=1;
            Storingobject temp;
            ObjectInputStream objIn=null;
            try {
                objIn = new ObjectInputStream(new BufferedInputStream(new FileInputStream("temp.dat")));
            } catch (IOException ex) {
                Logger.getLogger(Storingobject.class.getName()).log(Level.SEVERE, null, ex);
            try {
                while ((temp = (Storingobject) objIn.readObject()) != null) {
                    System.out.println("VAlues of object i++ :");
                    System.out.println("X: "+temp.x+"Y: "+temp.y);
            } catch (IOException ex) {
                Logger.getLogger(Storingobject.class.getName()).log(Level.SEVERE, null, ex);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Storingobject.class.getName()).log(Level.SEVERE, null, ex);
        public static void main(String args[])
            Storingobject o1=new Storingobject();
            o1.x=10;o1.y=15;
            o1.addObject();
            o1.readobject();
    }

    //if i pass true as parameter in FileOutputStream it gives Stream Corrupted exceptionI agree. You can't append to a file written with an ObjectOutputStream. You would have to read it all in, write it all out again and write the new object. You're better off keeping the file open while you still have objects to write to it.
    while ((temp = (Storingobject) objIn.readObject()) != null) {ObjectInputStream.readObject() only returns null if you wrote a null. If you're not writing nulls, the correct technique is to loop until you get an EOFException. I don't favour explicitly writing a null just to get around this as suggested above, as it means you can never write a null for any other purpose.

  • Retreiving more than one object from an object stream using serialization.

    I have written a number of object into a file using the object Output stream. Each object was added separately with a button event. Now when I retrieve it only one object is being displayed. the others are not displayed The code for retrieval and inserting is given below. Please do help me.
    code for inserting is as follows
    Vehicle veh1 and vehicle class implements serializable
    veh1.vehNum=tf1.getText();
              veh1.vehMake=tf2.getText();
              veh1.vehModel=tf3.getText();
              veh1.driveClass=tf4.getText();
              veh1.vehCapacity=tf5.getText();          
              FileOutputStream out = new FileOutputStream("vehicle.txt",true);
              ObjectOutputStream s = new ObjectOutputStream(out);
              s.writeObject(veh1);
    retrieval
    FileInputStream out = new FileInputStream("vehicle.txt");
              String str1,str2;
              str1=str2=" ";
              Vehicle veh=new Vehicle();
              ObjectInputStream s = new ObjectInputStream(out);
              try
              Vehicle veh1=(Vehicle)s.readObject();
              s.close();
              int i=0;
              str1=veh1.vehNum;
              str2+=str1+"\t";
              str1=veh1.vehMake;
              str2+=str1+"\t";
              str1=veh1.vehModel;
              str2+=str1+"\t";
              str1=veh1.driveClass;
              str2+=str1+"\t";
              str1=veh1.vehCapacity;
              str2+=str1+"\t\n";
              ta1.append(str2);
              catch(Exception e)
              e.printStackTrace();
    Pleas give me the code for moving through the object until it reaches the end of file

    You can read objects from the stream one by one. So, what you need is an endless loop like this:
    // Suppose you have an ObjectInputStream called objIn
    // So here is the loop which reads objects from the stream:
    Object inObj;
    while (1) {
        try {
            inObj=objIn.readObject();
            // Do something with the object we got
            parse_the_object(inObj);
        } catch (EOFException ex) {
            // The EOFException will be thrown when
            // we reached the end of the file, so here we break out
            // of our lovely infinite cycle
            break;
        } catch (Exception ex) {
            ex.printStackTrace();
            // Here you may decide what to do...
            // Probably the processing will end here, too. For now,
            // we moving on, hoping there is still something to read
    objIn.close();
    // ...

  • Problem reading objects

    Hi i am trying to read objects from i file i have written them to but cannot seem to get it goint any suggestions here are two errors but i am sure their are more
    ---------- javac ----------
    C:\university_class_work\cosc1309\Assignments\Assignment1\Bin2Text.java:26: incompatible types
    found : java.lang.Object
    required: java.io.ObjectInputStream
    while ((ins = ins.readObject()) != null) {
    ^
    C:\university_class_work\cosc1309\Assignments\Assignment1\Bin2Text.java:32: cannot resolve symbol
    symbol : method flush ()
    location: class java.io.ObjectInputStream
    ins.flush ();
    ^
    2 errors
    Normal Termination
    Output completed (1 sec consumed).
    import java.util.*;
    import java.text.*;
    import java.io.*;
    // Bin2Text.java
    // Assignment1
    // Created by dragon on Sun Mar 09 2003.
    // Copyright (c) 2003 __MyCompanyName__. All rights reserved.
    public class Bin2Text implements Serializable {
    public static void main(String[] args) throws IOException{
    String name;
    //PrintWriter out = null;
    Text2Bin p2b = new Text2Bin();
    StringTokenizer words = null;
    String line;
    try {
    PrintWriter out = new PrintWriter (new BufferedWriter (new FileWriter ("out.txt")));
    FileInputStream in = new FileInputStream ("in.bin");
    ObjectInputStream ins = new ObjectInputStream (in);
    while ((ins = ins.readObject()) != null) {
    PizzaEater myPizzaEater = new PizzaEater();
    ins.readObject(myPizzaEater);
    out.write (myPizzaEater);
    ins.reset ();
    ins.flush ();
    ins.close();
    out.close ();
    catch (IOException ioe) {
    System.out.println(ioe.getMessage());
    catch (NegativeNumberException nne) {
    System.out.println ("NegativeNumberException message was: " +
    nne.getMessage());
    class NegativeNumberException extends Exception {
    * Default constructor setting NegativeNumberException to the default
    * as specified by API reference Exception
    public NegativeNumberException () {
    super();
    * a Constructor passing the number value of the exception and
    * returning it with feedback
    public NegativeNumberException (int slices) {
    super("Number entered: " + slices + " number must be positive.");
    }

    Hi i am trying to read objects from i file i have
    written them to but cannot seem to get it goint any
    suggestions here are two errors but i am sure their
    are more
    ---------- javac ----------
    C:\university_class_work\cosc1309\Assignments\Assignmen
    1\Bin2Text.java:26: incompatible types
    found : java.lang.Object
    required: java.io.ObjectInputStream
    while ((ins = ins.readObject()) != null) {
    ^I'm not sure what you're trying to do exactly, I think its retrieve the next object from ObjectInputStream, you'd probably want to use another variable of type Object
    C:\university_class_work\cosc1309\Assignments\Assignmen
    1\Bin2Text.java:32: cannot resolve symbol
    symbol : method flush ()
    location: class java.io.ObjectInputStream
    ins.flush ();
    ^
    2 errors
    Normal TerminationNo flush() for InputStream objects.
    Output completed (1 sec consumed).
    import java.util.*;
    import java.text.*;
    import java.io.*;
    // Bin2Text.java
    // Assignment1
    // Created by dragon on Sun Mar 09 2003.
    // Copyright (c) 2003 __MyCompanyName__. All rights
    reserved.
    public class Bin2Text implements Serializable {
    public static void main(String[] args) throws
    ws IOException{
    String name;
    //PrintWriter out = null;
    Text2Bin p2b = new Text2Bin();
    StringTokenizer words = null;
    String line;
    try {
    PrintWriter out = new PrintWriter (new
    r (new BufferedWriter (new FileWriter ("out.txt")));
    FileInputStream in = new FileInputStream
    Stream ("in.bin");
    ObjectInputStream ins = new ObjectInputStream
    Stream (in);
    while ((ins = ins.readObject()) != null) {
    PizzaEater myPizzaEater = new
    Eater = new PizzaEater();
    ins.readObject(myPizzaEater);
    out.write (myPizzaEater);
    ins.reset ();
    ins.flush ();
    ins.close();
    out.close ();
    catch (IOException ioe) {
    System.out.println(ioe.getMessage());
    catch (NegativeNumberException nne) {
    System.out.println ("NegativeNumberException
    xception message was: " +
    nne.getMessage());
    class NegativeNumberException extends Exception {
    * Default constructor setting
    ing NegativeNumberException to the default
    * as specified by API reference Exception
    public NegativeNumberException () {
    super();
    * a Constructor passing the number value of the
    the exception and
    * returning it with feedback
    public NegativeNumberException (int slices) {
    super("Number entered: " + slices + " number must
    st be positive.");

  • Treat objects from named query as new ones

    Hello,
    I use TopLink 11.1.1.1.0 and I need to do following. I want to read object from database with named query and let TopLink treat them like new object created in java. Is it possible? Obejcts are in one table but the named query computes them with select from several different tables, so this obejcts are not present in the table.
    Why I need it? It is import of data from one module of our application to another. Previously it was done in java. About 500 000 objects were read in one module just to convert into 20 000 objects in another module. If database does this conversion (named query with grouping which reads the 20 000 objects) it is much faster and take much less memory.
    What I can do is to create new class with the same fields query this objects and then copy them to object I need. But I don't like creating new class just for this.
    Thank for any help
    Frank

    Thanks for help I solved it different way eventually. I made a stored procedure which inserts data to the table of SOURCE_ITEMS. First I call stored procedure, then I load all new created SOURCE_ITEMS with ReadAllQuery (I have business parameters by which to select them) and make post processing in java with them. I used StoredProcedureCall in TopLink so if exception occurs and transaction rollbacks, stored procedure will rollback as well (I tried it, works for sure:).
    StoredProcedureCall call = new StoredProcedureCall();
    call.setProcedureName(SQL_IMPORT_CALL);
    call.addNamedArgumentValue(SQL_IMPORT_PARAM_1, getId());
    call.addNamedArgumentValue(SQL_IMPORT_PARAM_2, getXXX().getId());
    call.addNamedArgumentValue(SQL_IMPORT_PARAM_3, getYYY.getId());
    call.addNamedArgumentValue(SQL_IMPORT_PARAM_4, getZZZ());
    DataModifyQuery query = new DataModifyQuery();
    query.setCall(call);
    query.setShouldBindAllParameters(true);
    // insert of imported SOURCE_ITEMS
    ctx.executeQuery(query);
    Thanks Chris and hope this will help to somebody else as well..
    Frank
    Edited by: user604333 on Nov 17, 2010 12:20 PM
    Edited by: user604333 on Nov 17, 2010 12:20 PM
    Edited by: user604333 on Nov 17, 2010 12:20 PM

  • Read Objects EOF

    I am trying to read object from a file into a linked list, but i keep getting a EOFException when it reaches the eof, i have tred a while loop but still the exception gets thorw, whats the best way of stoping reading once eof is read without throwing the exception?
    boolean EOF = false;
    ObjectInputStream fin = new ObjectInputStream(new FileInputStream("test.dat"));
    while(!EOF)
    Record rec = (Record) fin.readObject();
    a.add(rec); //add to linked list

    i'm not understand why you don't want to use Exception
    you still can execute you other path of code even using exception
    example
    try
    .... //do something
      try
      .... read object code here
      catch (EOFException ex)
    ... your other code
    catch (Exception anyException)
    }

  • Attempt to read obj from application REPOSITORY on system REPOSITORY failed

    Hi,
    we have generated a transport from DEV PI to QAS PI.
    This transport contains one namespace and several objects like mappings, etc.
    Importing in QAS PI is shown as successful. No errors or conflicts occoured.
    But when I opend the Software Component and the underlying namespace, no object is displayed.
    In the default log I found following:
    com.sap.aii.ib.core.roa.RoaObjectAccessException: Attempt to read object Operation Mapping OM_XXXX | http://XXXX.de/PI/RFC/XXX/AUFTRAG_ANLEGEN, type MAPPING from application REPOSITORY on system REPOSITORY failed. Object does not exist. Detailed informatio n: Object Operation Mapping OM_XXXX | http://XXXX.de/PI/RFC/XXX/AUFTRAG_ANLEGEN not found
    But also the cache status is fine and the import of objects is shown with green lights.
    Is there a possibility for finding the reason of the REPOSITORY issue?
    Thanks in advance,
    André
    Thrown:
    com.sap.aii.ib.core.roa.RoaMultiObjectAccessException: Attempt to access the 1 requested objects on 1 failed. Detailed information:
    com.sap.aii.ib.core.roa.RoaObjectAccessException: Attempt to read object Operation MappingOM_XXXX | http://XXXX.de/PI/RFC/XXX/AUFTRAG_ANLEGEN, type MAPPING from application REPOSITORY on system REPOSITORY failed. Object does not exist. Detailed informatio n: Object Operation Mapping OM_XXXX | http://XXXX.de/PI/RFC/XXX/AUFTRAG_ANLEGEN not found
    at com.sap.aii.ib.core.roa.RoaMultiObjectAccessException.newObjectAccessNotCompleted(RoaMultiObjectAccessException.java:98)
    at com.sap.aii.ib.core.roa.RoaServiceImpl.createObjectArrayFromRoaOutput(RoaServiceImpl.java:351)
    at com.sap.aii.ib.core.roa.RoaServiceImpl.readObjectsImpl(RoaServiceImpl.java:256)
    at com.sap.aii.ib.core.roa.RoaServiceImpl.readObjects(RoaServiceImpl.java:367)
    at com.sap.aii.ibdir.server.abapcache.mapping.CacheRepositoryMappings.addContent(CacheRepositoryMappings.java:124)
    at com.sap.aii.ibdir.server.abapcache.mapping.CacheRepositoryMappings.addContent(CacheRepositoryMappings.java:86)
    at com.sap.aii.ibdir.server.abapcache.CacheRefreshRequest.addContent(CacheRefreshRequest.java:480)
    at com.sap.aii.ibdir.server.abapcache.CacheRefreshRequest.processHTTPRequest(CacheRefreshRequest.java:210)
    at com.sap.aii.ibdir.server.abapcache.CacheRefreshRequest.handleHTTPRequest(CacheRefreshRequest.java:135)
    at com.sap.aii.ibdir.web.abapcache.CacheRefreshSession.setXmlDataAndBufferSize(CacheRefreshSession.java:136)
    at com.sap.aii.ibdir.web.abapcache.CacheRefreshSession.<init>(CacheRefreshSession.java:41)
    at com.sap.aii.ibdir.web.abapcache.CacheRefreshSession.getInstance(CacheRefreshSession.java:55)
    at com.sap.aii.ibdir.web.abapcache.CacheRefreshServlet.doGet(CacheRefreshServlet.java:47)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:162)
    at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:81)
    at com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:124)
    at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:73)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:461)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:298)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:396)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:385)
    at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:48)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:76)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:243)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:78)
    at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
    at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:43)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:42)
    at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:428)
    at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:247)
    at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:45)
    at com.sap.engine.core.thread.execution.Executable.run(Executable.java:115)
    at com.sap.engine.core.thread.execution.Executable.run(Executable.java:96)
    at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:314)

    Hi There,
    One of the reason for the error attempt to read object from Application REPOSITORY on system REPOSITORY failed can be due to the fact the PI system is trying to read the respository objects from the DEV environment still, instead from the QA ennvironment.
    1. Check the host name for the QA system for repository and directory in Exchange profile,
    2. Also check the host name for the QA system that was maintained in the SOA MANAGER setting in the NWA. This might point to the Dev system still. ( IN case you are using WS adapters in your scenarios )
    You can also refer the forum thread below,  which discuss about the same issue,
    Re: Connection to system REPOSITORY using application REPOSITORY lost

  • Read Object Label

    Hi, I read object from my Java Card successfully. But how can I get the label / it's name/ of that object? When I select EF DODF I can read the number of data objects from FCI /FIle Control Information/, Tag 82 for LINEAR-TLV.
    The FCI from selecting the object is - 6f 13 80 02 02 24 82 01 01 83 02 57 01 86 06 01 01 01 ff ff 01.
    Tag 80 - file size 80 02 *02 24*
    Tag 83 - FID 83 02 *57 01*
    But how can I get the name /Label/ of the object?
    Thank you
    Edited by: Valentino on Sep 14, 2012 1:05 AM

    Hi,
    first I select the AID, then select the DODF, then :
    1. if I select the object file with new CommandAPDU(0x00, 0xA4, 0x00, 0x00, new byte [] {0x57, 0x01})
    //I get the FCI :
    6f 13 80 02 02 24 82 01 01 83 02 57 01 86 06 01 01 01 ff ff 01 (I use this because i read the size of the object from the FCI).
    2. if I select the object file with new CommandAPDU(0x00, 0xA4, 0x04, 0x00 )
    //I get ( I tried to format it as I understand it from GlobalPlatform Card Specification v2.2.1 ):
    6f 65
         84 08 a0 00 00 00 03 00 00 00
         a5 59 9f 65 01 ff 9f 6e 06 47 91 81 02 31 00
              73 4a
                   06 07 2a 86 48 86 fc 6b 01
                   60 0c
                        06 0a 2a 86 48 86 fc 6b 02 02 01 01
                   63 09
                        06 07 2a 86 48 86 fc 6b 03
                   64 0b
                        06 09 2a 86 48 86 fc 6b 04 02 15
                   65 0b 06 09 2b 85 10 86 48 64 02 01 03
                   66 0c 06 0a 2b 06 01 04 01 2a 02 6e 01 02Then I read the file in while loop with : // Read BINARY
    ResponseAPDU obj = ch.transmit( new CommandAPDU(0x00, 0xB0, offset, 0x00) );Well I am new to Java Card technology and I get confused while reading GlobalPlatform Card Specification, ISO 7816-4 and the documentation of JCOP.
    So, what am I doing wrong?

  • PowerPivot 2012 Error: BaseWorkbook.CacheStream: Failed to read from stream. Error was: System.Data.SqlClient.SqlException: The EXECUTE permission was denied on the object 'proc_FetchChunkFromDocStreams', database 'SharePoint_AdminContent'

    Hi, I have setup PowerPivot 2012 for SharePoint, but when I access'PowerPivot Management Dashboard' in Central Admin I get error message 'An error has occured'
    Below is the error in the ULS,
    Background file fill operation caught exception: System.Data.SqlClient.SqlException: The EXECUTE permission was denied on the object 'proc_FetchChunkFromDocStreams', database 'SharePoint_AdminContent_ca021d58-ef1f-4f30-9aeb-6f24db24862b', schema 'dbo'.  
     at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)    
     at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)    
     at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)    
     at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()    
     at System.Data.SqlClient.SqlDataReader.get_MetaData()    
     at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)    
     at System.Data.SqlClient.SqlCommand.CompleteAsyncExecuteReader()    
     at System.Data.SqlClient.SqlCommand.InternalEndExecuteReader(IAsyncResult asyncResult, String endMethod)    
     at System.Data.SqlClient.SqlCommand.EndExecuteReader(IAsyncResult asyncResult)    
     at Microsoft.SharePoint.CoordinatedStreamBuffer.AsyncSqlSession.EndExecuteReader(IAsyncResult ar)    
     at Microsoft.SharePoint.CoordinatedStreamBuffer.SPBackgroundSqlFileFiller.OnReadComplete(IAsyncResult result)
    BaseWorkbook.CacheStream: Failed to read from stream. Error was: System.Data.SqlClient.SqlException: The EXECUTE permission was denied on the object 'proc_FetchChunkFromDocStreams', database 'SharePoint_AdminContent_ca021d58-ef1f-4f30-9aeb-6f24db24862b',
    schema 'dbo'.    
     at Microsoft.SharePoint.CoordinatedStreamBuffer.SPBackgroundFileFiller.Fill()    
     at Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBuffer.WaitForIntervalFill(SPInterval i)    
     at Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedMemoryStream.Read(Byte[] array, Int32 offset, Int32 count)    
     at Microsoft.SharePoint.SPFileStream.Read(Byte[] buffer, Int32 offset, Int32 count)    
     at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbookManager.CacheStream(CachedFile cachedFile, FileLoader loader)
    Regards,
    Ayaz
    SharePoint Architect

    Hey Ayaz,
    I do had the same error message when I click on "PowerPivot Management Dashboard". After few research I resolved this issue.
    You need to provide the dbReader and dbWriter permission to powerpivot app pool account at "SharePoint_AdminContent_ca021d58-ef1f-4f30-9aeb-6f24db24862b"
    Have a great day :-)
    Santosh sethi

  • How to read OLE objects from Access ??

    Hi,
    I have an field of type OLE in my Access Database table. This field has some files stored in it in the form of attachment. The file types of the OLE objects can be different (xls,txt,doc). Now, I want to query the database and find the extension of the files and save it occordingly using java.
    I'm using the following now.
    JdbcOdbcInputStream jois = (JdbcOdbcInputStream) rs     .getBinaryStream("SupportingData");
    byte[] supportingData = jois.readData();
    String data = new String(supportingData);
    I'm getting data in binary format and when I try to look into it, all I can see is the header info of the file.
    Is there anyother way to read the OLE object easily ?
    Please suggest.
    Thanks,
    Mary

    How to read appended objects from file with ObjectInputStream? The short answer is you can't.
    The long answer is you can if you put some work into it. The general outline would be to create a file with a format that will allow the storage of multiple streams within it. If you use a RandomAccessFile, you can create a header containing the length. If you use streams, you'll have to use a block protocol. The reason for this is that I don't think ObjectInputStream is guaranteed to read the same number of bytes ObjectOutputStream writes to it (e.g., it could skip ending padding or such).
    Next, you'll need to create an object that can return more InputStream objects, one per stream written to the file.
    Not trivial, but that's how you'd do it.

  • How to read appended objects from file with ObjectInputStream?

    Hi to everyone. I'm new to Java so my question may look really stupid to most of you but I couldn't fined a solution by myself... I wanted to make an application, something like address book that is storing information about different people. So I decided to make a class that will hold the information for each person (for example: nickname, name, e-mail, web address and so on), then using the ObjectOutputStream the information will be save to a file. If I want to add a new record for a new person I'll simply append it to the already existing file. So far so good but soon I discovered that I can not read the appended objects using ObjectInputStream.
    What I mean is that if I create new file and then in one session save several objects to it using ObjectOutputStream they all will be read with no problem by ObjectInputStream. But after that if in a new session I append new objects they won't be read. The ObjectInputStream will read the objects from the first session after that IOException will be generated and the reading will stop just before the appended objects from the second session.
    The following is just a simple test it's not actual code from the program I was talking about. Instead of objects containing different kind of information I'm using only strings here. To use the program use as arguments in the console "w" to create new file followed by the file name and the strings you want save to the file (as objects). Example: "+w TestFile.obj Thats Just A Test+". Then to read it use "r" (for reading), followed by the file name. Example "+r TestFile.obj+". As a result you'll see that all the strings that are saved in the file can be successfully read back. Then do the same: "+w TestFile.obj Thats Second Test+" and then read again "+r TestFile.obj+". What will happen is that the strings only from the first sessions will be read and the ones from the second session will not.
    I am sorry for making this that long but I couldn't explain it more simple. If someone can give me a solution I'll be happy to hear it! ^.^ I'll also be glad if someone propose different approach of the problem! Here is the code:
    import java.io.*;
    class Fio
         public static void main(String[] args)
              try
                   if (args[0].equals("w"))
                        FileOutputStream fos = new FileOutputStream(args[1], true);
                        ObjectOutputStream oos = new ObjectOutputStream(fos);
                        for (int i = 2; i < args.length ; i++)
                             oos.writeObject(args);
                        fos.close();
                   else if (args[0].equals("r"))
                        FileInputStream fis = new FileInputStream(args[1]);
                        ObjectInputStream ois = new ObjectInputStream(fis);
                        for (int i = 0; i < fis.available(); i++)
                             System.out.println((String)ois.readObject());
                        fis.close();
                   else
                        System.out.println("Wrong args!");
              catch (IndexOutOfBoundsException exc)
                   System.out.println("You must use \"w\" or \"r\" followed by the file name as args!");
              catch (IOException exc)
                   System.out.println("I/O exception appeard!");
              catch (ClassNotFoundException exc)
                   System.out.println("Can not find the needed class");

    How to read appended objects from file with ObjectInputStream? The short answer is you can't.
    The long answer is you can if you put some work into it. The general outline would be to create a file with a format that will allow the storage of multiple streams within it. If you use a RandomAccessFile, you can create a header containing the length. If you use streams, you'll have to use a block protocol. The reason for this is that I don't think ObjectInputStream is guaranteed to read the same number of bytes ObjectOutputStream writes to it (e.g., it could skip ending padding or such).
    Next, you'll need to create an object that can return more InputStream objects, one per stream written to the file.
    Not trivial, but that's how you'd do it.

  • Reading text from server socket stream

    I have a basic cd input program i've been trying to figure out the following problem for a while now, the user enters the artist and title etc and then a DOM (XML) file is created in memory this is then sent to the server. The server then echos back the results which is later printed on a html page by reading the replys from the server line by line.
    The server must be run it listens for clients connecting the clients connect and send DOM documents through the following jsp code.
    <%@page import="java.io.*"%>
    <%@page import="java.net.*"%>
    <%@page import="javax.xml.parsers.*"%>
    <%@page import="org.w3c.dom.*"%>
    <%@page import="org.apache.xml.serialize.*"%>
    <%!
       public static final String serverHost = "cdserver";
       public static final int serverPort = 10151;
    %>
    <hr />
    <pre>
    <%
            Socket mySocket = null;          // socket object
            PrintWriter sockOut = null;      // to send data to the socket
            BufferedReader sockIn = null;    // to receive data from the socket
            try {
                //  #1 add line that creates a client socket
                mySocket = new Socket(serverHost, serverPort);
                // #2 add lines that create input and output streams
                //            attached to the socket you just created
                 sockOut = new PrintWriter(mySocket.getOutputStream(), true);
                 sockIn = new BufferedReader(new InputStreamReader(mySocket.getInputStream()));
            } catch (UnknownHostException e) {
                throw e; // This time the JSP can handle the exception, not us
            } catch (IOException e) {
                throw e; // This time the JSP can handle the exception, not us
    String cdTitle, cdArtist, track1Title, track1Time, track1Rating;
    // Retrieve the HTML form field values
    cdTitle = request.getParameter("cdtitle");
    cdArtist = request.getParameter("cdartist");
    track1Title = request.getParameter("track1title");
    track1Time = request.getParameter("track1time");
    track1Rating = request.getParameter("track1rating");
    // Create a new DOM factory, and from that a new DOM builder object
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    // Note that we are creating a new (empty) document
    Document document = builder.newDocument();
    // The root element of our document wil be <cd>
    // It gets stored as the child node of the whole document (it is the root)
    Element rootElement = document.createElement("cd");
    document.appendChild(rootElement);
    // Create an element for the CD title called <title>
    Element cdTitleElement = document.createElement("title");
    // Add a text code under the <title> element with the value that
    // the user entered into the title field of the web form (cdTitle)
    cdTitleElement.appendChild(document.createTextNode(cdTitle));
    // Place the <title> element underneath the <cd> element in the tree
    rootElement.appendChild(cdTitleElement);
    // Create an <artist> element with the form data, place underneath <cd>
    Element cdArtistElement = document.createElement("artist");
    cdArtistElement.appendChild(document.createTextNode(cdArtist));
    rootElement.appendChild(cdArtistElement);
    // Create a <tracklist> element and place it underneath <cd> in the tree
    // Note that it has no text node associated with it (it not a leaf node)
    Element trackListElement = document.createElement("tracklist");
    rootElement.appendChild(trackListElement);
    // In this example we only have one track, so it is not necessary to
    // use a loop (in fact it is quite silly)
    // But the code below is included to demonstrate how you could loop
    // through and add a set of different tracks one by one if you
    // needed to (although you would need to have the track data already
    // stored in an array or a java.util.Vector or similar
    int numTracks = 1;
    for (int i=0; i<numTracks; i++) {
      String trackNum = Integer.toString(i+1);
      Element trackElement = document.createElement("track");
      trackElement.setAttribute("id", trackNum);
      trackListElement.appendChild(trackElement);
      // Track title element called <title>, placed underneath <track>
      Element trackTitleElement = document.createElement("title");
      trackTitleElement.appendChild(document.createTextNode(track1Title));
      trackElement.appendChild(trackTitleElement);
      // Track time element called <time>, placed underneath <track>
      Element trackTimeElement = document.createElement("time");
      trackTimeElement.appendChild(document.createTextNode(track1Time));
      trackElement.appendChild(trackTimeElement);
      // Track rating element called <rating>, placed underneath <track>
      Element trackRatingElement = document.createElement("rating");
      trackRatingElement.appendChild(document.createTextNode(track1Rating));
      trackElement.appendChild(trackRatingElement);
    OutputFormat format = new OutputFormat();
    format.setIndenting(true);
    // Create a new XMLSerializer that will be used to write out the XML
    // This time we will serialize it to the socket
    // #3 change this line so that it serializes to the socket,
    // not to the "out" object
    XMLSerializer serializer = new XMLSerializer(writer, format);
    serializer.serialize(document);
            // Print out a message to indicate the end of the data, and
            // flush the stream so all the data gets sent now
            sockOut.println("<!--QUIT-->");
            sockOut.flush();
            BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
            String fromServer;
            String fromUser;
             #4 add a while loop that reads text from the
            server socket input stream, line by line, and prints
            it out to the web page, using out.println(...);
            Note that because the reply from the server will contain
            XML, you will need to call upon the toHTMLString() method
            defined below to escape the < and > symbols so that they
            will display correctly in the web browser.
            Also note that as you receive the reply back from the
            server, you should look out for the special <!--QUIT-->
            string that will indicate when there is no more data
            to receive.
            while ((fromServer = sockIn.readLine()) != null) {
            out.println(sockIn.readLine());
                // If the reply from the server said "QUIT", exit from the
                // while loop by using a break statement.
                if (fromServer.equals("QUIT")) {
                    out.println("Connection closed - good bye ...");
                // Print the text from the server out to the user's screen
                out.println("Reply from Server: " + fromServer);
                // Now read a line of text from the keyboard (typed by user)
                fromUser = stdIn.readLine();
                // If it wasn't null, print it out to the screen, and also
                // print a copy of it out to the socket
                if (fromUser != null) {
                    out.println("Client: " + fromUser);
                    sockOut.println(fromUser);
            // Close all the streams we have open, and then close the socket
            sockOut.close();
            sockIn.close();
            mySocket.close();
    %>
    I'm suppose to modify the commented sections labled with #.
    #1,2 are correct but i have doubts on the 3rd and 4th modification.
    for #3 i changed so i serializes to the socket not to the "out" object:
    from
    XMLSerializer serializer = new XMLSerializer(out, format);
    to
    XMLSerializer serializer = new XMLSerializer(writer, format);
    with "out" it prints out some of the results entered but it just hangs i'm thinking it might be the while loop that i added in #4. If i changed it to serialize the socket XMLSerializer serializer = new XMLSerializer(writer, format); it doesn't print out nothing at all; just a blank screen where it hangs.
    I can post the rest of the code (server thats in java and cdinput.html) but since i want to keep my post short and if required i'll post it later on i also omitted some of the code where it creates the DOM textnodes etc to keep my post short.

    On your previous thread, why did you say the server was using http POST and application/xml content type when it quite obviously isn't, but a direct socket communication that abuses XML comments for message end delimiters?
    The comments imply you need to wait for "<!--QUIT-->" on a line by itself, but your loop is waiting for "QUIT".
    Pete

Maybe you are looking for

  • 06-23 Deal of the Day LG Monitor

    I received my daily email with the deal of the day.  One of the items was a LG monitor for $109.99 reg $239.99.  When I click on the link, it tells me that the reg price is $149.99, so the deal is not as good as the email states.  Best Buy needs to d

  • Layout Manager

    Hi All, I am new to use of ADF UIX to develop web app. Just a simple question. Which layout component should I use if I want to layout the input text field at the right and bottom of the full screen browser ? Thanks. Elton.

  • SD Retention Amount Process

    Hi Experts, Have you ever implemented a Retention Sum Process in SD? The Idea here is they Bill the Customers with a percentage only of the amount for a given date (per invoice), so the remaining percentage will be retained and accumulated in the clo

  • Printing Restriction

    How to protect setting in printing SAP Business One (Sales Order, Delivery Order, etc)? e.g: if we have make a Delivery Order, first print is an ORIGINAL but second print is a COPY. If a user need second print, user must be use a password. How to sol

  • Question for Joyce Peng regarding no homefolder

    In your Sept. 02 posting, you said "when users are created, it is possible to create them without a home folder. If the default value you list is set to false, then by default newly created users will not have home folders. Our clients and protocols