GZIP compressing input stream?

I have an API which takes an InputStream for feeding in large binary data.
Suppose I want to write a wrapper around that API which GZIPs the data on the fly. This would require some kind of InputStream which will compress the data with GZIP on the fly. However, GZIPInputStream can only decompress on the fly.
Does anyone know of a way to do the exact opposite?

So, don't store the entire file in memory. Storing a compressed version of the file isn't much of a
solution.You're not paying attention. I said I can't FIT the data in memory. If I can't fit it in memory, why would I be trying to store it in memory? Hence why I want to store it in a DATABASE.
If you can't grasp the most simple of uses for a database, there isn't a lot of hope for you in this field in the future.
You actually can use a ByteArrayOutputStream, to generate the compressed bytes, as I described, > but you apparently we're paying attention, which at this point is all I expect from you.Okay, how? If I simply put all the uncompressed bytes into the GZIPOutputStream and that output stream is attached to the ByteArrayOutputStream, I will run out of memory.
Code, please. In other words, prove that what you say is possible.
You are allowed to. It's debatable whether it's a good idea. Anyway this is the first time you
mentioned JDBC. Back when we wanted to help you (before you called us idiots) that might
have been useful information. It's easier to help people when you have information about what
the hell theyr'e trying to do.I did say that we have an API which takes an input stream, and that this was the reason why I had to pass in an input stream. It doesn't matter whether it's JDBC, or anything else. What is important is that it takes an input stream.
Actually, it's pretty cheap. It's probably cheaper than the cost of the extra RAM you'll need doing
extraneous compression/decompression.Actually, compression is generally fairly inexpensive, RAM-wise. You lose some CPU, but CPU is even cheaper than the amounts of disk space which we would otherwise need for this.
We're storing gigabytes of data, and
I would rather not have to actually store gigabytes
of data.So, you're not actually storing it now?We're storing it compressed, which makes it take less space. You do know what compression is, right?
A redesign might end up removing GZIP entirely. But maybe not. It's hard to say because you still
haven't given a lot of details, and given your attitude I'm certain your estimation of the project is
entirely wrong anyway. At this point I don't care either way. Good luck with your project to create
an unmaintainable buggy monstrosity.Actually, this is trying to make the project more maintainable. Right now, we have multiple components each doing the gzipping in their own sections. I'm trying to make a component which can generically take a data stream, and store it into the database compressed.
You're partially right, though. A redesign would remove GZIP entirely -- I would use Deflate as-is. Deflate has convenient methods for working with smaller chunks of data, and I could borrow much of the code from InflateInputStream and modify it to create DeflateInputStream. The next version of our app, once we're willing to break compatibility, will probably do this.

