Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-3782

ByteArrayOutputStream and ObjectOutputStream should close

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.0.1
    • 1.1.0
    • None

    Description

      ByteArrayOutputStream and ObjectOutputStream should close

      @Test
      public void testSerializability() {
      try {
      Collection<ElementType> inputCollection = new ArrayList<ElementType>();
      ElementType element1 = new ElementType(1);
      ElementType element2 = new ElementType(2);
      ElementType element3 = new ElementType(3);
      inputCollection.add(element1);
      inputCollection.add(element2);
      inputCollection.add(element3);

      @SuppressWarnings("unchecked")
      TypeInformation<ElementType> info = (TypeInformation<ElementType>) TypeExtractor.createTypeInfo(ElementType.class);

      CollectionInputFormat<ElementType> inputFormat = new CollectionInputFormat<ElementType>(inputCollection,
      info.createSerializer(new ExecutionConfig()));

      ByteArrayOutputStream buffer = new ByteArrayOutputStream();// <----open in here
      ObjectOutputStream out = new ObjectOutputStream(buffer);// <----open in here

      out.writeObject(inputFormat);

      ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray())); // <----open in here

      Object serializationResult = in.readObject();

      assertNotNull(serializationResult);
      assertTrue(serializationResult instanceof CollectionInputFormat<?>);

      @SuppressWarnings("unchecked")
      CollectionInputFormat<ElementType> result = (CollectionInputFormat<ElementType>) serializationResult;

      GenericInputSplit inputSplit = new GenericInputSplit(0, 1);
      inputFormat.open(inputSplit);
      result.open(inputSplit);
      while(!inputFormat.reachedEnd() && !result.reachedEnd())

      { ElementType expectedElement = inputFormat.nextRecord(null); ElementType actualElement = result.nextRecord(null); assertEquals(expectedElement, actualElement); }

      }
      catch(Exception e)

      { e.printStackTrace(); fail(e.toString()); }

      }

      Attachments

        Issue Links

          Activity

            People

              rekhajoshm Rekha Joshi
              readman Chenguang He
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: