@Test
    public void testIssue1909() {
        /*
         * Generate normals, texture coordinates, and vertex positions
         * for a large square in the X-Z plane.
         */
        FloatBuffer normals = BufferUtils.createFloatBuffer(
                0f, 1f, 0f,
                0f, 1f, 0f,
                0f, 1f, 0f,
                0f, 1f, 0f,
                0f, 1f, 0f,
                0f, 1f, 0f
        );
        float uvDiameter = 5f;
        FloatBuffer uvs = BufferUtils.createFloatBuffer(
                uvDiameter, uvDiameter,
                0f, 0f,
                uvDiameter, 0f,
                uvDiameter, uvDiameter,
                0f, uvDiameter,
                0f, 0f
        );
        float posRadius = 500f;
        FloatBuffer positions = BufferUtils.createFloatBuffer(
                +posRadius, 0f, +posRadius,
                -posRadius, 0f, -posRadius,
                -posRadius, 0f, +posRadius,
                +posRadius, 0f, +posRadius,
                +posRadius, 0f, -posRadius,
                -posRadius, 0f, -posRadius
        );
        Mesh mesh = new Mesh();
        int numAxes = 3;
        mesh.setBuffer(VertexBuffer.Type.Normal, numAxes, normals);
        mesh.setBuffer(VertexBuffer.Type.Position, numAxes, positions);
        mesh.setBuffer(VertexBuffer.Type.TexCoord, 2, uvs);
        mesh.updateBound();

        Geometry testGeometry = new Geometry("testGeometry", mesh);
        MikktspaceTangentGenerator.generate(testGeometry);

        VertexBuffer tangents = mesh.getBuffer(VertexBuffer.Type.Tangent);
        Assert.assertNotNull(tangents);
    }
Tests MikktspaceTangentGenerator.generate() without index buffers.
jme3-core/src/test/java/com/jme3/util/TestIssue1909.java