Similar Messages

  • GZip Compression (Yes this old chestnut Again)

    I have a client who requires this to work in .NET 4 Client Profile so no 4.5 compression improvements for me. All I need is 2 functions one to compress and one to decompress
    both of which take in and return unicode strings. I have spent weeks nay months searching tweaking writing etc. to no avail, I have looked at all the existing snippets I could find but they
    all either take in or return a Byte() or Stream or something else and when I tweak them to take/return a string they don't work. What I have so far (a snippet found online tweaked) is:
    Public Shared Function Decompress(bytesToDecompress As String) As String
    Using stream = New IO.Compression.GZipStream(New IO.MemoryStream(System.Text.Encoding.Unicode.GetBytes(bytesToDecompress)), IO.Compression.CompressionMode.Decompress)
    Const size As Integer = 4096
    Dim buffer = New Byte(size - 1) {}
    Using memoryStream = New IO.MemoryStream()
    Dim count As Integer
    Do
    count = stream.Read(buffer, 0, size)
    If count > 0 Then
    memoryStream.Write(buffer, 0, count)
    End If
    Loop While count > 0
    Return System.Text.Encoding.Unicode.GetString(memoryStream.ToArray())
    End Using
    End Using
    End Function
    Public Shared Function Compress(Input As String) As String
    Dim bytes() As Byte = System.Text.Encoding.Unicode.GetBytes(Input)
    Using stream = New IO.MemoryStream()
    Using zipStream = New IO.Compression.GZipStream(stream, IO.Compression.CompressionMode.Compress)
    zipStream.Write(bytes, 0, bytes.Length)
    Return System.Text.Encoding.Unicode.GetString(stream.ToArray())
    End Using
    End Using
    End Function
    However the problem is if you run the following you get nothing out.
    Decompress(Compress("Test String"))
    Please help me; I know this has been covered to death elsewhere but I am missing something when tweaking I am sure it's something very simple but it is causing me great stress! Many Many Thanks Indeed!

    I have now found a workaround which may be useful to others so I am posting it here, it doesn't do exactly what was described above which would be ideal but here is the code:
    Private Sub WriteCompressed(ByVal Path As String, Data As String)
    Using WriteFileStream As IO.FileStream = IO.File.Create(Path)
    Using DataStream As New IO.MemoryStream(System.Text.Encoding.Unicode.GetBytes(Data))
    Using Compressor As IO.Compression.DeflateStream = New IO.Compression.DeflateStream(WriteFileStream, IO.Compression.CompressionMode.Compress)
    DataStream.CopyTo(Compressor)
    End Using
    End Using
    End Using
    End Sub
    Private Function ReadCompressed(ByVal Path As String) As String
    Using ReadFileStream As IO.FileStream = System.IO.File.OpenRead(Path)
    Using DataStream As New IO.MemoryStream
    Using Decompressor As IO.Compression.DeflateStream = New IO.Compression.DeflateStream(ReadFileStream, IO.Compression.CompressionMode.Decompress)
    Decompressor.CopyTo(DataStream)
    Return System.Text.Encoding.Unicode.GetString(DataStream.ToArray)
    End Using
    End Using
    End Using
    End Function
    Many thanks indeed to everyone who helped and any more input is still welcome. Thanks again!
    That's great. You should propose your post as the answer to end the thread.
    I just finished with a different method. However I will guess the real issue is that strings can not contain various binary values such as Nulls, Delete, Bell, Backspace, etc (as you can see zeros in RTB2 in the image below which are null
    values).
    I forgot to add that during testing I was receiving errors because compressed data written to a string then read from a string into bytes and decompressed would return errors during the decompressing that the data did not contain a valid GZip header. Therefore
    when GZip compresses it uses some format for the compressed data that is known to Gzip. Otherwise it would not have a header in the compressed data.
    You can see what binary values (Decimal) would be in a string at this link
    Ascii Table.
    Therefore I used the code below to get a string from a RichTextBox1 to a byte array. That is compressed and output to a byte array.
    The information in the "compressed" byte array is then converted byte by byte to the bytes value in RichTextBox2 with each value separated by a comma.
    To decompress the string in RichTextBox2 that text is split into a string array on a comma. Then each item is converted to a byte into a List(Of Byte). The List(Of Byte).ToArray is then decompressed back into a byte array and that byte array is converted
    to a string in RichTextBox3.
    I suspect the actual compressed byte array could be written to a binary file using the
    BinaryWriter Class if the original strings were supposed to be compressed and attached as files for transfer somewhere.
    Option Strict On
    Imports System.IO
    Imports System.IO.Compression
    Imports System.Text
    Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.Location = New Point(CInt((Screen.PrimaryScreen.WorkingArea.Width / 2) - (Me.Width / 2)), CInt((Screen.PrimaryScreen.WorkingArea.Height / 2) - (Me.Height / 2)))
    RichTextBox1.Text = My.Computer.FileSystem.ReadAllText("C:\Users\John\Desktop\Northwind Database.Txt")
    Label1.Text = "Waiting"
    Label2.Text = "Waiting"
    Label3.Text = "Waiting"
    Label4.Text = "Waiting"
    Button2.Enabled = False
    End Sub
    Dim BytesCompressed() As Byte
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    RichTextBox2.Clear()
    RichTextBox3.Clear()
    Label1.Text = "Waiting"
    Label2.Text = "Waiting"
    Label3.Text = "Waiting"
    Label4.Text = "Waiting"
    If RichTextBox1.Text <> "" Then
    Dim uniEncoding As New UnicodeEncoding()
    BytesCompressed = Compress(uniEncoding.GetBytes(RichTextBox1.Text))
    Label1.Text = RichTextBox1.Text.Count.ToString
    Label2.Text = BytesCompressed.Count.ToString
    For Each Item In BytesCompressed
    RichTextBox2.AppendText(CStr(CInt(Item)) & ",")
    Next
    RichTextBox2.Text = RichTextBox2.Text.Remove(RichTextBox2.Text.Count - 1, 1)
    End If
    Button2.Enabled = True
    End Sub
    Private Shared Function Compress(data As Byte()) As Byte()
    Using compressedStream = New MemoryStream()
    Using zipStream = New GZipStream(compressedStream, CompressionMode.Compress)
    zipStream.Write(data, 0, data.Length)
    zipStream.Close()
    Return compressedStream.ToArray()
    End Using
    End Using
    End Function
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Button2.Enabled = False
    Dim RTB2Split() As String = RichTextBox2.Text.Split(","c)
    Dim BytesToUse As New List(Of Byte)
    For Each Item In RTB2Split
    BytesToUse.Add(CByte(Item))
    Next
    Label3.Text = BytesToUse.Count.ToString
    Dim uniEncoding As New UnicodeEncoding()
    RichTextBox3.Text = uniEncoding.GetString(Decompress(BytesToUse.ToArray))
    Label4.Text = RichTextBox3.Text.Count.ToString
    End Sub
    Private Shared Function Decompress(data As Byte()) As Byte()
    Using compressedStream = New MemoryStream(data)
    Using zipStream = New GZipStream(compressedStream, CompressionMode.Decompress)
    Using resultStream = New MemoryStream()
    zipStream.CopyTo(resultStream)
    Return resultStream.ToArray()
    End Using
    End Using
    End Using
    End Function
    End Class
    La vida loca

  • Unexpected end of ZLIB input stream.

    Hello everyone.
    I have a problem which I was unable to solve so far. Any suggestion is very welcome.
    The scenario.
    My process worked on a previously installed default install 10.1.3.1 platform.
    I installed the SOA Suite (same, very default set with olite) on a different computer and copied all files of the project dir. Modified file paths and URLs in all files in the folder and deployed the process with jdeveloper.
    Symptoms.
    Flow viewer gets stuck at Loading audit trail. Messages from a java call get to manual recovery, and will not recover.
    I start the process with a java call:
    Locator locator = new Locator("default","bpel");
    IDeliveryService deliveryService = (IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME);
    NormalizedMessage nm = new NormalizedMessage( );
    nm.addPart("payload", xml );
    deliveryService.post("OrderFlow", "initiate", nm);
    it starts without any problems and runs until a callback (receive) activity, where it is waiting for a message using the same java api calls as above.
    This runs well on the previous system, however the new system will not deliver the message.
    Log output.
    After trying to access the flow viewer:
    <2008-03-19 20:13:12,120> <ERROR> <default.collaxa.cube> <BaseCubeSessionBean::logError> Error while invoking bean "instance manager": Cannot uncompress data stream.
    Cannot uncompress data stream with GZIP algorithm; exception is Unexpected end of ZLIB input stream.
    ORABPEL-02018
    Cannot uncompress data stream.
    Cannot uncompress data stream with GZIP algorithm; exception is Unexpected end of ZLIB input stream.
         at com.collaxa.cube.engine.util.CompressUtils.uncompressStream(CompressUtils.java:184)
         at com.collaxa.cube.engine.util.DBUtils.getUncompressedBLOB(DBUtils.java:358)
         at com.collaxa.cube.engine.util.DBUtils.getUncompressedBLOB(DBUtils.java:310)
         at com.collaxa.cube.engine.adaptors.common.BaseCubeInstancePersistenceAdaptor$BaseScopeHandler.load(BaseCubeInstancePersistenceAdaptor.java:1268)
         at com.collaxa.cube.engine.adaptors.common.BaseCubeInstancePersistenceAdaptor.load(BaseCubeInstancePersistenceAdaptor.java:348)
         at com.collaxa.cube.engine.adaptors.common.BaseCubeInstancePersistenceAdaptor.load(BaseCubeInstancePersistenceAdaptor.java:251)
         at com.collaxa.cube.engine.data.CubeInstancePersistenceMgr.__load(CubeInstancePersistenceMgr.java:252)
         at com.collaxa.cube.engine.data.CubeInstancePersistenceMgr.load(CubeInstancePersistenceMgr.java:136)
         at com.collaxa.cube.engine.CubeEngine.load(CubeEngine.java:4859)
         at com.collaxa.cube.engine.CubeEngine.getInstanceTrace(CubeEngine.java:2415)
         at com.collaxa.cube.ejb.impl.InstanceManagerBean.getInstanceTrace(InstanceManagerBean.java:168)
         at sun.reflect.GeneratedMethodAccessor275.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
         at com.evermind.server.ThreadState.runAs(ThreadState.java:620)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.TxNotSupportedInterceptor.invoke(TxNotSupportedInterceptor.java:43)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at InstanceManagerBean_RemoteProxy_4bin6i8.getInstanceTrace(Unknown Source)
         at com.oracle.bpel.client.InstanceHandle.getInstanceTrace(InstanceHandle.java:267)
         at xmlGetInstanceTrace.jspService(_xmlGetInstanceTrace.java:56)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:453)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:591)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:515)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
         at oracle.security.jazn.oc4j.JAZNFilter$1.run(JAZNFilter.java:396)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:410)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
         at com.evermind.server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:259)
         at com.evermind.server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:50)
         at com.evermind.server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:193)
         at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:283)
         at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:198)
         at com.collaxa.cube.fe.DomainFilter.doFilter(DomainFilter.java:131)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
         at oracle.security.jazn.oc4j.JAZNFilter$1.run(JAZNFilter.java:396)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:410)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:619)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
         at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    After sending the message
    <2008-03-19 15:20:58,984> <ERROR> <default.collaxa.cube.engine.dispatch> <DispatchHelper::handleMessage> failed to handle message
    ORABPEL-02018
    Cannot uncompress data stream.
    Cannot uncompress data stream with GZIP algorithm; exception is Unexpected end of ZLIB input stream.
    ... and ...
    <2008-03-19 15:20:58,994> <ERROR> <default.collaxa.cube.engine> Attempt (1/2): caught non-fatal connection exception ... retry
    <2008-03-19 15:21:00,075> <ERROR> <default.collaxa.cube> <BaseCubeSessionBean::logError> Error while invoking bean "cube delivery": Cannot uncompress data stream.
    Cannot uncompress data stream with GZIP algorithm; exception is Unexpected end of ZLIB input stream.
    ORABPEL-02018
    Cannot uncompress data stream.
    Cannot uncompress data stream with GZIP algorithm; exception is Unexpected end of ZLIB input stream.
    ===================
    THANK YOU

    Some update on the issue.
    I have a quite complicated BPEL process, which has this symptom.
    I figured out however, that if I dont use the TaskService, it does run well.
    So I just created a test bpel process with nothing but a human task.
    It failed with the same unexpected end of zlib ... problem.
    What I also noticed is that the task appears in the worklist app, but the reply gets into the callback manual recovery pool. there must be some kind of communication failure from the taskservice in the direction of the bpel process.
    Any advice is welcome,
    thx,
    tg

  • How do I return an input stream from a text file

    Suppose there's a class with methods..
    one of the methods is something like..
    public int value() and has a return statement at the end obviously for returning an int value..
    Another method reads a text file and creates an input stream..
    Scanner data  = new Scanner(new File(input.next()));
    I want to return the data when I do a call to this method, but I'm not sure what the method heading would look like..

    flounder wrote:
    Are we supposed to magically know what those errors are? Do you think that copying and pasting the exact error messages and indicating the lines they occur on would be useful to us?Sorry about that..
    I've replicated the same code below; and put the number of the line where the error is.
    +cannot find symbol variable read     [line 21]+
    +cannot find symbol variable read     [line 23]+
    +cannot find symbol variable read     [line 29]+
    +cannot find symbol variable read     [line 31]+
    +cannot find symbol variable inputStream     [line 44]+
    +calculate() in textInput cannot be applied to (java.util.Scanner)     [line 57]+
    the reason I have the _______ for the createInputStream() method is because I'm not really sure what the heading type should be to return the input stream.
    import java.io.*;
    import java.util.*;
    public class textInput
              public void requestFileName()
                   Scanner input = new Scanner(System.in);
                   System.out.print("Enter file name: ");
              public _______ createInputStream() throws FileNotFoundException
                   Scanner input = new Scanner(System.in);
                   Scanner read = new Scanner(new File(input.next()));
                   return read;
              public void calculate() throws IOException
    21           double max;
                   double min;
    23            int count = 0;
                   double total = 0;
                   if (read.hasNextDouble())
                        double temp = read.nextDouble();
    29                 max = temp;
                        min = temp;
    31                 count++
                        total += temp;
                        while (read.hasNextDouble())
                             double current = read.nextDouble();
                             count++;
                             min = Math.min(current, min);
                             max = Math.max(current, max);
                             total += current;
                   System.out.println("Max of: " + max);
                   System.out.println("Min of: " + min);
    44            System.out.println("Average of " + total/count);
              public void close() throws IOException
                   inputStream.close();
              public static void main(String[] args)
                   textInput run = new textInput();
                   try
    57                 run.requestFileName();
                        run.createInputStream();
                        run.calculate();
                        run.close();
                   catch(FileNotFoundException e)
                        System.out.println("File not found.");
                        System.exit(0);
                   catch(IOException e)
                        System.out.prinln("File not found.");
                        System.exit(0);
    }

  • When using URLConnection read input stream error

    hi,
    In my applet I build a URLConnection, it connect a jsp file. In my jsp file I refer to a javaBean. I send two objects of request and response in jsp to javaBean. In javabean return output stream to URLConnect. At that time a error happened.WHY???(Applet-JSP-JAVABean)
    Thanks.
    My main code:
    APPLET:(TestApplet)
    URL url = new URL("http://210.0.8.120/jsp/test.jsp";
    URLConnection con;
    con = url .openConnection();
    con = servlet.openConnection();
    con.setDoInput( true );
    con.setDoOutput( true );
    con.setUseCaches( false );
    con.setRequestProperty( "Content-Type","text/plain" );
    con.setAllowUserInteraction(false);
    ObjectOutputStream out;
    out = new ObjectOutputStream(con.getOutputStream());
    Serializable[] data ={"test"};
    out.writeObject( data );
    out.flush();
    out.close();
    //until here are all rigth
    ObjectInputStream in = new ObjectInputStream( con.getInputStream() );//happened error
    JSP:
    TestBean testBean = new TestBean ();
    testBean .execute(request, response);
    JAVABEAN:
    public void execute( HttpServletRequest request,
    HttpServletResponse response )
    ObjectInputStream in = new ObjectInputStream( request.getInputStream() );
    String direct = (String) in.readObject();
    System.out.prinltn("direct");
    ObjectOutputStream out = new ObjectOutputStream( response.getOutputStream() );
    SerializableSerializable[] data ={"answer"};
    out.writeObject( data );
    out.flush();
    out.close();
    Error detail:
    java.io.StreamCorruptedException: invalid stream header
         at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:729)
         at java.io.ObjectInputStream.<init>(ObjectInputStream.java:251)
         at TestApplet.postObjects(TestApplet.java:172)

    you have to pay attention to the sequence of opening the streams.
    The following example is: client sends a string to server, and servlet sends a response string back.
    client side:
             URL url = new URL( "http://152.8.113.149:8080/conn/servlet/test" );
             URLConnection conn = url.openConnection();   
             System.out.println( "conn: " + conn );
             conn.setDoOutput( true );
             conn.setDoInput( true );
             conn.setUseCaches( false );
             conn.setDefaultUseCaches (false);
             // send out a string
             OutputStream out = conn.getOutputStream();
             ObjectOutputStream oOut = new ObjectOutputStream( out );
             oOut.writeObject( strSrc ); 
             // receive a string
             InputStream in = conn.getInputStream();     
             ObjectInputStream oIn = new ObjectInputStream( in );
             String strDes = (String)oIn.readObject();server side
             // open output stream
             OutputStream out = res.getOutputStream();  
             ObjectOutputStream oOut = new ObjectOutputStream( out );
             // open input stream and read from client
             InputStream in  = req.getInputStream();
             ObjectInputStream oIn = new ObjectInputStream( in );
             String s = (String)oIn.readObject();
             System.out.println( s );
             // write to client
             oOut.writeObject( s + " back" ); I have the complete example at http://152.8.113.149/samples/app_servlet.html
    don't forget to give me the duke dollars.

  • Error while executing SSIS package - Error: 4014, Severity:20, State: 11. A fatal error occurred while reading the input stream from the network. The session will be terminated (input error: 109, output error: 0)

    Hi,
    We are getting the following error when running our SSIS packages on Microsoft SQL Server 2012 R2 on Windows Server 2008 R2 SP1:
    Error: 4014, Severity:20, State: 11.   A fatal error occurred while reading the input stream from the network. The session will be terminated (input error: 109, output error: 0)
    SQL Server Data Tools and SQL Server Database Engine reside on the same server.
    We tried the following:
    Disabling TCP Chimney Offload
    Installed Windows Server 2008 SP1
    Splitting our SSIS code into multiple steps so it is not all one large continuous operation
    The error occurs during a BulkDataLoad task.
    Other options we are investigating with the engineering team (out-sourced, so delayed responses):
    Firewall configurations (everything is local, so this should not make a difference)
    Disabling the anti-virus scanner
    Are there other things we can try?
    Any insight is greatly appreciated.
    Thanks!

    Hi HenryKwan,
    Based on the current information, the issue can be caused by many reasons. Please refer to the following tips:
    Install the latest hotfix based on your SQL Server version. Ps: there is no SQL Server 2012 R2 version.
    Change the MaxConcurrentExecutables property from -1 to another one based on the MAXDOP. For example, 8.
    Set "RetainSameConnection" Property to FALSE on the all the connection managers.
    Reference:
    https://connect.microsoft.com/SQLServer/feedback/details/774370/ssis-packages-abort-with-unexpected-termination-message
    If the issue is still existed, as Jakub suggested, please provide us more information about this issue.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • GZIP Compression Issue in Weblogic 8.1

    Has anyone experienced issues with gzip compression filtering in 8.1?
    After about 2 months of dev. and testing with the filter, a bug has been found
    in our portal, and I have traced it back to the filter that I downloaded from
    dev2dev code and utilities.
    It is strange. The only time I see an issue is when a user clicks the "back button"
    in the browser itself to go back to a previous page, AND then clicks a link (for
    example) in a portlet that is tied to an action in a jpf for that portlet. The
    error only happens for actions in a portlet that are local to that portlet (no
    forwarding to other portlets or anything fancy)...just pure "local internal forwards."
    If you do this, USING THE BACK BUTTON to get back to this page with the portlet,
    when you click the action, you are actually taken to the page where you were when
    you clicked the back button.
    I have re-created this is simple portals that have no content, so I know it is
    not something else I introduced.
    Any ideas? Maybe it is the filter-mapping pattern I am using??? I am currently
    mapping on *.portal, but this is the only situation that seems to break.

    For those interested, I have some updates on this subject and someone out there sent me a mail asking if I ever found anything out.
    Basically, when I encountered this issue the first time, I was working on a SP2 Portal. We were having numerous small bugs like this one with SP2 that centered around the back button or refresh button. BEA gave us a "super patch" back in July or so that when applied to our SP2 project, fixed our issue. I have sense moved onto SP3, and I did not see the compression issue (so I think SP3 must have the patches correctly setup...like I would assume it would).

  • Error in external tax system: SAX processing failed on input stream SAX pro

    Hi
    When I was posted in T.Code: FB70,  (Customer Invoice) I am getting below mentioned error.
    Error in external tax system: SAX processing failed on input stream SAX processi.
    I put tick mark on calculate Tax column and select O1(A/R Sales Taxable).
    Pls. help me.
    Thanks
    Ranjith

    Hi Ranjith,
    I also face this problem in Production now.
    Could you kindly share with me how you resolved this issue?
    Thanks,
    Markus

  • ExecTask - java.io.EOFException: Unexpected end of ZLIB input stream

    BOXI 3.1 FP 7 deployed on AIX environment with all the lang packs. Trying to install SP2 on AIX, when it comes to deploying the war files, AnalyticalReporting, the install encounters error. This error appears to be with size of the war file.  Anyone came across this issue?
    2010-03-30 10:10:00,633   Target - Target "expand_and_package" started.
    2010-03-30 10:10:00,634   Delete - Deleting directory /export/home/Business_Objects/global/deployment/workdir/tomcat55/resources/web/AnalyticalReporting
    2010-03-30 10:10:00,798    Mkdir - Created dir: /export/home/Business_Objects/global/deployment/workdir/tomcat55/resources/web/AnalyticalReporting
    2010-03-30 10:10:00,828    Mkdir - Created dir: /export/home/Business_Objects/global/deployment/workdir/tomcat55/resources/AnalyticalReporting
    2010-03-30 10:19:32,016 *ExecTask - java.io.EOFException: Unexpected end of ZLIB input stream
    2010-03-30 10:19:32,016 ExecTask -      at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java(Compiled Code))
    2010-03-30 10:19:32,017 ExecTask -      at java.util.zip.InflaterInputStream.read(InflaterInputStream.java(Compiled Code))
    2010-03-30 10:19:32,017 ExecTask -      at java.util.zip.ZipInputStream.read(ZipInputStream.java(Compiled Code))
    2010-03-30 10:19:32,017 ExecTask -      at sun.tools.jar.Main.extractFile(Main.java(Compiled Code))
    2010-03-30 10:19:32,017 ExecTask -      at sun.tools.jar.Main.extract(Main.java(Compiled Code))
    2010-03-30 10:19:32,025 ExecTask -      at sun.tools.jar.Main.run(Main.java:228)
    2010-03-30 10:19:32,025 ExecTask -      at sun.tools.jar.Main.main(Main.java:944)
    2010-03-30 10:19:32,051 ExecTask - Result: 1
    2010-03-30 10:19:32,162     Echo - Adding 'webiApplet/**' to the content to bundle with AnalyticalReporting's war file
    2010-03-30 10:19:32,302      Jar - error while reading original manifest: Error opening zip file /export/home/Business_Objects/global/deployment/workdir/tomc
    at55/application/AnalyticalReporting.war
    2010-03-30 10:19:35,354      Jar - Building jar: /export/home/Business_Objects/global/deployment/workdir/tomcat55/application/AnalyticalReporting.war
    2010-03-30 10:20:29,036      Zip - Building zip: /export/home/Business_Objects/global/deployment/workdir/tomcat55/resources/AnalyticalReporting.zip
    2010-03-30 10:23:58,561    Mkdir - Created dir: /export/home/Business_Objects/global/deployment/workdir/tomcat55/resources/web/AnalyticalReporting/WEB-INF
    2010-03-30 10:23:58,564     Copy - Copying 1 file to /export/home/Business_Objects/global/deployment/workdir/tomcat55/resources/web/AnalyticalReporting/WEB-I
    NF
    2010-03-30 10:23:58,597   Delete - Deleting directory /export/home/Business_Objects/global/deployment/workdir/tomcat55/resources/AnalyticalReporting
    2010-03-30 10:35:00,636   Target - Target "expand_and_package" finished.

    Hi,
    Don't know which of this factors solved the problem:
    1. Error server:
    AIX 5.2
    jdk 1.3.17 (minimum from docu: 1.3.11)
    $ORACLE_HOME wasn't in the begining of $PATH
    2. success server:
    AIX 5.3
    jdk 1.4.02
    $ORACLE_HOME is now in the begining of $PATH
    cheers Lao De

  • SocketException during reads - JVM_recv in socket input stream read

    I am getting a SocketException when a Java applet talks to our
    WebLogic 7.0 server. The catch is that it only occurs at one site
    (that has very high T1 utilization, although latency is only ~60 ms)
    Our setup is such that the calls hit an Alteon load balancer, which
    then sends the request out to one of 4 IIS clustered servers, where it
    then is sent to one of 2 WL clustered servers. I figured latency
    would be the cause, but on IIS and on WL, the timeouts are set to
    several hundred seconds, so I am not quite seeing where the connection
    is being reset. To be honest, I really don't know if it is WL that is
    killing the connection, as nothing abnormal shows up in the WL log. I
    have seen similar problems in this group, though, although the stack
    traces never follow the same path mine does. I do have the following
    call stack from the Java plug-in console, though. Any ideas would be
    greatly appreciated.
    java.net.SocketException: Connection reset by peer: JVM_recv in socket
    input stream read
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(Unknown Source)
         at java.io.BufferedInputStream.fill(Unknown Source)
         at java.io.BufferedInputStream.read1(Unknown Source)
         at java.io.BufferedInputStream.read(Unknown Source)
         at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
         at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
         at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
         at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
    Source)
         at sun.plugin.net.protocol.http.HttpURLConnection.getInputStream(Unknown
    Source)
         at sun.net.www.protocol.http.HttpURLConnection.getHeaderFields(Unknown
    Source)
         at sun.plugin.net.protocol.http.HttpURLConnection.checkCookieHeader(Unknown
    Source)
         at sun.plugin.net.protocol.http.HttpURLConnection.getInputStream(Unknown
    Source)
         at org.xxxx.abstracts.Controller.sendRequest(Controller.java:39)
         at org.xxxx.data.DataMediator.getDataNode(DataMediator.java:46)
         at sun.applet.AppletPanel.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    Also, here is my code, although I can't see anything on the client
    side that seems off:
    public Object sendRequest( Object request, URL receiver ) throws
    Exception{
    Object response = null;
    URLConnection con = null;
    ObjectOutputStream out = null;
    ObjectInputStream in = null;
    try {
    con = receiver.openConnection();
    con.setDoInput(true);
    con.setDoOutput(true);
    con.setUseCaches(false);
    con.setDefaultUseCaches(false);
    con.setAllowUserInteraction(false);
    out = new ObjectOutputStream(con.getOutputStream());
    out.writeObject(request);
    out.flush();
    out.close();
    in = new ObjectInputStream(con.getInputStream());
    response = in.readObject();
    in.close();
    } catch (ClassCastException e) {
    if( out != null ){
    out.close();
    if( in != null ){
    in.close();
    } catch (Exception e) {
    if( out != null ){
    out.close();
    if( in != null ){
    in.close();
    throw e;
    return response;

    There is a known bug on earlier 1.3.1 releases with sockets on Windows 2k
    and XP. I don't remember all the details.
    Peace,
    Cameron Purdy
    Tangosol, Inc.
    http://www.tangosol.com/coherence.jsp
    Tangosol Coherence: Clustered Replicated Cache for Weblogic
    "Keith Patrick" <[email protected]> wrote in message
    news:[email protected]...
    I'm getting the exception on the client, which is an XP machine, while
    the server is Win2K. I can't recall which, but either the applet or
    the server runs 1.3x while the other runs 1.4. I discounted that
    factor, though, as the problem only occurs on one site, which on all
    others it works fine.
    "Cameron Purdy" <[email protected]> wrote in message
    news:<[email protected]>...
    Exception is in the applet or on the server?
    Would one of those by any chance be running on W2K with JDK 131_01 orolder?
    >>
    Peace,
    Cameron Purdy
    Tangosol, Inc.
    http://www.tangosol.com/coherence.jsp
    Tangosol Coherence: Clustered Replicated Cache for Weblogic
    "Keith Patrick" <[email protected]> wrote in message
    news:[email protected]...
    I am getting a SocketException when a Java applet talks to our
    WebLogic 7.0 server. The catch is that it only occurs at one site
    (that has very high T1 utilization, although latency is only ~60 ms)
    Our setup is such that the calls hit an Alteon load balancer, which
    then sends the request out to one of 4 IIS clustered servers, where it
    then is sent to one of 2 WL clustered servers. I figured latency
    would be the cause, but on IIS and on WL, the timeouts are set to
    several hundred seconds, so I am not quite seeing where the connection
    is being reset. To be honest, I really don't know if it is WL that is
    killing the connection, as nothing abnormal shows up in the WL log. I
    have seen similar problems in this group, though, although the stack
    traces never follow the same path mine does. I do have the following
    call stack from the Java plug-in console, though. Any ideas would be
    greatly appreciated.
    java.net.SocketException: Connection reset by peer: JVM_recv in socket
    input stream read
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read1(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
    Source)
    at
    sun.plugin.net.protocol.http.HttpURLConnection.getInputStream(Unknown
    Source)
    at sun.net.www.protocol.http.HttpURLConnection.getHeaderFields(Unknown
    Source)
    atsun.plugin.net.protocol.http.HttpURLConnection.checkCookieHeader(Unknown
    Source)
    atsun.plugin.net.protocol.http.HttpURLConnection.getInputStream(Unknown
    Source)
    at org.xxxx.abstracts.Controller.sendRequest(Controller.java:39)
    at org.xxxx.data.DataMediator.getDataNode(DataMediator.java:46)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Also, here is my code, although I can't see anything on the client
    side that seems off:
    public Object sendRequest( Object request, URL receiver ) throws
    Exception{
    Object response = null;
    URLConnection con = null;
    ObjectOutputStream out = null;
    ObjectInputStream in = null;
    try {
    con = receiver.openConnection();
    con.setDoInput(true);
    con.setDoOutput(true);
    con.setUseCaches(false);
    con.setDefaultUseCaches(false);
    con.setAllowUserInteraction(false);
    out = new ObjectOutputStream(con.getOutputStream());
    out.writeObject(request);
    out.flush();
    out.close();
    in = new ObjectInputStream(con.getInputStream());
    response = in.readObject();
    in.close();
    } catch (ClassCastException e) {
    if( out != null ){
    out.close();
    if( in != null ){
    in.close();
    } catch (Exception e) {
    if( out != null ){
    out.close();
    if( in != null ){
    in.close();
    throw e;
    return response;

  • Sending Control-Z to Input Stream

    Hi everyone,
    I'm writing an interface to a command line program, and
    one of it's features is that it will accept "forms" through
    standard input. The default is that notepad will open
    when the command is typed, and you can edit the form
    through there.
    To accept the form through standard input, you have to
    send it the form, and then tell it the form is complete.
    This is done using the CTRL-Z keypress, at least when
    typing the form in with the keyboard.
    I need to do this with Java.
    There is another post which poses the same question at
    http://forum.java.sun.com/thread.jsp?forum=1&thread=3050
    so I attempted that solution.. and that didn't work.
    I had the system print out the form as it was being written,
    and the form displayed properly, followed by what was
    supposed to be a CTRL-Z character, which appeared
    on screen (DOS Window) as an arrow pointing right.
    Here is the code constructing the form and adding what i've been told is "ctrl-z":
    new StringBuffer(form+System.getProperty("line.separator")).append(CTRL_Z).append(System.getProperty("line.separator")))CTRL_Z is defined as:
    public static final char CTRL_Z = 26;Does anyone have any other suggestions that might be able to help me?
    If you need more information/code provided, I can do so.
    Thanks for any help!
    Kefka.

    You can't actually send anything to an input stream. But let's suppose you have an output stream somewhere that is connected to the standard input of this command line program. Try sending a byte, not a character, that contains 26 to it (yes, ctrl-z is indeed 26). This has a better chance of working than the character idea, because Java is going to translate your character-26 from Unicode to bytes using your system's default encoding. And I can't predict what that might end up as. But it will leave the byte 26 alone and just send it... I hope. Can't guarantee this.

  • How to get file input stream from the client machine by JSF Fileupload API?

    Dear Friends,
    How to get the file input stream from the client machine by JSF HtmlFileupload or fileupload API. At present, if i execute the file upload code in the client machine, it is able to get the local path of the file and looking for the file in server machine. So i am getting FileNotFoundException.
    E.g., If a file is located at client machine at following location means "C:\Test\Test.txt",
    uploadClass.getFileuploadComponent().getFilename().toString() returns "C:\Test\Test.txt". But it is looking for that file in server and throwing FileNotFoundException.
    Please post your replies soon.
    Thanks,
    JP

    Depends on which version of JSF you're using. If JSF 1.2, I wouldn't even bother trying to hack this into JSF itself unless you can use something like Seam 2 or richfaces.
    http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_fileUpload.html
    http://docs.jboss.org/seam/2.2.1.CR3/reference/en-US/html/controls.html#d0e29259 (look for s:fileUpload)
    But if I were you, a simple non-jsf form with a servlet works best for taking file uploads.
    As for JSF 2.0, there are other ways of getting it done.
    http://balusc.blogspot.com/2009/12/uploading-files-with-jsf-20-and-servlet.html

  • How to get input stream of other application

    Using Java is their any way to get the input stream of another applicaton?. For example i will start a java program and minimize it. Then i will start a notepad and type some thing in it. Java program should print all matters i am typed in notepad.
    Is it possible using java?
    Thanks in advance

    You have many ways to do that in C++. Read about Hooks and you will understand how u can do that. Anyway, even without hooks, u can get the messages from other applications in C++. So, let C++ get the data from other applications for you and let ur java program get data from the C++ program.

  • Parse XML input stream (no .xml file)?

    i have a java applet calling a web service that returns XML data as an input stream (char by char from SOAP) to this applet. if i append a all the chars to a string, is there some XML tool that will parse the string as if it were an XML document (like a getElement functions)?
    the applet cannot write the data to a .xml file, and i don't want to mess around with .jarsigning. any ideas?
    thanks,
    jonathan

    The XML parsers you are likely to be using support receiving input from a variety of sources besides files. For example you could parse XML from a String variable by passing a StringReader wrapping that String to the parser. Check the documentation for more details.

  • Java.io.EOFException: Unexpected end of ZLIB input stream

    Hi,
    I am reading .gz file in servlet and writing it in output stream. It works fine for smaller files. For larger file when I reading file and writing output I am getting exceptions as below in order.
    8/6/09 9:52:28:953 CDT] 00000029 ServletWrappe E SRVE0068E: Could not invoke the service() method on servlet /WEB-INF/pages/TilesTemplate/layouttemplate.jsp. Exception thrown : java.lang.IllegalStateException: SRVE0199E: OutputStream already obtained
         at com.ibm.ws.webcontainer.srt.SRTServletResponse.getWriter(SRTServletResponse.java:489)
         at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:170)
         at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:163)
         at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:227)
    ---- Begin backtrace for Nested Throwables
    java.lang.IllegalStateException: SRVE0199E: OutputStream already obtained
         at com.ibm.ws.webcontainer.srt.SRTServletResponse.getWriter(SRTServletResponse.java:489)
         at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:170)
         at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:163)
    *[8/6/09 9:52:28:625 CDT] 00000029 SystemErr R java.io.EOFException: Unexpected end of ZLIB input stream*
    *[8/6/09 9:52:28:656 CDT] 00000029 SystemErr R      at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:238)*
    *[8/6/09 9:52:28:656 CDT] 00000029 SystemErr R      at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:157)*
    *[8/6/09 9:52:28:656 CDT] 00000029 SystemErr R      at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:109)*
    *[8/6/09 9:52:28:656 CDT] 00000029 SystemErr R      at java.io.FilterInputStream.read(FilterInputStream.java:110)*
    *[8/6/09 9:52:28:656 CDT] 00000029 SystemErr R      at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:325)*
    *[8/6/09 9:52:28:656 CDT] 00000029 SystemErr R      at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:223)*
    *[8/6/09 9:52:28:656 CDT] 00000029 SystemErr R      at java.io.InputStreamReader.read(InputStreamReader.java:208)*
    *[8/6/09 9:52:28:656 CDT] 00000029 SystemErr R      at java.io.BufferedReader.fill(BufferedReader.java:153)*
    *[8/6/09 9:52:28:656 CDT] 00000029 SystemErr R      at java.io.BufferedReader.readLine(BufferedReader.java:316)*
    *[8/6/09 9:52:28:656 CDT] 00000029 SystemErr R      at java.io.BufferedReader.readLine(BufferedReader.java:379)*
    *[8/*

    My suggestion would be to run your code as a plain old Java application. Why use a servlet environment to test the problem? There's just too many things going on. So first see if it works the same way in a Java application. If it does, or if it doesn't, you then know where to go next.

Maybe you are looking for